@qwen-code/qwen-code 0.23.5-dev.codemode-responses.20260915.f024b37689 → 0.23.5-preview.0

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 (377) hide show
  1. package/bundled/computer-use/SKILL.md +24 -3
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +43 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +10 -9
  4. package/bundled/qc-helper/docs/extension/agent-plugins.md +1 -0
  5. package/bundled/qc-helper/docs/extension/introduction.md +49 -0
  6. package/bundled/qc-helper/docs/features/channels/dingtalk.md +39 -4
  7. package/bundled/qc-helper/docs/features/channels/overview.md +12 -0
  8. package/bundled/qc-helper/docs/features/commands.md +57 -52
  9. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  10. package/bundled/qc-helper/docs/features/goals.md +8 -0
  11. package/bundled/qc-helper/docs/features/hooks.md +16 -0
  12. package/bundled/qc-helper/docs/qwen-serve.md +3 -1
  13. package/bundled/workflow-authoring/SKILL.md +48 -22
  14. package/chunks/{MaxSizedBox-BFMIFJWT.js → MaxSizedBox-FCF6M53W.js} +40 -43
  15. package/chunks/{StandaloneSessionPicker-4ZH7MOVG.js → StandaloneSessionPicker-V635V72I.js} +60 -63
  16. package/chunks/{acp-startup-profiler-RUQNTNU5.js → acp-startup-profiler-MOOU37VM.js} +2 -2
  17. package/chunks/{acp-subagent-executor-AHMVA4P3.js → acp-subagent-executor-TND6W2O5.js} +46 -47
  18. package/chunks/{acpAgent-UMAJ3XR3.js → acpAgent-3DPWZTNC.js} +954 -322
  19. package/chunks/{agent-CXB2CCQN.js → agent-KIHGINKN.js} +27 -30
  20. package/chunks/{agent-headless-7D5ZC736.js → agent-headless-EJ4QOUSM.js} +27 -30
  21. package/chunks/{anthropicContentGenerator-H5YPXIDE.js → anthropicContentGenerator-4FGOM5LK.js} +46 -64
  22. package/chunks/{artifact-tool-MFGORTWZ.js → artifact-tool-MUTNH4NI.js} +1 -1
  23. package/chunks/{askUserQuestion-WS4GUT7C.js → askUserQuestion-AKIRLVB5.js} +1 -1
  24. package/chunks/bareMode-QWKZPLPX.js +14 -0
  25. package/chunks/{bridge-A2WKX6IK.js → bridge-MUX5YJZT.js} +46 -49
  26. package/chunks/{ca-GZ4FDJU2.js → ca-WC3A5B3Q.js} +12 -1
  27. package/chunks/{channel-management-service-AFVIT4VH.js → channel-management-service-RRILWSXX.js} +4 -4
  28. package/chunks/{channel-settings-store-AXJIN7HG.js → channel-settings-store-7CBIRZER.js} +51 -54
  29. package/chunks/{channel-worker-group-JR6JOELM.js → channel-worker-group-3DUJFZJR.js} +8 -8
  30. package/chunks/{channel-worker-manager-AVKJEZFL.js → channel-worker-manager-E5UW2VLA.js} +8 -8
  31. package/chunks/{channel-worker-supervisor-OOYY7BAQ.js → channel-worker-supervisor-VN33GSEC.js} +5 -5
  32. package/chunks/{chunk-2YMRRI2C.js → chunk-2C5TR6HN.js} +82 -9
  33. package/chunks/{chunk-YDFOHRS5.js → chunk-2GP6BQ2J.js} +1 -1
  34. package/chunks/{chunk-RN6BU77T.js → chunk-347O2YZJ.js} +158 -290
  35. package/chunks/{chunk-LTINUI3O.js → chunk-36NRLIR6.js} +10 -8
  36. package/chunks/{chunk-AXZMWAJV.js → chunk-36SDZ2Q4.js} +8 -0
  37. package/chunks/{chunk-QR4Q425T.js → chunk-3BZI5GDP.js} +1 -1
  38. package/chunks/{chunk-C3YMBSLR.js → chunk-3HTUE6ZR.js} +3 -3
  39. package/chunks/{chunk-QS5Q5F42.js → chunk-3LLEB5CU.js} +2 -2
  40. package/chunks/{chunk-FPPG5Y3W.js → chunk-3UGMLA4V.js} +10 -8
  41. package/chunks/{chunk-66N6C4EH.js → chunk-3WILPKTJ.js} +2 -2
  42. package/chunks/{chunk-SROLVJFY.js → chunk-3WWPEFMX.js} +1 -1
  43. package/chunks/{chunk-ZKIAGIGH.js → chunk-3XBUCOWS.js} +1 -1
  44. package/chunks/{chunk-6RQFMGN2.js → chunk-43Y26NPF.js} +3 -3
  45. package/chunks/{chunk-INGBUYL6.js → chunk-4FLUQWJ4.js} +1 -1
  46. package/chunks/{chunk-S77FFY67.js → chunk-4JFLRHNE.js} +1 -1
  47. package/chunks/{chunk-MJHLKWGJ.js → chunk-4QPVZA5J.js} +70 -23
  48. package/chunks/{chunk-XX5HQLCZ.js → chunk-6OTF7TTE.js} +32 -1
  49. package/chunks/{chunk-4Y2I3CI3.js → chunk-6USYH3EU.js} +99 -6
  50. package/chunks/{chunk-Q3TFRP5G.js → chunk-7D4CV7JH.js} +102 -9
  51. package/chunks/{chunk-EWJTAP3Y.js → chunk-7O5PYQ3M.js} +20 -1
  52. package/chunks/chunk-ADN5KESB.js +28 -0
  53. package/chunks/chunk-AKRSSKUT.js +229 -0
  54. package/chunks/{chunk-54YUXX7X.js → chunk-AQP3H22J.js} +1 -1
  55. package/chunks/{chunk-EQWKIA72.js → chunk-AUX2FL5T.js} +24 -7
  56. package/chunks/{chunk-YGFJ6BRT.js → chunk-AZCTY64Z.js} +1 -1
  57. package/chunks/{chunk-QLX4D55R.js → chunk-B5TJK7B3.js} +1 -1
  58. package/chunks/{chunk-HXMDDII6.js → chunk-B6RMK4ED.js} +4 -4
  59. package/chunks/{chunk-UCKM6KCJ.js → chunk-BHG3H6OZ.js} +1 -1
  60. package/chunks/{chunk-JLF2AQAL.js → chunk-BHVF3R6B.js} +7 -5
  61. package/chunks/{chunk-HFJSQ4GL.js → chunk-BTICBRPL.js} +1 -1
  62. package/chunks/{chunk-KZCK5JUN.js → chunk-C3T6HPNM.js} +1 -1
  63. package/chunks/{chunk-FCLMJS6N.js → chunk-CDDP4ONL.js} +164 -27
  64. package/chunks/{chunk-Y3ZXDBUL.js → chunk-CQPM66MG.js} +4 -4
  65. package/chunks/{chunk-WKVZES7O.js → chunk-CXONOVBN.js} +1 -1
  66. package/chunks/{chunk-TYBRGFYL.js → chunk-CXY6BICQ.js} +501 -479
  67. package/chunks/{chunk-W23HOFDK.js → chunk-D3KVGQUV.js} +1 -1
  68. package/chunks/{chunk-LMJSPC55.js → chunk-D7JMO2GP.js} +3 -7
  69. package/chunks/{chunk-CXXAZ2LZ.js → chunk-DC4ZNGH4.js} +1 -1
  70. package/chunks/{chunk-FMLBBXHB.js → chunk-DRAX5YAI.js} +2 -2
  71. package/chunks/{chunk-DOTF2PF2.js → chunk-DRD6VBNH.js} +1 -1
  72. package/chunks/chunk-DX6JTDMR.js +105 -0
  73. package/chunks/{chunk-MNRK6MIH.js → chunk-E2VSBAFA.js} +53 -11
  74. package/chunks/{chunk-QJKR2P2K.js → chunk-EIBECN2J.js} +3 -3
  75. package/chunks/{chunk-LWWRJRCD.js → chunk-ESBYWATJ.js} +1 -1
  76. package/chunks/{chunk-3544ZEGZ.js → chunk-FASYATAZ.js} +5 -7
  77. package/chunks/{chunk-6YUS5JCV.js → chunk-FBY32737.js} +4 -4
  78. package/chunks/{chunk-LBWIJ5T7.js → chunk-FCPJXKDG.js} +10 -7
  79. package/chunks/{chunk-FX6GJIPZ.js → chunk-FEDFZBGR.js} +3 -3
  80. package/chunks/{chunk-DQ4LBRZN.js → chunk-FIJODK52.js} +3 -3
  81. package/chunks/{chunk-HVSRWLOW.js → chunk-FX6PZBOV.js} +3 -3
  82. package/chunks/{chunk-L6DIANLD.js → chunk-G45B3INR.js} +1 -1
  83. package/chunks/{chunk-EYLUKEYW.js → chunk-GI7SLDOI.js} +2 -2
  84. package/chunks/chunk-GJKP6XOB.js +1092 -0
  85. package/chunks/{chunk-I6YJZGHS.js → chunk-GSAOVDTH.js} +9 -9
  86. package/chunks/{chunk-XK4UQSIR.js → chunk-H6L4NEAT.js} +1 -1
  87. package/chunks/{chunk-GMCEFKNR.js → chunk-HNFKYKHH.js} +103 -22
  88. package/chunks/{chunk-6XDB3FR4.js → chunk-HX4WXX3H.js} +301 -138
  89. package/chunks/{chunk-HG46TTAG.js → chunk-HXUI5D4H.js} +1 -1
  90. package/chunks/{chunk-QI4WBHPF.js → chunk-HYHSMTRA.js} +4 -4
  91. package/chunks/{chunk-ZUKC5J6Q.js → chunk-IKBEIDOH.js} +14 -14
  92. package/chunks/{chunk-LCAJ63TF.js → chunk-INN5ORKX.js} +1 -1
  93. package/chunks/{chunk-GNV2SFO7.js → chunk-IVFTLUZD.js} +26 -1
  94. package/chunks/{chunk-GNKSR3FU.js → chunk-IXO2OCIP.js} +2 -2
  95. package/chunks/{chunk-SNT634Q6.js → chunk-K4XMAIRX.js} +30 -33
  96. package/chunks/{chunk-WBP64MZR.js → chunk-KAYC5FBN.js} +5269 -2785
  97. package/chunks/chunk-KEM7MWS7.js +3541 -0
  98. package/chunks/{chunk-ADQUK6WA.js → chunk-KVC7HZWK.js} +1 -1
  99. package/chunks/{chunk-UQXURNLM.js → chunk-KVQ3QL4K.js} +3 -3
  100. package/chunks/{chunk-7U5G6JXI.js → chunk-KWYTSSTJ.js} +105 -6
  101. package/chunks/{chunk-Q4G2YPI4.js → chunk-L2A5VBDL.js} +3019 -2352
  102. package/chunks/{chunk-WD6YQI5M.js → chunk-L3SNMEDW.js} +1 -1
  103. package/chunks/{chunk-BYUAT5OC.js → chunk-L7TJUPNR.js} +19 -3
  104. package/chunks/{chunk-ABNX6E6K.js → chunk-LFKXIOGC.js} +1 -1
  105. package/chunks/{chunk-GFAK6DYU.js → chunk-LO2UWNO5.js} +2 -2
  106. package/chunks/{chunk-67ZDP7UX.js → chunk-M22WLKLI.js} +5 -5
  107. package/chunks/{chunk-54B2LTKP.js → chunk-M23GFJ5B.js} +24 -5
  108. package/chunks/{chunk-VGY2RGXL.js → chunk-M4U2LTD2.js} +1 -1
  109. package/chunks/{chunk-ZNI3YJHS.js → chunk-MFDKHGTD.js} +1 -1
  110. package/chunks/{chunk-R7OO56VZ.js → chunk-MMRGG6R4.js} +1 -1
  111. package/chunks/{chunk-E6IR653O.js → chunk-MO4XID7S.js} +1 -1
  112. package/chunks/{chunk-NJ4ZNDVP.js → chunk-NKTMUPHJ.js} +3 -6
  113. package/chunks/{chunk-4DTFTPTU.js → chunk-NQ272MQG.js} +1 -1
  114. package/chunks/{chunk-DWKFTUGI.js → chunk-OALXNGUA.js} +6 -6
  115. package/chunks/{chunk-FBDHP23D.js → chunk-OSG23MR3.js} +1 -1
  116. package/chunks/{chunk-NJ2OFVUX.js → chunk-P42KMMU6.js} +860 -1
  117. package/chunks/{chunk-5KJ54DY3.js → chunk-PF7GAP6K.js} +60 -58
  118. package/chunks/{chunk-MQRLLBMQ.js → chunk-PPJSG2PU.js} +2 -2
  119. package/chunks/{chunk-EPVEPTI3.js → chunk-PZRXWQUA.js} +753 -18
  120. package/chunks/{chunk-VI5UVPOB.js → chunk-Q54O3EIA.js} +30 -28
  121. package/chunks/{chunk-QTUQV33C.js → chunk-QGEISOJ2.js} +4 -4
  122. package/chunks/{chunk-XKRYQOHS.js → chunk-QHSOINX6.js} +2 -2
  123. package/chunks/{chunk-Z6Q7I37O.js → chunk-QIPLWW6Q.js} +1 -1
  124. package/chunks/chunk-QMENOK5T.js +1246 -0
  125. package/chunks/chunk-QT6Z2IBF.js +347 -0
  126. package/chunks/{chunk-TBSCTWKF.js → chunk-RN6A53UJ.js} +25 -0
  127. package/chunks/{chunk-E7ZTAOJZ.js → chunk-RRI764F7.js} +21 -19
  128. package/chunks/{chunk-YI2YCNSP.js → chunk-SENYKRII.js} +1 -1
  129. package/chunks/chunk-SFHX5G2S.js +2796 -0
  130. package/chunks/chunk-SK3RZOPS.js +34 -0
  131. package/chunks/{chunk-SKYOAH4Z.js → chunk-SOLRBF7L.js} +13 -9
  132. package/chunks/{chunk-5WLF44DS.js → chunk-SSWTA7CH.js} +12 -12
  133. package/chunks/{chunk-IAS753HG.js → chunk-SYMXYRM5.js} +11 -2
  134. package/chunks/{chunk-FGROOEKM.js → chunk-TDKUXSJO.js} +34 -6
  135. package/chunks/{chunk-ZJ7JQUGY.js → chunk-TKF4JINY.js} +1 -1
  136. package/chunks/{chunk-ZOQ6HC7U.js → chunk-TPY6HW55.js} +4 -4
  137. package/chunks/{chunk-EDB556X7.js → chunk-TRZ22SG5.js} +1 -1
  138. package/chunks/{chunk-FHSOZSBO.js → chunk-TXTCM3TC.js} +4 -4
  139. package/chunks/{chunk-5ODRE7E5.js → chunk-U4AASWUQ.js} +28 -12
  140. package/chunks/{chunk-PPE7VUMD.js → chunk-UQGRJTDK.js} +2 -2
  141. package/chunks/{chunk-JO67LVXW.js → chunk-UZSB57EV.js} +6 -8
  142. package/chunks/{chunk-UY4OCBX4.js → chunk-V4JJAVHQ.js} +2 -2
  143. package/chunks/chunk-VEXUA6DX.js +1026 -0
  144. package/chunks/{chunk-ME4JBHSB.js → chunk-VQDWCQOE.js} +2 -0
  145. package/chunks/{chunk-ZC75SULX.js → chunk-VU3XMZ5I.js} +23 -4
  146. package/chunks/{chunk-A2UYI473.js → chunk-WL36KHUQ.js} +6 -6
  147. package/chunks/{chunk-IWOJ2FHG.js → chunk-WNQIJTOP.js} +8 -8
  148. package/chunks/{chunk-IANIY25T.js → chunk-WSJI6ODG.js} +99 -30
  149. package/chunks/{chunk-3CKAOJ4L.js → chunk-WZWTY7SG.js} +6 -6
  150. package/chunks/{chunk-EKMJR7M3.js → chunk-X7AYIXC7.js} +1 -1
  151. package/chunks/{chunk-IBRQG2MP.js → chunk-XAJZFGD2.js} +11 -11
  152. package/chunks/{chunk-VRQZESKP.js → chunk-XICCGDWF.js} +2 -2
  153. package/chunks/{chunk-L5R4D5T4.js → chunk-Y2KJC55Y.js} +12 -7
  154. package/chunks/{chunk-2S2WIGCM.js → chunk-Y4NNIGYO.js} +1 -1
  155. package/chunks/{chunk-J7LBAKDH.js → chunk-YL3UJML3.js} +7 -7
  156. package/chunks/{chunk-GSS4SZNG.js → chunk-YP2K3WOS.js} +40 -56
  157. package/chunks/{chunk-ZZUXUBEB.js → chunk-YQQ2U7AS.js} +8 -5
  158. package/chunks/{chunk-FAWTMDX7.js → chunk-YXHY6BKS.js} +15 -0
  159. package/chunks/{chunk-FIP5QS2U.js → chunk-YZXSDPOQ.js} +140 -39
  160. package/chunks/{chunk-WATHOB6X.js → chunk-ZFHKUQZ4.js} +3 -3
  161. package/chunks/{chunk-R5OA3ONY.js → chunk-ZMYKNKET.js} +6 -6
  162. package/chunks/{codex-subagent-executor-LANZAZPH.js → codex-subagent-executor-AEAIQZDC.js} +48 -49
  163. package/chunks/{config-utils-CRK2LQPA.js → config-utils-KX2YS725.js} +43 -46
  164. package/chunks/{contextCommand-GY5X3LIY.js → contextCommand-RV6Y5LNJ.js} +41 -44
  165. package/chunks/{core-runtime-IJIV2LHP.js → core-runtime-ZI4RTOJQ.js} +45 -48
  166. package/chunks/{create-sub-session-MNIVRHGB.js → create-sub-session-BBWFQARJ.js} +46 -48
  167. package/chunks/{daemon-NJB4PWZ7.js → daemon-INCM4VBX.js} +3 -1
  168. package/chunks/{daemon-git-worktree-guard-W6Z2BGDH.js → daemon-git-worktree-guard-KECEMV6A.js} +39 -42
  169. package/chunks/{daemon-status-provider-TJF3APU3.js → daemon-status-provider-NULJNAEV.js} +53 -56
  170. package/chunks/{daemon-trust-policy-6INCISDU.js → daemon-trust-policy-S4KWGPV3.js} +47 -50
  171. package/chunks/{daemon-trust-policy-monitor-JRTAQG54.js → daemon-trust-policy-monitor-546N5ZVL.js} +47 -50
  172. package/chunks/{de-VGY3VNBU.js → de-6AVKPTXQ.js} +11 -0
  173. package/chunks/{deferred-core-runtime-2JRTPTNM.js → deferred-core-runtime-T23ZT443.js} +39 -42
  174. package/chunks/{dist-NIOJXMGY.js → dist-4P3ZJYGI.js} +1 -1
  175. package/chunks/{dist-VDLSBCLM.js → dist-7MGRENQ5.js} +1 -1
  176. package/chunks/{dist-SE4J6Z4O.js → dist-BNW423XT.js} +326 -77
  177. package/chunks/{dist-TFGETXFN.js → dist-CESMUYGN.js} +4 -4
  178. package/chunks/{dist-MPUZZOG5.js → dist-DBBOFWSC.js} +1 -1
  179. package/chunks/{dist-T6DDPDLQ.js → dist-G5UMXIGF.js} +1 -1
  180. package/chunks/{dist-PA7WPFVE.js → dist-UXVNLQHG.js} +3 -3
  181. package/chunks/{dist-GUB7QRYA.js → dist-VA4LREAQ.js} +2 -2
  182. package/chunks/{dist-2QYIVNS6.js → dist-XDRTR4QP.js} +1 -1
  183. package/chunks/{edit-JDIXXCYB.js → edit-CMSQB7NP.js} +27 -30
  184. package/chunks/{en-E5ZO5TZW.js → en-56QLKXS2.js} +23 -1
  185. package/chunks/{enter-worktree-CAARFWBI.js → enter-worktree-DA6A4XC5.js} +3 -3
  186. package/chunks/{enterPlanMode-YTNTBZBN.js → enterPlanMode-UDPMNESD.js} +27 -30
  187. package/chunks/{environment-UAI5L52V.js → environment-TSQJUTPV.js} +42 -45
  188. package/chunks/{errors-J4UCDCW5.js → errors-RIVYJS6T.js} +41 -44
  189. package/chunks/{exit-worktree-JXGGUOBP.js → exit-worktree-4H6Z2VQI.js} +3 -3
  190. package/chunks/{exitPlanMode-YMWJ2EO7.js → exitPlanMode-BYBBFN2T.js} +27 -30
  191. package/chunks/{fast-path-MBAN7TK3.js → fast-path-F2CYDDZ4.js} +4 -4
  192. package/chunks/{fast-path-settings-XDYX7X5Z.js → fast-path-settings-N2VGRGDJ.js} +2 -2
  193. package/chunks/{fr-UAZJJH5N.js → fr-EBUDHJL3.js} +11 -0
  194. package/chunks/{glob-YEM24E3Z.js → glob-Z2JMJKKN.js} +27 -30
  195. package/chunks/{goal-tools-LJIVH5T6.js → goal-tools-HXVVLGCV.js} +27 -30
  196. package/chunks/{handleAutoUpdate-DYCSYDYL.js → handleAutoUpdate-FZP45KOR.js} +43 -46
  197. package/chunks/{i18n-PTAV7SN3.js → i18n-OTB62AKW.js} +40 -43
  198. package/chunks/{image-gen-5G2TQ3DY.js → image-gen-HIAZCB5T.js} +6 -7
  199. package/chunks/{initializer-MPXTKQA4.js → initializer-4JXZEC4B.js} +47 -50
  200. package/chunks/{installationInfo-U5EFA3OL.js → installationInfo-2IJV5QKC.js} +39 -42
  201. package/chunks/{ja-2RITCMAJ.js → ja-NCDT4CGV.js} +11 -0
  202. package/chunks/{list-YOE25QUI.js → list-KQSQ4A5G.js} +50 -53
  203. package/chunks/{llm-ZZ2WNQMC.js → llm-LSUBOJAR.js} +154 -974
  204. package/chunks/{llm-content-generator-CG2HRJZC.js → llm-content-generator-MLIONRXE.js} +17 -12
  205. package/chunks/{loadedSettingsAdapter-NPGWGURF.js → loadedSettingsAdapter-TZTTNRHI.js} +47 -50
  206. package/chunks/{loggingContentGenerator-TUL6SJVL.js → loggingContentGenerator-TUPEXFMM.js} +31 -34
  207. package/chunks/{loop-wakeup-VG6CGBQA.js → loop-wakeup-ZBVRI6VH.js} +1 -1
  208. package/chunks/{managed-npm-update-YUDSCJP3.js → managed-npm-update-WEA5XMFZ.js} +40 -43
  209. package/chunks/{mcp-EX3GDQVO.js → mcp-TFDTUPIA.js} +47 -50
  210. package/chunks/{model-configuration-6DEKTXJI.js → model-configuration-ZCAKKIOF.js} +48 -51
  211. package/chunks/{modelConfigUtils-4NA2MHEE.js → modelConfigUtils-J3ZPW7ZK.js} +41 -44
  212. package/chunks/{monitor-PPUGNAWR.js → monitor-CI7YE7MT.js} +29 -32
  213. package/chunks/{nonInteractiveCli-6TW2XYP5.js → nonInteractiveCli-GPT3TVOK.js} +96 -98
  214. package/chunks/{notebook-edit-4MUXHZHT.js → notebook-edit-3WCVRNGL.js} +27 -30
  215. package/chunks/{openaiContentGenerator-5J73W5XZ.js → openaiContentGenerator-OGILGUZE.js} +12 -17
  216. package/chunks/{openaiResponsesContentGenerator-AWRYZLJU.js → openaiResponsesContentGenerator-NXOXUPFM.js} +45 -13
  217. package/chunks/{pidfile-M7WELKBB.js → pidfile-GBTBIGHF.js} +39 -42
  218. package/chunks/{process-registry-X6ZCASEN.js → process-registry-7LAPI3ZB.js} +1 -1
  219. package/chunks/{processUtils-SPRINFNY.js → processUtils-O4II3RYH.js} +2 -2
  220. package/chunks/{prompt-terminal-ledger-25BRD7FX.js → prompt-terminal-ledger-ILIXZI3E.js} +40 -43
  221. package/chunks/{pt-5ZF7ZQUV.js → pt-FYYFWYUC.js} +11 -0
  222. package/chunks/{qwenContentGenerator-H5AAKXPC.js → qwenContentGenerator-I4LRYADV.js} +33 -36
  223. package/chunks/{qwenOAuth2-WIEUEFEY.js → qwenOAuth2-3J66TOT5.js} +6 -7
  224. package/chunks/{read-file-ILGEFPB3.js → read-file-G4XKW2CS.js} +5 -9
  225. package/chunks/{record-artifact-PXMNP7GZ.js → record-artifact-L3CFJOMA.js} +2 -2
  226. package/chunks/{report-findings-W6GR7SYZ.js → report-findings-LY5HQY4K.js} +3 -3
  227. package/chunks/{resumeHistoryUtils-RB52QOCH.js → resumeHistoryUtils-YPJU4XFE.js} +44 -47
  228. package/chunks/{ripGrep-O6QAFHQK.js → ripGrep-AAKMALLM.js} +7 -11
  229. package/chunks/{ru-7BNZFQKG.js → ru-RHEB3RNS.js} +11 -0
  230. package/chunks/{run-qwen-serve-5NO3TKUL.js → run-qwen-serve-ZVEKGS7Y.js} +177 -98
  231. package/chunks/{runtime-G2YUYMSZ.js → runtime-SJCRYNPA.js} +52 -55
  232. package/chunks/safe-mode-KLGUG54M.js +11 -0
  233. package/chunks/sandbox-UIXL423Z.js +146 -0
  234. package/chunks/sandboxConfig-CY343YNJ.js +114 -0
  235. package/chunks/{scheduled-tasks-HDHV3URA.js → scheduled-tasks-5UGBEVNZ.js} +50 -53
  236. package/chunks/{scheduler-6MDJX2ZK.js → scheduler-GCZYLZ2P.js} +41 -44
  237. package/chunks/{sdk-exporters-http-3R2TRQHE.js → sdk-exporters-http-DR4G663K.js} +1 -1
  238. package/chunks/{sdk-impl-4WF3VZ2F.js → sdk-impl-SJR26MQF.js} +3 -3
  239. package/chunks/{send-message-UMJKN27Q.js → send-message-DN76MXDX.js} +6 -6
  240. package/chunks/{serve-Z2EJQYKB.js → serve-2XXQLVK2.js} +48 -51
  241. package/chunks/{server-JTNBK3LH.js → server-UHMKPCAZ.js} +408 -211
  242. package/chunks/{session-5YK2BXH4.js → session-ZLUK7E4P.js} +108 -108
  243. package/chunks/{session-attachments-root-QO3VFJS6.js → session-attachments-root-DHQM5IEZ.js} +39 -42
  244. package/chunks/{session-pr-refresh-OTK3HCJZ.js → session-pr-refresh-3OMTQWCZ.js} +48 -51
  245. package/chunks/{settings-2VKLACYV.js → settings-P4DHIIUP.js} +50 -53
  246. package/chunks/{shell-64NAVGMS.js → shell-IMFUVQQ5.js} +27 -30
  247. package/chunks/{skill-R3ALMLLM.js → skill-NB5RJGZW.js} +7 -11
  248. package/chunks/{skill-settings-HZ34TUMP.js → skill-settings-IXG5CTQO.js} +47 -50
  249. package/chunks/{spawnChannel-XGFWHEIK.js → spawnChannel-Q3YALTCJ.js} +44 -45
  250. package/chunks/{standalone-update-R32Y3XRR.js → standalone-update-H5OJ7MM7.js} +41 -44
  251. package/chunks/{start-opentui-ui-YGJOUE2H.js → start-opentui-ui-JKAIWGF7.js} +733 -386
  252. package/chunks/{startInteractiveUI-5ZEVKSFF.js → startInteractiveUI-YRPOT6GH.js} +370 -337
  253. package/chunks/task-create-75HVPEAH.js +1 -1
  254. package/chunks/{team-create-GCVUXJLE.js → team-create-2XTBYRJF.js} +31 -34
  255. package/chunks/{team-plan-approval-NOL62FJD.js → team-plan-approval-CFNWW7ZQ.js} +27 -30
  256. package/chunks/{terminal-image-renderer-WG5TLPGC.js → terminal-image-renderer-UDPJPGPQ.js} +39 -42
  257. package/chunks/{theme-manager-HDS4YFPW.js → theme-manager-SK57EKMO.js} +39 -42
  258. package/chunks/{tool-search-HMT5GYUR.js → tool-search-ZHTJU2MV.js} +5 -9
  259. package/chunks/{total-session-admission-Y5RCHEXO.js → total-session-admission-UUZBDQCG.js} +47 -50
  260. package/chunks/{tree-sitter-LSORDVZ3.js → tree-sitter-4D7QS7F6.js} +1 -1
  261. package/chunks/{tree-sitter-bash-UARELQ6C.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
  262. package/chunks/{trustedFolders-3Y2WCXMR.js → trustedFolders-4LDBLNTS.js} +40 -43
  263. package/chunks/{update-relaunch-MTJ32SLF.js → update-relaunch-LI7GRP36.js} +5 -5
  264. package/chunks/{updateCheck-YFX3VY6O.js → updateCheck-PKSSORPO.js} +43 -46
  265. package/chunks/{useAutoAcceptIndicator-FCHNQPMD.js → useAutoAcceptIndicator-I32UEQPI.js} +50 -53
  266. package/chunks/{validateNonInterActiveAuth-HUFQKCGG.js → validateNonInterActiveAuth-YFPCYYNL.js} +93 -95
  267. package/chunks/{version-S5TGWCA3.js → version-4MTL4JVU.js} +1 -1
  268. package/chunks/{web-fetch-23M7BYHB.js → web-fetch-O6RG6ISB.js} +9 -13
  269. package/chunks/{web-search-F5PNIQUA.js → web-search-JHAXVEMD.js} +9 -14
  270. package/chunks/{web-shell-static-T7UGLVE4.js → web-shell-static-FFWCUUZS.js} +8 -4
  271. package/chunks/{workflow-BLJLID2C.js → workflow-O7L6VDYU.js} +396 -113
  272. package/chunks/{workspace-providers-status-UH7KLZDT.js → workspace-providers-status-WRX6CJM4.js} +53 -56
  273. package/chunks/{workspace-registration-store-3SA3V7BA.js → workspace-registration-store-7G4E7YPY.js} +1 -1
  274. package/chunks/{workspace-registry-C6C6EKQ5.js → workspace-registry-SXIMGT4D.js} +47 -50
  275. package/chunks/{workspace-runtime-coordinator-RAI6XDJB.js → workspace-runtime-coordinator-7DOEHXYT.js} +47 -50
  276. package/chunks/{workspace-service-H7UTJYJU.js → workspace-service-HDXOZMYC.js} +53 -56
  277. package/chunks/{workspace-skills-status-FPVC7XXK.js → workspace-skills-status-VN4L37CA.js} +50 -53
  278. package/chunks/{workspace-trust-reconciler-JS7A6UIF.js → workspace-trust-reconciler-XEBW5FUL.js} +57 -60
  279. package/chunks/{write-file-GQGG7NBQ.js → write-file-LKX4ETIO.js} +29 -32
  280. package/chunks/{zh-V2EYTYJP.js → zh-F76MZTL3.js} +23 -1
  281. package/chunks/{zh-TW-7PRVUGLW.js → zh-TW-S3YTQ4DS.js} +23 -1
  282. package/chunks/{zoom-image-EC43KL4H.js → zoom-image-RDPRTP4B.js} +5 -9
  283. package/cli.js +19 -15
  284. package/export-transcript-document.css +1 -1
  285. package/export-transcript-document.js +151 -150
  286. package/locales/ca.js +19 -2
  287. package/locales/de.js +18 -0
  288. package/locales/en.js +33 -2
  289. package/locales/fr.js +18 -0
  290. package/locales/ja.js +18 -0
  291. package/locales/pt.js +18 -0
  292. package/locales/ru.js +18 -0
  293. package/locales/zh-TW.js +33 -2
  294. package/locales/zh.js +33 -2
  295. package/package.json +3 -3
  296. package/web-shell/assets/{abnfDiagram-VCTEODGH-BtpzKw3A.js → abnfDiagram-VCTEODGH-RxykUDmi.js} +1 -1
  297. package/web-shell/assets/{arc-CQiVKZJP.js → arc-CZpgGCJC.js} +1 -1
  298. package/web-shell/assets/{architectureDiagram-5GKGNRK7-ekIPBb2d.js → architectureDiagram-5GKGNRK7-BHSMzNDT.js} +1 -1
  299. package/web-shell/assets/{blockDiagram-NRAW4CY4-BrRWkWri.js → blockDiagram-NRAW4CY4-Bn4mF9SZ.js} +1 -1
  300. package/web-shell/assets/{c4Diagram-UCG6FXSJ-qYS8CYZ3.js → c4Diagram-UCG6FXSJ-CBM-Bj6t.js} +1 -1
  301. package/web-shell/assets/channel-DFYs_LlK.js +1 -0
  302. package/web-shell/assets/{chunk-2Q5K7J3B-ZasyyEZm.js → chunk-2Q5K7J3B-D5Fin58O.js} +1 -1
  303. package/web-shell/assets/{chunk-5VM5RSS4-C_IzCGeA.js → chunk-5VM5RSS4-CY05weF7.js} +1 -1
  304. package/web-shell/assets/{chunk-F27PBJKO-C25NZOyD.js → chunk-F27PBJKO-3neZnj5Y.js} +1 -1
  305. package/web-shell/assets/{chunk-G27WJ6UU-XPOHNSGX.js → chunk-G27WJ6UU-Cd7EU4BE.js} +1 -1
  306. package/web-shell/assets/{chunk-JWPE2WC7-BQBh0Xni.js → chunk-JWPE2WC7-DwK1mqFw.js} +1 -1
  307. package/web-shell/assets/{chunk-LCL6LL3I-CoShjpX7.js → chunk-LCL6LL3I-Sl7vY22C.js} +1 -1
  308. package/web-shell/assets/{chunk-POPQ4Y6H-BwRmCDSz.js → chunk-POPQ4Y6H-BXNzpbVg.js} +1 -1
  309. package/web-shell/assets/{chunk-SVP7TREG-DSzE5-Mw.js → chunk-SVP7TREG-DjjButcp.js} +1 -1
  310. package/web-shell/assets/{chunk-XXDRQBXY-BQSQv30h.js → chunk-XXDRQBXY-DNOiCjOJ.js} +1 -1
  311. package/web-shell/assets/classDiagram-DTDB5LWJ-DnGrKXoM.js +1 -0
  312. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DnGrKXoM.js +1 -0
  313. package/web-shell/assets/{cose-bilkent-JH36ORCC-XVUVTHVo.js → cose-bilkent-JH36ORCC-BUnker7a.js} +1 -1
  314. package/web-shell/assets/{cynefin-OW5HDTMX-CrsKx4lQ.js → cynefin-OW5HDTMX-DcUgdWE5.js} +1 -1
  315. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BPeZEuHw.js → cynefinDiagram-5FMLGOSQ-CvDKsZsL.js} +1 -1
  316. package/web-shell/assets/{dagre-3AP2YEHR-D31cQ2Qs.js → dagre-3AP2YEHR-jpCmUbr1.js} +1 -1
  317. package/web-shell/assets/{diagram-S7CK7UJ4-zyiG097Q.js → diagram-S7CK7UJ4-DBe_bKE5.js} +1 -1
  318. package/web-shell/assets/{diagram-UQ7AKVKN-Br3vtfsy.js → diagram-UQ7AKVKN-oXvPpDgs.js} +1 -1
  319. package/web-shell/assets/{diagram-VSXAHHWV-Bxkhjx4u.js → diagram-VSXAHHWV-BD7-_SGh.js} +1 -1
  320. package/web-shell/assets/{diagram-VX7I27RA-BQH8QiDk.js → diagram-VX7I27RA-DOJL0wub.js} +1 -1
  321. package/web-shell/assets/{diagram-Z3DM3KII-B_aQ1cw0.js → diagram-Z3DM3KII-DRIiodDD.js} +1 -1
  322. package/web-shell/assets/{ebnfDiagram-PWID7BFC-B9N7BRQE.js → ebnfDiagram-PWID7BFC-Db31Ulmb.js} +1 -1
  323. package/web-shell/assets/{erDiagram-SSCWMZ5O-Cx6Hb1Re.js → erDiagram-SSCWMZ5O-CVHhwI2_.js} +1 -1
  324. package/web-shell/assets/{flowDiagram-A5DVABFB-DTuLP7GU.js → flowDiagram-A5DVABFB-DWOFy1FK.js} +1 -1
  325. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DYS3d-sL.js → ganttDiagram-EL5Y4UJY-C0sxQtPd.js} +1 -1
  326. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Cp0EGx04.js → gitGraphDiagram-WWUBYQGX-CNituBYC.js} +1 -1
  327. package/web-shell/assets/index-B15NlwB8.js +2213 -0
  328. package/web-shell/assets/index-BSrS0tQ6.css +36 -0
  329. package/web-shell/assets/{index-45-LkPDB.js → index-gm9tLk7h.js} +1 -1
  330. package/web-shell/assets/{infoDiagram-RXCK75RN-9--kukiT.js → infoDiagram-RXCK75RN-CxhJYtIR.js} +1 -1
  331. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CGBdsDLD.js → ishikawaDiagram-5VMMS53U-By2mchUy.js} +1 -1
  332. package/web-shell/assets/{journeyDiagram-EYS64GPL-DeXhcscd.js → journeyDiagram-EYS64GPL-CVH-OweI.js} +1 -1
  333. package/web-shell/assets/{kanban-definition-3QL26DDD-CFdvsU3b.js → kanban-definition-3QL26DDD-Cc9dQXLy.js} +1 -1
  334. package/web-shell/assets/knowledge-Dg9788h4.svg +1 -0
  335. package/web-shell/assets/{layout-DAnwQ3KB.js → layout-C_60ysHw.js} +1 -1
  336. package/web-shell/assets/{linear-CTo7v7Nh.js → linear-BvAVfqwu.js} +1 -1
  337. package/web-shell/assets/{mermaid.core-jggSxF1i.js → mermaid.core-C3CoBKAc.js} +6 -6
  338. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzIepvlJ.js → mindmap-definition-FBJOCRG2-Cuu8Q8LM.js} +1 -1
  339. package/web-shell/assets/{pegDiagram-XKGWAZYB-BFGS9GJv.js → pegDiagram-XKGWAZYB-DmAeyDO2.js} +1 -1
  340. package/web-shell/assets/{pieDiagram-E7YTZNPT-B2UUcNIT.js → pieDiagram-E7YTZNPT-B7vbB_xv.js} +1 -1
  341. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-BgM6htrX.js → quadrantDiagram-AXDQQJYC-BqOBkRR7.js} +1 -1
  342. package/web-shell/assets/{railroadDiagram-O6MQD6OU-Dk9cS7N-.js → railroadDiagram-O6MQD6OU-sI06lZIu.js} +1 -1
  343. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-C9oRg7xi.js → requirementDiagram-EFPCY7ZU-Bg13d10S.js} +1 -1
  344. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-B-_c7GzI.js → sankeyDiagram-P5KCCOFB-WFOzZHrR.js} +1 -1
  345. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-R0M-347u.js → sequenceDiagram-WJ2MYXX4-CCdRbA4E.js} +1 -1
  346. package/web-shell/assets/{sizeCapture-X5ZJPWSS-Df0f8UAW.js → sizeCapture-X5ZJPWSS-BH5F3bGg.js} +1 -1
  347. package/web-shell/assets/{stateDiagram-HBIQ2CUA-CsUEfAA-.js → stateDiagram-HBIQ2CUA-NwS2X3QB.js} +1 -1
  348. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-1aU2JZXO.js +1 -0
  349. package/web-shell/assets/{swimlanes-XN3QIQJK-9OGHVSrx.js → swimlanes-XN3QIQJK-Bm38pM28.js} +1 -1
  350. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Dp-u6kQG.js +8 -0
  351. package/web-shell/assets/{timeline-definition-24CTP7MA-DAfGqS2B.js → timeline-definition-24CTP7MA-Do-agLSo.js} +1 -1
  352. package/web-shell/assets/{vennDiagram-4TSXK5OY-CKATpwHi.js → vennDiagram-4TSXK5OY-aggLfZzl.js} +1 -1
  353. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CQHdhTrm.js → wardleyDiagram-VM6X3IG4-D5JR3mXX.js} +1 -1
  354. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-5k9NLqlY.js → xychartDiagram-S5SC5T6Z-DhtLDuXs.js} +1 -1
  355. package/web-shell/index.html +2 -2
  356. package/chunks/chunk-4OQSG35W.js +0 -1416
  357. package/chunks/chunk-7MIBD3LG.js +0 -137
  358. package/chunks/chunk-ARDHE6MM.js +0 -235
  359. package/chunks/chunk-C75BXMPM.js +0 -169
  360. package/chunks/chunk-ERU3SDXT.js +0 -27
  361. package/chunks/chunk-FPGTNKCP.js +0 -251
  362. package/chunks/chunk-JIJ65YKA.js +0 -2812
  363. package/chunks/chunk-JL6APGBX.js +0 -43
  364. package/chunks/chunk-SGXJQP5Q.js +0 -4172
  365. package/chunks/chunk-TPEV2QHG.js +0 -514
  366. package/chunks/chunk-YVWS4SLL.js +0 -137
  367. package/web-shell/assets/channel-DSQQnOZj.js +0 -1
  368. package/web-shell/assets/classDiagram-DTDB5LWJ-V94ta08R.js +0 -1
  369. package/web-shell/assets/classDiagram-v2-JRS7N3AN-V94ta08R.js +0 -1
  370. package/web-shell/assets/index-H8um-iEl.js +0 -2207
  371. package/web-shell/assets/index-n6N-2a3v.css +0 -36
  372. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-CnSuTPJ2.js +0 -1
  373. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Bb7TcWQw.js +0 -8
  374. package/chunks/{chunk-QZW6WRB7.js → chunk-5NUKK2DT.js} +2 -2
  375. package/chunks/{chunk-JS73NNWF.js → chunk-FUSEMYFX.js} +0 -0
  376. package/chunks/{chunk-SVWWF5TZ.js → chunk-WVURIAEE.js} +3 -3
  377. package/chunks/{task-update-RI7QNVDP.js → task-update-3LSYQDRW.js} +4 -4
@@ -1,8 +1,5 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- scanForSecrets
5
- } from "./chunk-BUQN5LTI.js";
6
3
  import {
7
4
  MAX_DROPPED_MSG_IDS,
8
5
  MAX_FRAME_BYTES,
@@ -17,6 +14,9 @@ import {
17
14
  probePeerSocketVerdict,
18
15
  resolvePeerSocketCandidates
19
16
  } from "./chunk-YM6KUQ2S.js";
17
+ import {
18
+ scanForSecrets
19
+ } from "./chunk-BUQN5LTI.js";
20
20
  import {
21
21
  BudgetExhaustedError,
22
22
  CoreToolScheduler,
@@ -30,8 +30,9 @@ import {
30
30
  SessionService,
31
31
  StandardFileSystemService,
32
32
  aggregateUsage,
33
- buildApiHistoryFromConversation,
34
33
  buildManagedAutoMemoryPrompt,
34
+ buildSessionHistoryFromConversation,
35
+ buildSyntheticToolResponseParts,
35
36
  classifyShellCommandSafety,
36
37
  classifyShellCommandSafetyInDirectory,
37
38
  coerceMcpFilterEntries,
@@ -41,6 +42,7 @@ import {
41
42
  createForkedChat,
42
43
  createMemoryScopedAgentConfig,
43
44
  deriveConfig,
45
+ detectTurnInterruption,
44
46
  discoveryTimeoutFor,
45
47
  disposeConoutWorker,
46
48
  ensureAutoMemoryScaffold,
@@ -50,13 +52,13 @@ import {
50
52
  finalizeToolResponses,
51
53
  getCacheSafeParams,
52
54
  getCacheSafeParamsSessionId,
53
- getPty,
54
55
  getTimeRangeBounds,
55
56
  isAllowedMemoryPath,
56
57
  isClearedMediaPlaceholder,
57
58
  isPoolable,
58
59
  listDescendantPids,
59
60
  listExistingSkillDirNames,
61
+ loadPty,
60
62
  loadUsageHistoryWithLive,
61
63
  loadXtermHeadless,
62
64
  mcpSessionMetadataKey,
@@ -80,7 +82,7 @@ import {
80
82
  stripToolResultImages,
81
83
  toolResultBoundaryArtifact,
82
84
  toolResultPartDiagnosticValues
83
- } from "./chunk-WBP64MZR.js";
85
+ } from "./chunk-KAYC5FBN.js";
84
86
  import {
85
87
  hasVerifiableInode,
86
88
  openNoFollow
@@ -90,34 +92,34 @@ import {
90
92
  } from "./chunk-TWPJO254.js";
91
93
  import {
92
94
  projectUserTranscriptForDisplay
93
- } from "./chunk-ME4JBHSB.js";
94
- import {
95
- getProjectSkillsRoot,
96
- parse
97
- } from "./chunk-NJ2OFVUX.js";
95
+ } from "./chunk-VQDWCQOE.js";
98
96
  import {
99
97
  glob,
100
98
  globSync
101
99
  } from "./chunk-QJNDUTOL.js";
102
- import {
103
- resolveBundleDir
104
- } from "./chunk-ACHCT36C.js";
105
- import {
106
- escapeJsonTagCharacters
107
- } from "./chunk-CHEIIBT3.js";
108
100
  import {
109
101
  flattenPeerLabel
110
102
  } from "./chunk-OWUAZXXN.js";
111
103
  import {
112
104
  isPidAlive
113
105
  } from "./chunk-CH2YDT6X.js";
106
+ import {
107
+ getProjectSkillsRoot,
108
+ parse
109
+ } from "./chunk-P42KMMU6.js";
110
+ import {
111
+ resolveBundleDir
112
+ } from "./chunk-ACHCT36C.js";
113
+ import {
114
+ escapeJsonTagCharacters
115
+ } from "./chunk-CHEIIBT3.js";
114
116
  import {
115
117
  require_proper_lockfile
116
118
  } from "./chunk-MLXTMF7H.js";
117
119
  import {
118
120
  BUILT_IN_OUTPUT_STYLES,
119
121
  getBuiltInOutputStyle
120
- } from "./chunk-AXZMWAJV.js";
122
+ } from "./chunk-36SDZ2Q4.js";
121
123
  import {
122
124
  getFolderStructure,
123
125
  getStartupContextLength,
@@ -134,7 +136,7 @@ import {
134
136
  } from "./chunk-NUQ4GK5I.js";
135
137
  import {
136
138
  fetchWithPolicy
137
- } from "./chunk-66N6C4EH.js";
139
+ } from "./chunk-3WILPKTJ.js";
138
140
  import {
139
141
  COMBINED_PASS_TOLERANCE_FACTOR,
140
142
  TOOL_OUTPUT_TRUNCATED_PREFIX,
@@ -143,7 +145,7 @@ import {
143
145
  removeMCPStatusChangeListener,
144
146
  runSideQuery,
145
147
  updateMCPServerStatus
146
- } from "./chunk-FCLMJS6N.js";
148
+ } from "./chunk-CDDP4ONL.js";
147
149
  import {
148
150
  getInvocationContext
149
151
  } from "./chunk-5ETULJLP.js";
@@ -161,7 +163,7 @@ import {
161
163
  isCacheableReadResult,
162
164
  isWithinRoot,
163
165
  processSingleFileContent
164
- } from "./chunk-QZW6WRB7.js";
166
+ } from "./chunk-5NUKK2DT.js";
165
167
  import {
166
168
  getAutoMemoryRoot,
167
169
  getUserAutoMemoryRoot
@@ -175,7 +177,7 @@ import {
175
177
  normalizeContent,
176
178
  stripAnsiAndControl,
177
179
  stripHtmlComments
178
- } from "./chunk-4Y2I3CI3.js";
180
+ } from "./chunk-6USYH3EU.js";
179
181
  import {
180
182
  ToolNames,
181
183
  canonicalToolName
@@ -1105,58 +1107,6 @@ async function executeToolCall(config, toolCallRequest, abortSignal, options = {
1105
1107
  }
1106
1108
  __name(executeToolCall, "executeToolCall");
1107
1109
 
1108
- // packages/core/src/core/turn-interruption.ts
1109
- init_esbuild_shims();
1110
- var TURN_INTERRUPTION_HISTORY_TAIL_COUNT = 50;
1111
- function detectTurnInterruption(history) {
1112
- const last = history[history.length - 1];
1113
- if (!last) {
1114
- return { kind: "none" };
1115
- }
1116
- if (last.role === "user") {
1117
- const trailingUserEntries = [];
1118
- for (let i = history.length - 1; i >= 0; i--) {
1119
- const entry = history[i];
1120
- if (!entry || entry.role !== "user") {
1121
- break;
1122
- }
1123
- if (isSystemReminderContent(entry)) {
1124
- break;
1125
- }
1126
- trailingUserEntries.unshift(entry);
1127
- }
1128
- const allParts = trailingUserEntries.flatMap((entry) => entry.parts ?? []);
1129
- const parts = [
1130
- ...allParts.filter((part) => part.functionResponse),
1131
- ...allParts.filter((part) => !part.functionResponse)
1132
- ];
1133
- if (parts.length === 0) {
1134
- return { kind: "none" };
1135
- }
1136
- return { kind: "interrupted_prompt", parts: structuredClone(parts) };
1137
- }
1138
- if (last.role === "model") {
1139
- const danglingCalls = [];
1140
- for (const part of last.parts ?? []) {
1141
- const fc = part.functionCall;
1142
- if (fc?.id) {
1143
- danglingCalls.push({ callId: fc.id, name: fc.name ?? "unknown" });
1144
- }
1145
- }
1146
- if (danglingCalls.length > 0) {
1147
- return { kind: "interrupted_turn", danglingCalls };
1148
- }
1149
- }
1150
- return { kind: "none" };
1151
- }
1152
- __name(detectTurnInterruption, "detectTurnInterruption");
1153
- function buildSyntheticToolResponseParts(danglingCalls, reason) {
1154
- return danglingCalls.map(({ callId, name }) => ({
1155
- functionResponse: { id: callId, name, response: { error: reason } }
1156
- }));
1157
- }
1158
- __name(buildSyntheticToolResponseParts, "buildSyntheticToolResponseParts");
1159
-
1160
1110
  // packages/core/src/core/session-recovery.ts
1161
1111
  init_esbuild_shims();
1162
1112
  function createPlanId(sessionId, historyLength) {
@@ -1190,7 +1140,7 @@ function buildSessionRecoveryPlan({
1190
1140
  }) {
1191
1141
  return buildSessionRecoveryPlanFromApiHistory({
1192
1142
  sessionId,
1193
- apiHistory: buildApiHistoryFromConversation(conversation),
1143
+ ...buildSessionHistoryFromConversation(conversation),
1194
1144
  historyGaps,
1195
1145
  options
1196
1146
  });
@@ -1199,6 +1149,7 @@ __name(buildSessionRecoveryPlan, "buildSessionRecoveryPlan");
1199
1149
  function buildSessionRecoveryPlanFromApiHistory({
1200
1150
  sessionId,
1201
1151
  apiHistory: inputApiHistory,
1152
+ completedToolCallIds,
1202
1153
  historyGaps,
1203
1154
  options
1204
1155
  }) {
@@ -1238,7 +1189,10 @@ function buildSessionRecoveryPlanFromApiHistory({
1238
1189
  visibleNotice: buildVisibleNotice("degraded_history", repairs, gaps)
1239
1190
  };
1240
1191
  }
1241
- const interruption = detectTurnInterruption(originalApiHistory);
1192
+ const interruption = detectTurnInterruption(
1193
+ originalApiHistory,
1194
+ completedToolCallIds
1195
+ );
1242
1196
  if (interruption.kind === "none") {
1243
1197
  return {
1244
1198
  planId,
@@ -4136,12 +4090,14 @@ var WebTerminalRegistry = class {
4136
4090
  return { error: "Web terminal limit reached", retryable: true };
4137
4091
  }
4138
4092
  this.creating.set(terminalId, options.workspaceCwd);
4139
- let ptyImpl;
4093
+ let ptyLoad;
4140
4094
  try {
4141
- ptyImpl = await getPty();
4142
- } catch {
4095
+ ptyLoad = await loadPty();
4096
+ } catch (error) {
4143
4097
  this.finishCreating(terminalId);
4144
- return { error: "PTY not available" };
4098
+ return {
4099
+ error: `PTY not available: PTY support failed to load on ${os.platform()}/${os.arch()}: ${getErrorMessage(error)}`
4100
+ };
4145
4101
  }
4146
4102
  if (this.cancelledCreations.has(terminalId)) {
4147
4103
  this.finishCreating(terminalId);
@@ -4151,10 +4107,14 @@ var WebTerminalRegistry = class {
4151
4107
  this.finishCreating(terminalId);
4152
4108
  return { error: "Web terminal registry disposed" };
4153
4109
  }
4154
- if (!ptyImpl) {
4110
+ if (!ptyLoad.impl) {
4155
4111
  this.finishCreating(terminalId);
4156
- return { error: "PTY not available" };
4112
+ const loadError = ptyLoad.loadError;
4113
+ return {
4114
+ error: `PTY not available: no loadable PTY backend (@lydell/node-pty or node-pty) for ${os.platform()}/${os.arch()}${loadError ? `: ${loadError}` : ""}`
4115
+ };
4157
4116
  }
4117
+ const ptyImpl = ptyLoad.impl;
4158
4118
  const env2 = { ...options.env ?? process.env };
4159
4119
  const { file, args } = resolveWebTerminalShell(process.platform, env2);
4160
4120
  delete env2["NO_COLOR"];
@@ -5592,94 +5552,6 @@ __name(buildGoalContinuationParts, "buildGoalContinuationParts");
5592
5552
  // packages/core/src/goals/index.ts
5593
5553
  init_esbuild_shims();
5594
5554
 
5595
- // packages/core/src/goals/activeGoalStore.ts
5596
- init_esbuild_shims();
5597
- var store = /* @__PURE__ */ new Map();
5598
- function getActiveGoal(sessionId) {
5599
- return store.get(sessionId);
5600
- }
5601
- __name(getActiveGoal, "getActiveGoal");
5602
- function clearActiveGoal(sessionId) {
5603
- const previous = store.get(sessionId);
5604
- store.delete(sessionId);
5605
- return previous;
5606
- }
5607
- __name(clearActiveGoal, "clearActiveGoal");
5608
- var observers = /* @__PURE__ */ new Map();
5609
- function clearGoalTerminalObserver(sessionId) {
5610
- observers.delete(sessionId);
5611
- }
5612
- __name(clearGoalTerminalObserver, "clearGoalTerminalObserver");
5613
- function notifyGoalTerminal(sessionId, event) {
5614
- recordLastTerminalEvent(sessionId, event);
5615
- const observer = observers.get(sessionId);
5616
- if (!observer) return;
5617
- try {
5618
- observer(event);
5619
- } catch {
5620
- }
5621
- }
5622
- __name(notifyGoalTerminal, "notifyGoalTerminal");
5623
- var lastTerminal = /* @__PURE__ */ new Map();
5624
- function recordLastTerminalEvent(sessionId, event) {
5625
- lastTerminal.set(sessionId, event);
5626
- }
5627
- __name(recordLastTerminalEvent, "recordLastTerminalEvent");
5628
-
5629
- // packages/core/src/goals/goalHook.ts
5630
- init_esbuild_shims();
5631
-
5632
- // packages/core/src/goals/goalJudge.ts
5633
- init_esbuild_shims();
5634
- var debugLogger9 = createDebugLogger("GOAL_JUDGE");
5635
-
5636
- // packages/core/src/goals/goalHook.ts
5637
- var debugLogger10 = createDebugLogger("GOAL_HOOK");
5638
- var GOAL_HOOK_TIMEOUT_SECONDS = 30;
5639
- var GOAL_HOOK_TIMEOUT_MS = GOAL_HOOK_TIMEOUT_SECONDS * 1e3;
5640
- var GOAL_HOOK_ID_OUTPUT_KEY = "qwenGoalHookId";
5641
- function getStopHookContinuationReason(output) {
5642
- const hasGoalOutput = typeof output.hookSpecificOutput?.[GOAL_HOOK_ID_OUTPUT_KEY] === "string";
5643
- if (!hasGoalOutput) {
5644
- return output.stopReason || output.reason || "No reason provided";
5645
- }
5646
- return [output.stopReason, output.reason].filter(Boolean).join("\n") || "No reason provided";
5647
- }
5648
- __name(getStopHookContinuationReason, "getStopHookContinuationReason");
5649
- function removeGoalFunctionHook(config, sessionId, goal) {
5650
- const system = config.getHookSystem?.();
5651
- if (!system) return;
5652
- try {
5653
- system.removeFunctionHook(sessionId, "Stop" /* Stop */, goal.hookId);
5654
- } catch (err) {
5655
- debugLogger10.debug(
5656
- `Failed to remove goal hook ${goal.hookId}: ${err instanceof Error ? err.message : String(err)}`
5657
- );
5658
- }
5659
- }
5660
- __name(removeGoalFunctionHook, "removeGoalFunctionHook");
5661
- function finishGoal(config, sessionId, goal, event) {
5662
- clearActiveGoal(sessionId);
5663
- removeGoalFunctionHook(config, sessionId, goal);
5664
- notifyGoalTerminal(sessionId, event);
5665
- clearGoalTerminalObserver(sessionId);
5666
- }
5667
- __name(finishGoal, "finishGoal");
5668
- function abortGoalForStopHookCap(config, sessionId, systemMessage) {
5669
- const goal = getActiveGoal(sessionId);
5670
- if (!goal) return false;
5671
- finishGoal(config, sessionId, goal, {
5672
- kind: "aborted",
5673
- condition: goal.condition,
5674
- iterations: goal.iterations,
5675
- durationMs: Date.now() - goal.setAt,
5676
- lastReason: goal.lastReason,
5677
- systemMessage
5678
- });
5679
- return true;
5680
- }
5681
- __name(abortGoalForStopHookCap, "abortGoalForStopHookCap");
5682
-
5683
5555
  // packages/core/src/index.ts
5684
5556
  init_esbuild_shims();
5685
5557
 
@@ -6197,7 +6069,7 @@ init_esbuild_shims();
6197
6069
  import * as fs4 from "fs/promises";
6198
6070
  import * as os2 from "os";
6199
6071
  import * as path6 from "path";
6200
- var debugLogger11 = createDebugLogger("OUTPUT_STYLE_FILES");
6072
+ var debugLogger9 = createDebugLogger("OUTPUT_STYLE_FILES");
6201
6073
  var OUTPUT_STYLES_DIR_NAME = "output-styles";
6202
6074
  var MAX_OUTPUT_STYLE_FILE_BYTES = 25e3;
6203
6075
  var MAX_OUTPUT_STYLE_NAME_LENGTH = 64;
@@ -6256,7 +6128,7 @@ function parseOutputStyleFile(content, filePath, source) {
6256
6128
  (key) => !KNOWN_FRONTMATTER_KEYS.has(key)
6257
6129
  );
6258
6130
  if (unknownKeys.length > 0) {
6259
- debugLogger11.warn(
6131
+ debugLogger9.warn(
6260
6132
  `Output style ${filePath}: ignoring unknown frontmatter keys ${unknownKeys.join(", ")}`
6261
6133
  );
6262
6134
  }
@@ -6273,7 +6145,7 @@ function resolveKeepCodingInstructions(frontmatter, name, filePath) {
6273
6145
  return true;
6274
6146
  }
6275
6147
  if (spelling !== false && spelling !== "false") {
6276
- debugLogger11.warn(
6148
+ debugLogger9.warn(
6277
6149
  `Output style ${filePath}: keep-coding-instructions value ${JSON.stringify(raw)} is not true or false; treating it as false`
6278
6150
  );
6279
6151
  }
@@ -6326,20 +6198,20 @@ __name(deriveDescription, "deriveDescription");
6326
6198
  async function resolveStyleFileToRead(filePath, source, confineTo) {
6327
6199
  const stat5 = source === "project" ? await fs4.lstat(filePath) : await fs4.stat(filePath);
6328
6200
  if (source === "project" && stat5.isSymbolicLink()) {
6329
- debugLogger11.warn(`Skipping output style ${filePath}: it is a symlink`);
6201
+ debugLogger9.warn(`Skipping output style ${filePath}: it is a symlink`);
6330
6202
  return null;
6331
6203
  }
6332
6204
  if (!stat5.isFile()) {
6333
6205
  return null;
6334
6206
  }
6335
6207
  if (stat5.nlink > 1) {
6336
- debugLogger11.warn(`Skipping output style ${filePath}: it is a hard link`);
6208
+ debugLogger9.warn(`Skipping output style ${filePath}: it is a hard link`);
6337
6209
  return null;
6338
6210
  }
6339
6211
  const realPath = await fs4.realpath(filePath);
6340
6212
  const realRoot = await fs4.realpath(confineTo);
6341
6213
  if (realPath !== realRoot && !isWithinRoot(realPath, realRoot)) {
6342
- debugLogger11.warn(
6214
+ debugLogger9.warn(
6343
6215
  `Skipping output style ${filePath}: it resolves outside ${realRoot}`
6344
6216
  );
6345
6217
  return null;
@@ -6377,7 +6249,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6377
6249
  entries = await fs4.readdir(dir);
6378
6250
  } catch (error) {
6379
6251
  if (error.code !== "ENOENT") {
6380
- debugLogger11.warn(`Cannot read output styles directory ${dir}:`, error);
6252
+ debugLogger9.warn(`Cannot read output styles directory ${dir}:`, error);
6381
6253
  }
6382
6254
  return [];
6383
6255
  }
@@ -6396,13 +6268,13 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6396
6268
  }
6397
6269
  const buffer = await readBoundedStyleFile(readPath);
6398
6270
  if (buffer.byteLength > MAX_OUTPUT_STYLE_FILE_BYTES) {
6399
- debugLogger11.warn(
6271
+ debugLogger9.warn(
6400
6272
  `Skipping output style ${filePath}: larger than ${MAX_OUTPUT_STYLE_FILE_BYTES} bytes`
6401
6273
  );
6402
6274
  continue;
6403
6275
  }
6404
6276
  if (isBinary(buffer)) {
6405
- debugLogger11.warn(
6277
+ debugLogger9.warn(
6406
6278
  `Skipping output style ${filePath}: it is not UTF-8 text`
6407
6279
  );
6408
6280
  continue;
@@ -6414,7 +6286,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6414
6286
  );
6415
6287
  const key = style.name.toLowerCase();
6416
6288
  if (seen.has(key)) {
6417
- debugLogger11.warn(
6289
+ debugLogger9.warn(
6418
6290
  `Skipping output style ${filePath}: another file in ${dir} already defines "${style.name}"`
6419
6291
  );
6420
6292
  continue;
@@ -6422,7 +6294,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6422
6294
  seen.add(key);
6423
6295
  styles.push(style);
6424
6296
  } catch (error) {
6425
- debugLogger11.warn(
6297
+ debugLogger9.warn(
6426
6298
  `Skipping output style ${filePath}: ${error instanceof Error ? error.message : String(error)}`
6427
6299
  );
6428
6300
  }
@@ -6470,7 +6342,7 @@ async function loadOutputStyleCatalog(options = {}) {
6470
6342
  const key = style.name.toLowerCase();
6471
6343
  const winner = winners.get(key);
6472
6344
  if (winner) {
6473
- debugLogger11.debug(
6345
+ debugLogger9.debug(
6474
6346
  `Output style "${style.name}" (${style.source}) is shadowed by the ${winner.source} style of the same name`
6475
6347
  );
6476
6348
  continue;
@@ -6490,7 +6362,7 @@ __name(findOutputStyle, "findOutputStyle");
6490
6362
 
6491
6363
  // packages/core/src/tools/client-mcp-registrar.ts
6492
6364
  init_esbuild_shims();
6493
- var debugLogger12 = createDebugLogger("CLIENT_MCP_REGISTRAR");
6365
+ var debugLogger10 = createDebugLogger("CLIENT_MCP_REGISTRAR");
6494
6366
  var CLIENT_MCP_MESSAGE_TIMEOUT_MS = 3e4;
6495
6367
  var ClientMcpRegistrar = class {
6496
6368
  static {
@@ -6513,7 +6385,7 @@ var ClientMcpRegistrar = class {
6513
6385
  */
6514
6386
  registerServer(serverName) {
6515
6387
  this.servers.add(serverName);
6516
- debugLogger12.debug(`Registered client MCP server '${serverName}'`);
6388
+ debugLogger10.debug(`Registered client MCP server '${serverName}'`);
6517
6389
  }
6518
6390
  /**
6519
6391
  * Drop a server name and reject any in-flight requests targeting it. Returns
@@ -6526,7 +6398,7 @@ var ClientMcpRegistrar = class {
6526
6398
  new Error(`client MCP server '${serverName}' was unregistered`)
6527
6399
  );
6528
6400
  if (existed) {
6529
- debugLogger12.debug(`Unregistered client MCP server '${serverName}'`);
6401
+ debugLogger10.debug(`Unregistered client MCP server '${serverName}'`);
6530
6402
  }
6531
6403
  return existed;
6532
6404
  }
@@ -6626,7 +6498,7 @@ var ClientMcpRegistrar = class {
6626
6498
  resolveMessage(id, payload) {
6627
6499
  const pending = this.pending.get(id);
6628
6500
  if (!pending) {
6629
- debugLogger12.debug(`Dropping mcp_message with unknown id '${id}'`);
6501
+ debugLogger10.debug(`Dropping mcp_message with unknown id '${id}'`);
6630
6502
  return false;
6631
6503
  }
6632
6504
  this.pending.delete(id);
@@ -6848,7 +6720,7 @@ import { createHash, randomBytes as randomBytes2, timingSafeEqual as timingSafeE
6848
6720
  import * as fsSync2 from "node:fs";
6849
6721
  import * as fs5 from "node:fs/promises";
6850
6722
  import * as path7 from "node:path";
6851
- var debugLogger13 = createDebugLogger("PEER_CONTROLLERS");
6723
+ var debugLogger11 = createDebugLogger("PEER_CONTROLLERS");
6852
6724
  var PEER_CONTROLLER_SCHEMA_VERSION = 1;
6853
6725
  var CONTROLLER_TOKEN_PREFIX = "qpc_";
6854
6726
  var CONTROLLER_TOKEN_BYTES = 32;
@@ -6869,7 +6741,7 @@ var LOCK_OPTIONS = {
6869
6741
  randomize: true
6870
6742
  },
6871
6743
  onCompromised: /* @__PURE__ */ __name((error) => {
6872
- debugLogger13.debug(
6744
+ debugLogger11.debug(
6873
6745
  `controller registry lock compromised: ${describe2(error)}`
6874
6746
  );
6875
6747
  }, "onCompromised")
@@ -6936,13 +6808,13 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6936
6808
  try {
6937
6809
  const stats = fsSync2.lstatSync(filePath);
6938
6810
  if (!stats.isFile()) {
6939
- debugLogger13.debug(
6811
+ debugLogger11.debug(
6940
6812
  `ignoring the controller registry at ${filePath}: not a regular file`
6941
6813
  );
6942
6814
  return emptyRegistry();
6943
6815
  }
6944
6816
  if (stats.size > MAX_REGISTRY_BYTES) {
6945
- debugLogger13.debug(
6817
+ debugLogger11.debug(
6946
6818
  `ignoring the controller registry at ${filePath}: ${stats.size} bytes exceeds the ${MAX_REGISTRY_BYTES}-byte cap`
6947
6819
  );
6948
6820
  return emptyRegistry();
@@ -6950,7 +6822,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6950
6822
  raw = fsSync2.readFileSync(filePath, "utf8");
6951
6823
  } catch (error) {
6952
6824
  if (!isNodeError(error) || error.code !== "ENOENT") {
6953
- debugLogger13.debug(
6825
+ debugLogger11.debug(
6954
6826
  `could not read the controller registry at ${filePath}: ${describe2(error)}`
6955
6827
  );
6956
6828
  }
@@ -6960,14 +6832,14 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6960
6832
  try {
6961
6833
  parsed = JSON.parse(raw);
6962
6834
  } catch (error) {
6963
- debugLogger13.debug(
6835
+ debugLogger11.debug(
6964
6836
  `the controller registry at ${filePath} is not JSON: ${describe2(error)}`
6965
6837
  );
6966
6838
  return emptyRegistry();
6967
6839
  }
6968
6840
  if (!isRecord(parsed)) return emptyRegistry();
6969
6841
  if (parsed["schemaVersion"] !== PEER_CONTROLLER_SCHEMA_VERSION) {
6970
- debugLogger13.debug(
6842
+ debugLogger11.debug(
6971
6843
  `ignoring the controller registry at ${filePath}: unsupported schemaVersion ${String(
6972
6844
  parsed["schemaVersion"]
6973
6845
  )}`
@@ -6980,7 +6852,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6980
6852
  for (const entry of controllers) {
6981
6853
  const record = toValidRecord(entry);
6982
6854
  if (record === null) {
6983
- debugLogger13.debug(
6855
+ debugLogger11.debug(
6984
6856
  `skipping a malformed entry in the controller registry at ${filePath}`
6985
6857
  );
6986
6858
  continue;
@@ -7208,7 +7080,7 @@ __name(removePeerController, "removePeerController");
7208
7080
 
7209
7081
  // packages/core/src/ipc/peer-drop-reports.ts
7210
7082
  init_esbuild_shims();
7211
- var debugLogger14 = createDebugLogger("PEER_DROP_REPORTS");
7083
+ var debugLogger12 = createDebugLogger("PEER_DROP_REPORTS");
7212
7084
  var DROP_REPORT_WINDOW_MS = 6e4;
7213
7085
  var DROP_RECEIPT_TRAIL_MS = 5e3;
7214
7086
  var DROP_FLUSH_BOUND_MS = 500;
@@ -7350,7 +7222,7 @@ var DropReceiptCoalescer = class {
7350
7222
  const now = this.now();
7351
7223
  const age = now - batch.firstNotedAt;
7352
7224
  if (!force && age >= MAX_DEFERRED_RECEIPT_AGE_MS) {
7353
- debugLogger14.debug(
7225
+ debugLogger12.debug(
7354
7226
  `abandoning a dropped receipt held ${Math.round(age)} ms by a spent budget`
7355
7227
  );
7356
7228
  this.clearBatch(batch);
@@ -7388,7 +7260,7 @@ var DropReceiptCoalescer = class {
7388
7260
  try {
7389
7261
  result = this.send(receipt);
7390
7262
  } catch (error) {
7391
- debugLogger14.debug(`sending a dropped receipt threw: ${describe3(error)}`);
7263
+ debugLogger12.debug(`sending a dropped receipt threw: ${describe3(error)}`);
7392
7264
  return;
7393
7265
  }
7394
7266
  if (!(result instanceof Promise)) return result;
@@ -7489,7 +7361,7 @@ var DropNoticeThrottle = class {
7489
7361
  suppressed
7490
7362
  });
7491
7363
  } catch (error) {
7492
- debugLogger14.debug(`drop-notice listener threw: ${describe3(error)}`);
7364
+ debugLogger12.debug(`drop-notice listener threw: ${describe3(error)}`);
7493
7365
  }
7494
7366
  }
7495
7367
  touch(key) {
@@ -7679,7 +7551,7 @@ var DroppedNotificationTally = class {
7679
7551
 
7680
7552
  // packages/core/src/services/toolUseSummary.ts
7681
7553
  init_esbuild_shims();
7682
- var debugLogger15 = createDebugLogger("TOOL_USE_SUMMARY");
7554
+ var debugLogger13 = createDebugLogger("TOOL_USE_SUMMARY");
7683
7555
  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.
7684
7556
 
7685
7557
  Keep the verb in past tense and the most distinctive noun. Drop articles, connectors, and long location context first.
@@ -7700,7 +7572,7 @@ async function generateToolUseSummary(params) {
7700
7572
  }
7701
7573
  const model = config.getFastModel();
7702
7574
  if (!model) {
7703
- debugLogger15.debug("No fast model configured \u2014 skipping summary generation");
7575
+ debugLogger13.debug("No fast model configured \u2014 skipping summary generation");
7704
7576
  return null;
7705
7577
  }
7706
7578
  if (signal.aborted) {
@@ -7723,7 +7595,7 @@ ${toolSummaries}
7723
7595
 
7724
7596
  Label:`;
7725
7597
  if (!config.getLlmClient()) {
7726
- debugLogger15.debug("No gemini client available \u2014 skipping");
7598
+ debugLogger13.debug("No gemini client available \u2014 skipping");
7727
7599
  return null;
7728
7600
  }
7729
7601
  const result = await runSideQuery(config, {
@@ -7742,19 +7614,19 @@ Label:`;
7742
7614
  });
7743
7615
  if (signal.aborted) return null;
7744
7616
  if (!result.text) {
7745
- debugLogger15.debug("Summary generation returned empty result");
7617
+ debugLogger13.debug("Summary generation returned empty result");
7746
7618
  return null;
7747
7619
  }
7748
7620
  const cleaned = cleanSummary(result.text);
7749
7621
  if (!cleaned) {
7750
- debugLogger15.debug(`Summary cleaned to empty: raw="${result.text}"`);
7622
+ debugLogger13.debug(`Summary cleaned to empty: raw="${result.text}"`);
7751
7623
  return null;
7752
7624
  }
7753
- debugLogger15.debug(`Summary generated: "${cleaned}"`);
7625
+ debugLogger13.debug(`Summary generated: "${cleaned}"`);
7754
7626
  return cleaned;
7755
7627
  } catch (err) {
7756
7628
  if (signal.aborted) return null;
7757
- debugLogger15.warn(
7629
+ debugLogger13.warn(
7758
7630
  `Summary generation failed: ${err instanceof Error ? err.message : String(err)}`
7759
7631
  );
7760
7632
  return null;
@@ -7828,7 +7700,7 @@ __name(cleanSummary, "cleanSummary");
7828
7700
 
7829
7701
  // packages/core/src/services/usage-dashboard-service.ts
7830
7702
  init_esbuild_shims();
7831
- var debugLogger16 = createDebugLogger("USAGE_DASHBOARD");
7703
+ var debugLogger14 = createDebugLogger("USAGE_DASHBOARD");
7832
7704
  var DEFAULT_HEATMAP_DAYS = 183;
7833
7705
  var MAX_DAILY_DAYS = 92;
7834
7706
  var MS_PER_DAY = 24 * 60 * 60 * 1e3;
@@ -7953,7 +7825,7 @@ function buildUsageDashboard(records, options = {}) {
7953
7825
  );
7954
7826
  const daily = buildDaily(records, dailyStart, now);
7955
7827
  const heatmap = buildHeatmap(records, now - heatmapDays * MS_PER_DAY, now);
7956
- debugLogger16.debug(
7828
+ debugLogger14.debug(
7957
7829
  `built dashboard range=${range} records=${records.length} models=${models.length} skills=${skills.length} dailyPoints=${daily.length}`
7958
7830
  );
7959
7831
  return {
@@ -8289,7 +8161,7 @@ import * as path8 from "node:path";
8289
8161
  var CHANNEL_MEMORY_FILE_NAME = "CHANNEL.json";
8290
8162
  var LEGACY_CHANNEL_MEMORY_FILE_NAME = "CHANNEL.md";
8291
8163
  var MAX_CHANNEL_MEMORY_BYTES = 1024 * 1024;
8292
- var debugLogger17 = createDebugLogger("CHANNEL_MEMORY");
8164
+ var debugLogger15 = createDebugLogger("CHANNEL_MEMORY");
8293
8165
  var pendingMutations = /* @__PURE__ */ new Map();
8294
8166
  var LOCK_OPTIONS2 = {
8295
8167
  realpath: false,
@@ -8302,7 +8174,7 @@ var LOCK_OPTIONS2 = {
8302
8174
  },
8303
8175
  stale: 5e3,
8304
8176
  onCompromised: /* @__PURE__ */ __name((err) => {
8305
- debugLogger17.warn("channel memory lock compromised:", err);
8177
+ debugLogger15.warn("channel memory lock compromised:", err);
8306
8178
  }, "onCompromised")
8307
8179
  };
8308
8180
  function isMissingFile(error) {
@@ -9289,7 +9161,7 @@ init_esbuild_shims();
9289
9161
  import * as fs9 from "node:fs";
9290
9162
  import * as path11 from "path";
9291
9163
  import { pathToFileURL } from "url";
9292
- var debugLogger18 = createDebugLogger("LSP");
9164
+ var debugLogger16 = createDebugLogger("LSP");
9293
9165
  var MAX_TCP_PORT = 65535;
9294
9166
  var LspConfigLoader = class {
9295
9167
  constructor(workspaceRoot) {
@@ -9314,7 +9186,7 @@ var LspConfigLoader = class {
9314
9186
  forceTrustRequired: true
9315
9187
  });
9316
9188
  } catch (error) {
9317
- debugLogger18.warn("Failed to load user .lsp.json config:", error);
9189
+ debugLogger16.warn("Failed to load user .lsp.json config:", error);
9318
9190
  return [];
9319
9191
  }
9320
9192
  }
@@ -9351,7 +9223,7 @@ var LspConfigLoader = class {
9351
9223
  lspServers
9352
9224
  );
9353
9225
  if (!fs9.existsSync(configPath)) {
9354
- debugLogger18.warn(
9226
+ debugLogger16.warn(
9355
9227
  `LSP config not found for ${originBase}: ${configPath}`
9356
9228
  );
9357
9229
  continue;
@@ -9367,7 +9239,7 @@ var LspConfigLoader = class {
9367
9239
  )
9368
9240
  );
9369
9241
  } catch (error) {
9370
- debugLogger18.warn(
9242
+ debugLogger16.warn(
9371
9243
  `Failed to load extension LSP config from ${configPath}:`,
9372
9244
  error
9373
9245
  );
@@ -9381,7 +9253,7 @@ var LspConfigLoader = class {
9381
9253
  ...this.parseConfigSource(hydrated, `${originBase} (lspServers)`)
9382
9254
  );
9383
9255
  } else {
9384
- debugLogger18.warn(
9256
+ debugLogger16.warn(
9385
9257
  `LSP config for ${originBase} must be an object or a JSON file path.`
9386
9258
  );
9387
9259
  }
@@ -9519,13 +9391,13 @@ var LspConfigLoader = class {
9519
9391
  const trustRequired = options.forceTrustRequired ? true : typeof spec["trustRequired"] === "boolean" ? spec["trustRequired"] : true;
9520
9392
  const socket = this.normalizeSocketOptions(spec);
9521
9393
  if (transport === "stdio" && !command) {
9522
- debugLogger18.warn(
9394
+ debugLogger16.warn(
9523
9395
  `LSP config error in ${origin}: ${name} missing command`
9524
9396
  );
9525
9397
  return null;
9526
9398
  }
9527
9399
  if (transport !== "stdio" && !socket) {
9528
- debugLogger18.warn(
9400
+ debugLogger16.warn(
9529
9401
  `LSP config error in ${origin}: ${name} missing socket info`
9530
9402
  );
9531
9403
  return null;
@@ -9667,7 +9539,7 @@ var LspConfigLoader = class {
9667
9539
  if (resolved === root || resolved.startsWith(root + path11.sep)) {
9668
9540
  return resolved;
9669
9541
  }
9670
- debugLogger18.warn(
9542
+ debugLogger16.warn(
9671
9543
  `LSP workspaceFolder must be within ${this.workspaceRoot}; using workspace root instead.`
9672
9544
  );
9673
9545
  return this.workspaceRoot;
@@ -9679,7 +9551,7 @@ init_esbuild_shims();
9679
9551
  import * as cp from "node:child_process";
9680
9552
  import * as net2 from "node:net";
9681
9553
  import { StringDecoder } from "node:string_decoder";
9682
- var debugLogger19 = createDebugLogger("LSP");
9554
+ var debugLogger17 = createDebugLogger("LSP");
9683
9555
  var MAX_STDERR_TAIL_BYTES = 8192;
9684
9556
  function trimTail(value, maxBytes) {
9685
9557
  const buffer = Buffer.from(value, "utf8");
@@ -9744,7 +9616,7 @@ var JsonRpcConnection = class {
9744
9616
  try {
9745
9617
  this.disposer?.();
9746
9618
  } catch (error) {
9747
- debugLogger19.warn("LSP disposer failed:", error);
9619
+ debugLogger17.warn("LSP disposer failed:", error);
9748
9620
  }
9749
9621
  }
9750
9622
  sendRequest(method, params) {
@@ -9871,7 +9743,7 @@ var JsonRpcConnection = class {
9871
9743
  try {
9872
9744
  this.writer(header + json);
9873
9745
  } catch (error) {
9874
- debugLogger19.warn("LSP write failed:", error);
9746
+ debugLogger17.warn("LSP write failed:", error);
9875
9747
  this.end();
9876
9748
  }
9877
9749
  }
@@ -9930,14 +9802,14 @@ var LspConnectionFactory = class _LspConnectionFactory {
9930
9802
  );
9931
9803
  });
9932
9804
  processInstance.stderr?.on("error", (err) => {
9933
- debugLogger19.warn(`LSP stderr stream error for ${command}:`, err);
9805
+ debugLogger17.warn(`LSP stderr stream error for ${command}:`, err);
9934
9806
  });
9935
9807
  const connection = new JsonRpcConnection(
9936
9808
  (payload) => processInstance.stdin?.write(payload),
9937
9809
  () => processInstance.stdin?.end()
9938
9810
  );
9939
9811
  processInstance.stdin.on("error", (err) => {
9940
- debugLogger19.warn(`LSP stdin stream error for ${command}:`, err);
9812
+ debugLogger17.warn(`LSP stdin stream error for ${command}:`, err);
9941
9813
  connection.end();
9942
9814
  });
9943
9815
  connection.listen(processInstance.stdout);
@@ -10020,7 +9892,7 @@ var LspConnectionFactory = class _LspConnectionFactory {
10020
9892
  try {
10021
9893
  await lspConnection.connection.shutdown();
10022
9894
  } catch (e) {
10023
- debugLogger19.warn("LSP shutdown failed:", e);
9895
+ debugLogger17.warn("LSP shutdown failed:", e);
10024
9896
  } finally {
10025
9897
  lspConnection.connection.end();
10026
9898
  }
@@ -10708,7 +10580,7 @@ function resolveTextDocumentSync(sync) {
10708
10580
  __name(resolveTextDocumentSync, "resolveTextDocumentSync");
10709
10581
 
10710
10582
  // packages/core/src/lsp/lsp-server-manager.ts
10711
- var debugLogger20 = createDebugLogger("LSP");
10583
+ var debugLogger18 = createDebugLogger("LSP");
10712
10584
  var SECURITY_SENSITIVE_ENV_KEYS = /* @__PURE__ */ new Set([
10713
10585
  "DYLD_INSERT_LIBRARIES",
10714
10586
  "DYLD_LIBRARY_PATH",
@@ -10745,7 +10617,7 @@ var LspServerManager = class {
10745
10617
  });
10746
10618
  this.serverConfigHashes.set(config.name, lspServerConfigHash(config));
10747
10619
  }
10748
- debugLogger20.info(
10620
+ debugLogger18.info(
10749
10621
  `Prepared ${configs.length} LSP server config(s): ${formatServerNames(
10750
10622
  configs.map((config) => config.name)
10751
10623
  )}`
@@ -10754,7 +10626,7 @@ var LspServerManager = class {
10754
10626
  /** Drops all prepared handles without attempting process shutdown. */
10755
10627
  clearServerHandles() {
10756
10628
  if (this.serverHandles.size > 0) {
10757
- debugLogger20.info(
10629
+ debugLogger18.info(
10758
10630
  `Clearing ${this.serverHandles.size} LSP server handle(s): ${formatServerNames(
10759
10631
  Array.from(this.serverHandles.keys())
10760
10632
  )}`
@@ -10815,7 +10687,7 @@ var LspServerManager = class {
10815
10687
  * before their handles are deleted or replaced.
10816
10688
  */
10817
10689
  async doReconcileServerConfigs(configs) {
10818
- debugLogger20.info(
10690
+ debugLogger18.info(
10819
10691
  `Reconciling LSP server configs: desired=${formatServerNames(
10820
10692
  configs.map((config) => config.name)
10821
10693
  )}`
@@ -10887,7 +10759,7 @@ var LspServerManager = class {
10887
10759
  result.added.push(name);
10888
10760
  }
10889
10761
  }
10890
- debugLogger20.info(
10762
+ debugLogger18.info(
10891
10763
  `LSP reconcile result: added=${formatServerNames(
10892
10764
  result.added
10893
10765
  )}, removed=${formatServerNames(
@@ -10929,7 +10801,7 @@ var LspServerManager = class {
10929
10801
  handle.textDocumentSync
10930
10802
  );
10931
10803
  if (!sent && (!openClose || force && change !== 1 && change !== 2)) {
10932
- debugLogger20.warn(
10804
+ debugLogger18.warn(
10933
10805
  `TypeScript server ${handle.config.name} warm-up delivered no notification (textDocumentSync=${JSON.stringify(handle.textDocumentSync)})`
10934
10806
  );
10935
10807
  handle.warmedUp = true;
@@ -10940,7 +10812,7 @@ var LspServerManager = class {
10940
10812
  );
10941
10813
  if (handle.connection === connection) handle.warmedUp = true;
10942
10814
  } catch (error) {
10943
- debugLogger20.warn("TypeScript server warm-up failed:", error);
10815
+ debugLogger18.warn("TypeScript server warm-up failed:", error);
10944
10816
  return;
10945
10817
  }
10946
10818
  }
@@ -10987,7 +10859,7 @@ var LspServerManager = class {
10987
10859
  async doStartServer(name, handle) {
10988
10860
  const workspaceTrusted = this.config.isTrustedFolder();
10989
10861
  if ((this.requireTrustedWorkspace || handle.config.trustRequired) && !workspaceTrusted) {
10990
- debugLogger20.warn(
10862
+ debugLogger18.warn(
10991
10863
  `LSP server ${name} requires trusted workspace, skipping startup`
10992
10864
  );
10993
10865
  handle.status = "FAILED";
@@ -11000,7 +10872,7 @@ var LspServerManager = class {
11000
10872
  workspaceTrusted
11001
10873
  );
11002
10874
  if (!trusted) {
11003
- debugLogger20.warn(
10875
+ debugLogger18.warn(
11004
10876
  `Workspace trust check failed, not starting LSP server ${name}`
11005
10877
  );
11006
10878
  handle.status = "FAILED";
@@ -11010,7 +10882,7 @@ var LspServerManager = class {
11010
10882
  if (handle.config.command) {
11011
10883
  const commandCwd = handle.config.workspaceFolder ?? this.workspaceRoot;
11012
10884
  if (!this.isPathSafe(handle.config.command, this.workspaceRoot, commandCwd)) {
11013
- debugLogger20.warn(
10885
+ debugLogger18.warn(
11014
10886
  `LSP server ${name} command path is unsafe: ${handle.config.command}`
11015
10887
  );
11016
10888
  handle.status = "FAILED";
@@ -11022,7 +10894,7 @@ var LspServerManager = class {
11022
10894
  handle.config.env,
11023
10895
  commandCwd
11024
10896
  )) {
11025
- debugLogger20.warn(
10897
+ debugLogger18.warn(
11026
10898
  `LSP server ${name} command not found: ${handle.config.command}`
11027
10899
  );
11028
10900
  handle.status = "FAILED";
@@ -11038,7 +10910,7 @@ var LspServerManager = class {
11038
10910
  handle.warmedUp = false;
11039
10911
  handle.textDocumentSync = void 0;
11040
10912
  handle.status = "IN_PROGRESS";
11041
- debugLogger20.info(
10913
+ debugLogger18.info(
11042
10914
  `Starting LSP server ${name}: command=${handle.config.command ?? "<none>"}, transport=${handle.config.transport}, languages=${formatServerNames(
11043
10915
  handle.config.languages
11044
10916
  )}`
@@ -11063,7 +10935,7 @@ var LspServerManager = class {
11063
10935
  }
11064
10936
  handle.status = "READY";
11065
10937
  this.attachRestartHandler(name, handle);
11066
- debugLogger20.info(`LSP server ${name} started successfully`);
10938
+ debugLogger18.info(`LSP server ${name} started successfully`);
11067
10939
  } catch (error) {
11068
10940
  handle.status = "FAILED";
11069
10941
  handle.error = error;
@@ -11077,21 +10949,21 @@ var LspServerManager = class {
11077
10949
  }
11078
10950
  await this.releaseServerResources(name, handle, false);
11079
10951
  if (handle.processDiagnostics) {
11080
- debugLogger20.error(
10952
+ debugLogger18.error(
11081
10953
  `LSP server ${name} process diagnostics:`,
11082
10954
  handle.processDiagnostics
11083
10955
  );
11084
10956
  }
11085
10957
  handle.connection = void 0;
11086
10958
  handle.process = void 0;
11087
- debugLogger20.error(`LSP server ${name} failed to start:`, error);
10959
+ debugLogger18.error(`LSP server ${name} failed to start:`, error);
11088
10960
  }
11089
10961
  }
11090
10962
  /**
11091
10963
  * Stops a server and resets runtime-only handle state.
11092
10964
  */
11093
10965
  async stopServer(name, handle) {
11094
- debugLogger20.info(`Stopping LSP server ${name}`);
10966
+ debugLogger18.info(`Stopping LSP server ${name}`);
11095
10967
  handle.stopRequested = true;
11096
10968
  handle.startupAbortController?.abort();
11097
10969
  if (handle.startingPromise) {
@@ -11104,7 +10976,7 @@ var LspServerManager = class {
11104
10976
  handle.status = "NOT_STARTED";
11105
10977
  handle.warmedUp = false;
11106
10978
  handle.restartAttempts = 0;
11107
- debugLogger20.info(`LSP server ${name} stopped`);
10979
+ debugLogger18.info(`LSP server ${name} stopped`);
11108
10980
  }
11109
10981
  async abortAndWaitForStartup(handle) {
11110
10982
  if (!handle.startingPromise) {
@@ -11128,14 +11000,14 @@ var LspServerManager = class {
11128
11000
  handle.connection.end();
11129
11001
  }
11130
11002
  } catch (error) {
11131
- debugLogger20.error(`Error closing LSP server ${name}:`, error);
11003
+ debugLogger18.error(`Error closing LSP server ${name}:`, error);
11132
11004
  }
11133
11005
  }
11134
11006
  if (handle.process && handle.process.exitCode === null) {
11135
11007
  try {
11136
11008
  handle.process.kill();
11137
11009
  } catch (error) {
11138
- debugLogger20.warn(`Error killing LSP server ${name} process:`, error);
11010
+ debugLogger18.warn(`Error killing LSP server ${name} process:`, error);
11139
11011
  }
11140
11012
  }
11141
11013
  }
@@ -11181,7 +11053,7 @@ var LspServerManager = class {
11181
11053
  }
11182
11054
  handle.processExitedUnexpectedly = true;
11183
11055
  if (!handle.config.restartOnCrash) {
11184
- debugLogger20.warn(
11056
+ debugLogger18.warn(
11185
11057
  `LSP server ${name} exited but restartOnCrash is disabled`
11186
11058
  );
11187
11059
  handle.status = "FAILED";
@@ -11190,7 +11062,7 @@ var LspServerManager = class {
11190
11062
  }
11191
11063
  const maxRestarts = handle.config.maxRestarts ?? DEFAULT_LSP_MAX_RESTARTS;
11192
11064
  if (maxRestarts <= 0) {
11193
- debugLogger20.warn(
11065
+ debugLogger18.warn(
11194
11066
  `LSP server ${name} exited but maxRestarts is ${maxRestarts}`
11195
11067
  );
11196
11068
  handle.status = "FAILED";
@@ -11199,7 +11071,7 @@ var LspServerManager = class {
11199
11071
  }
11200
11072
  const attempts = handle.restartAttempts ?? 0;
11201
11073
  if (attempts >= maxRestarts) {
11202
- debugLogger20.warn(
11074
+ debugLogger18.warn(
11203
11075
  `LSP server ${name} reached max restart attempts (${maxRestarts}), stopping restarts`
11204
11076
  );
11205
11077
  handle.status = "FAILED";
@@ -11207,7 +11079,7 @@ var LspServerManager = class {
11207
11079
  return;
11208
11080
  }
11209
11081
  handle.restartAttempts = attempts + 1;
11210
- debugLogger20.warn(
11082
+ debugLogger18.warn(
11211
11083
  `LSP server ${name} exited (code ${code ?? "unknown"}), restarting (${handle.restartAttempts}/${maxRestarts})`
11212
11084
  );
11213
11085
  this.enqueueCrashRestart(name, handle);
@@ -11255,7 +11127,7 @@ var LspServerManager = class {
11255
11127
  const next = this.reconcileQueue.then(restart, restart);
11256
11128
  this.reconcileQueue = next.catch(() => void 0);
11257
11129
  void next.catch((error) => {
11258
- debugLogger20.warn(`LSP server ${name} crash restart failed:`, error);
11130
+ debugLogger18.warn(`LSP server ${name} crash restart failed:`, error);
11259
11131
  });
11260
11132
  }
11261
11133
  resetHandle(handle) {
@@ -11263,14 +11135,14 @@ var LspServerManager = class {
11263
11135
  try {
11264
11136
  handle.connection.end();
11265
11137
  } catch (error) {
11266
- debugLogger20.warn("Error closing LSP connection during reset:", error);
11138
+ debugLogger18.warn("Error closing LSP connection during reset:", error);
11267
11139
  }
11268
11140
  }
11269
11141
  if (handle.process && handle.process.exitCode === null) {
11270
11142
  try {
11271
11143
  handle.process.kill();
11272
11144
  } catch (error) {
11273
- debugLogger20.warn("Error killing LSP process during reset:", error);
11145
+ debugLogger18.warn("Error killing LSP process during reset:", error);
11274
11146
  }
11275
11147
  }
11276
11148
  handle.connection = void 0;
@@ -11289,7 +11161,7 @@ var LspServerManager = class {
11289
11161
  const filteredEnv = {};
11290
11162
  for (const [key, value] of Object.entries(env2)) {
11291
11163
  if (SECURITY_SENSITIVE_ENV_KEYS.has(key.toUpperCase())) {
11292
- debugLogger20.warn(
11164
+ debugLogger18.warn(
11293
11165
  `Ignoring security-sensitive LSP server env override: ${key}`
11294
11166
  );
11295
11167
  continue;
@@ -11315,7 +11187,7 @@ var LspServerManager = class {
11315
11187
  for (const [key, value] of Object.entries(env2)) {
11316
11188
  const normalizedKey = key.toUpperCase();
11317
11189
  if (normalizedKey === "PATH" || SECURITY_SENSITIVE_ENV_KEYS.has(normalizedKey)) {
11318
- debugLogger20.warn(
11190
+ debugLogger18.warn(
11319
11191
  `Ignoring security-sensitive LSP command probe env override: ${key}`
11320
11192
  );
11321
11193
  continue;
@@ -11564,7 +11436,7 @@ var LspServerManager = class {
11564
11436
  try {
11565
11437
  process3.kill();
11566
11438
  } catch (error) {
11567
- debugLogger20.warn(
11439
+ debugLogger18.warn(
11568
11440
  "Error killing aborted LSP socket process:",
11569
11441
  error
11570
11442
  );
@@ -11738,12 +11610,12 @@ var LspServerManager = class {
11738
11610
  return true;
11739
11611
  }
11740
11612
  if (this.requireTrustedWorkspace || serverConfig.trustRequired) {
11741
- debugLogger20.warn(
11613
+ debugLogger18.warn(
11742
11614
  `Workspace not trusted, skipping LSP server ${serverName} (${serverConfig.command ?? serverConfig.transport})`
11743
11615
  );
11744
11616
  return false;
11745
11617
  }
11746
- debugLogger20.info(
11618
+ debugLogger18.info(
11747
11619
  `Untrusted workspace, but LSP server ${serverName} has trustRequired=false, attempting cautious startup`
11748
11620
  );
11749
11621
  return true;
@@ -11989,7 +11861,7 @@ import { fileURLToPath, pathToFileURL as pathToFileURL3 } from "url";
11989
11861
  import * as fs10 from "node:fs";
11990
11862
  import { createHash as createHash5, createHmac, randomBytes as randomBytes4 } from "node:crypto";
11991
11863
  import { promises as fsp } from "node:fs";
11992
- var debugLogger21 = createDebugLogger("LSP");
11864
+ var debugLogger19 = createDebugLogger("LSP");
11993
11865
  var LANGUAGE_ID_TO_EXTENSIONS = {
11994
11866
  typescript: ["ts", "tsx"],
11995
11867
  typescriptreact: ["tsx"],
@@ -12065,7 +11937,7 @@ var NativeLspService = class {
12065
11937
  const workspaceTrusted = this.config.isTrustedFolder();
12066
11938
  this.serverManager.clearServerHandles();
12067
11939
  if (this.requireTrustedWorkspace && !workspaceTrusted) {
12068
- debugLogger21.warn(
11940
+ debugLogger19.warn(
12069
11941
  "Workspace is not trusted, skipping LSP server discovery"
12070
11942
  );
12071
11943
  return;
@@ -12083,7 +11955,7 @@ var NativeLspService = class {
12083
11955
  serverConfigs,
12084
11956
  workspaceTrusted
12085
11957
  );
12086
- debugLogger21.info(
11958
+ debugLogger19.info(
12087
11959
  `Discovered ${admitted.length} LSP server config(s): ${formatServerNames2(
12088
11960
  admitted.map((config) => config.name)
12089
11961
  )}, skipped=${formatServerNames2(skipped.map((server) => server.name))}`
@@ -12118,7 +11990,7 @@ var NativeLspService = class {
12118
11990
  async doReinitialize(signal) {
12119
11991
  this.throwIfReinitializeAborted(signal);
12120
11992
  const workspaceTrusted = this.config.isTrustedFolder();
12121
- debugLogger21.info(
11993
+ debugLogger19.info(
12122
11994
  `Reinitializing LSP servers: workspaceRoot=${this.workspaceRoot}, trusted=${workspaceTrusted}`
12123
11995
  );
12124
11996
  if (this.requireTrustedWorkspace && !workspaceTrusted) {
@@ -12137,7 +12009,7 @@ var NativeLspService = class {
12137
12009
  },
12138
12010
  skipped: []
12139
12011
  };
12140
- debugLogger21.info(
12012
+ debugLogger19.info(
12141
12013
  `LSP reinitialize result: added=<none>, removed=${formatServerNames2(
12142
12014
  removed
12143
12015
  )}, restarted=<none>, unchanged=<none>, failed=<none>, skipped=<none>`
@@ -12179,7 +12051,7 @@ var NativeLspService = class {
12179
12051
  signal
12180
12052
  );
12181
12053
  this.throwIfReinitializeAborted(signal);
12182
- debugLogger21.info(
12054
+ debugLogger19.info(
12183
12055
  `LSP reinitialize result: added=${formatServerNames2(
12184
12056
  reconcile.added
12185
12057
  )}, removed=${formatServerNames2(
@@ -12199,7 +12071,7 @@ var NativeLspService = class {
12199
12071
  const skipped = [];
12200
12072
  for (const config of configs) {
12201
12073
  if (!workspaceTrusted && config.trustRequired) {
12202
- debugLogger21.warn(
12074
+ debugLogger19.warn(
12203
12075
  `LSP server ${config.name} requires trusted workspace, skipping`
12204
12076
  );
12205
12077
  skipped.push({ name: config.name, reason: "server_trust_required" });
@@ -12268,7 +12140,7 @@ var NativeLspService = class {
12268
12140
  try {
12269
12141
  openedAny = this.synchronizeDocument(name, handle, uri).sent || openedAny;
12270
12142
  } catch (error) {
12271
- debugLogger21.warn(
12143
+ debugLogger19.warn(
12272
12144
  `Failed to replay document ${uri} for LSP server ${name}:`,
12273
12145
  error
12274
12146
  );
@@ -12554,7 +12426,7 @@ var NativeLspService = class {
12554
12426
  uri
12555
12427
  );
12556
12428
  } catch (error) {
12557
- debugLogger21.warn(
12429
+ debugLogger19.warn(
12558
12430
  `LSP workspace symbol warmup skipped for ${uri}:`,
12559
12431
  error
12560
12432
  );
@@ -12740,7 +12612,7 @@ var NativeLspService = class {
12740
12612
  }
12741
12613
  }
12742
12614
  } catch (error) {
12743
- debugLogger21.warn(
12615
+ debugLogger19.warn(
12744
12616
  `LSP workspace/symbol failed for ${serverName}:`,
12745
12617
  error
12746
12618
  );
@@ -12791,7 +12663,7 @@ var NativeLspService = class {
12791
12663
  return definitions.slice(0, limit);
12792
12664
  }
12793
12665
  } catch (error) {
12794
- debugLogger21.warn(
12666
+ debugLogger19.warn(
12795
12667
  `LSP textDocument/definition failed for ${name}:`,
12796
12668
  error
12797
12669
  );
@@ -12845,7 +12717,7 @@ var NativeLspService = class {
12845
12717
  return refs.slice(0, limit);
12846
12718
  }
12847
12719
  } catch (error) {
12848
- debugLogger21.warn(
12720
+ debugLogger19.warn(
12849
12721
  `LSP textDocument/references failed for ${name}:`,
12850
12722
  error
12851
12723
  );
@@ -12886,7 +12758,7 @@ var NativeLspService = class {
12886
12758
  return normalized2;
12887
12759
  }
12888
12760
  } catch (error) {
12889
- debugLogger21.warn(`LSP textDocument/hover failed for ${name}:`, error);
12761
+ debugLogger19.warn(`LSP textDocument/hover failed for ${name}:`, error);
12890
12762
  }
12891
12763
  }
12892
12764
  return null;
@@ -12950,7 +12822,7 @@ var NativeLspService = class {
12950
12822
  return symbols.slice(0, limit);
12951
12823
  }
12952
12824
  } catch (error) {
12953
- debugLogger21.warn(
12825
+ debugLogger19.warn(
12954
12826
  `LSP textDocument/documentSymbol failed for ${name}:`,
12955
12827
  error
12956
12828
  );
@@ -13004,7 +12876,7 @@ var NativeLspService = class {
13004
12876
  return implementations.slice(0, limit);
13005
12877
  }
13006
12878
  } catch (error) {
13007
- debugLogger21.warn(
12879
+ debugLogger19.warn(
13008
12880
  `LSP textDocument/implementation failed for ${name}:`,
13009
12881
  error
13010
12882
  );
@@ -13186,7 +13058,7 @@ var NativeLspService = class {
13186
13058
  } catch (error) {
13187
13059
  revision?.checkpoint();
13188
13060
  if (error instanceof StaleCallHierarchyItemError) throw error;
13189
- debugLogger21.warn(
13061
+ debugLogger19.warn(
13190
13062
  `LSP textDocument/prepareCallHierarchy failed for ${name}:`,
13191
13063
  error
13192
13064
  );
@@ -13241,7 +13113,7 @@ var NativeLspService = class {
13241
13113
  revision.checkpoint();
13242
13114
  this.validateCallHierarchyItem(item, revision);
13243
13115
  if (error instanceof StaleCallHierarchyItemError) throw error;
13244
- debugLogger21.warn(
13116
+ debugLogger19.warn(
13245
13117
  `LSP callHierarchy/incomingCalls failed for ${name}:`,
13246
13118
  error
13247
13119
  );
@@ -13296,7 +13168,7 @@ var NativeLspService = class {
13296
13168
  revision.checkpoint();
13297
13169
  this.validateCallHierarchyItem(item, revision);
13298
13170
  if (error instanceof StaleCallHierarchyItemError) throw error;
13299
- debugLogger21.warn(
13171
+ debugLogger19.warn(
13300
13172
  `LSP callHierarchy/outgoingCalls failed for ${name}:`,
13301
13173
  error
13302
13174
  );
@@ -13336,7 +13208,7 @@ var NativeLspService = class {
13336
13208
  }
13337
13209
  }
13338
13210
  } catch (error) {
13339
- debugLogger21.warn(
13211
+ debugLogger19.warn(
13340
13212
  `LSP textDocument/diagnostic failed for ${name}:`,
13341
13213
  error
13342
13214
  );
@@ -13414,7 +13286,7 @@ var NativeLspService = class {
13414
13286
  }
13415
13287
  }
13416
13288
  } catch (error) {
13417
- debugLogger21.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
13289
+ debugLogger19.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
13418
13290
  }
13419
13291
  if (results.length >= limit) {
13420
13292
  break;
@@ -13464,7 +13336,7 @@ var NativeLspService = class {
13464
13336
  return actions.slice(0, limit);
13465
13337
  }
13466
13338
  } catch (error) {
13467
- debugLogger21.warn(
13339
+ debugLogger19.warn(
13468
13340
  `LSP textDocument/codeAction failed for ${name}:`,
13469
13341
  error
13470
13342
  );
@@ -13492,7 +13364,7 @@ var NativeLspService = class {
13492
13364
  }
13493
13365
  return true;
13494
13366
  } catch (error) {
13495
- debugLogger21.error("Failed to apply workspace edit:", error);
13367
+ debugLogger19.error("Failed to apply workspace edit:", error);
13496
13368
  return false;
13497
13369
  }
13498
13370
  }
@@ -13752,7 +13624,7 @@ __name(createFollowupController, "createFollowupController");
13752
13624
 
13753
13625
  // packages/core/src/followup/suggestionGenerator.ts
13754
13626
  init_esbuild_shims();
13755
- var debugLogger22 = createDebugLogger("FOLLOWUP");
13627
+ var debugLogger20 = createDebugLogger("FOLLOWUP");
13756
13628
  var SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might naturally type next.]
13757
13629
 
13758
13630
  FIRST: Read the LAST FEW LINES of the assistant's most recent message -- that's where
@@ -13814,7 +13686,7 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
13814
13686
  const cacheSafe = options?.enableCacheSharing ? getCacheSafeParams(sessionId) : null;
13815
13687
  const modelOverride = options?.model;
13816
13688
  const cacheSharingState = cacheSafe ? "true" : cacheSafeSessionId ? "session_mismatch" : "false";
13817
- debugLogger22.debug(
13689
+ debugLogger20.debug(
13818
13690
  `Generating suggestion: cacheSharing=${cacheSharingState}, model=${modelOverride || "(default)"}`
13819
13691
  );
13820
13692
  const raw = cacheSafe ? await generateViaForkedQuery(
@@ -13830,23 +13702,23 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
13830
13702
  );
13831
13703
  const suggestion = typeof raw === "string" ? raw.trim() : null;
13832
13704
  if (!suggestion) {
13833
- debugLogger22.debug("Suggestion generation returned empty result");
13705
+ debugLogger20.debug("Suggestion generation returned empty result");
13834
13706
  return { suggestion: null, filterReason: "empty" };
13835
13707
  }
13836
13708
  const filterReason = getFilterReason(suggestion);
13837
13709
  if (filterReason) {
13838
- debugLogger22.debug(
13710
+ debugLogger20.debug(
13839
13711
  `Suggestion filtered: reason=${filterReason}, text="${suggestion}"`
13840
13712
  );
13841
13713
  return { suggestion: null, filterReason };
13842
13714
  }
13843
- debugLogger22.debug(`Suggestion accepted: "${suggestion}"`);
13715
+ debugLogger20.debug(`Suggestion accepted: "${suggestion}"`);
13844
13716
  return { suggestion };
13845
13717
  } catch (error) {
13846
13718
  if (abortSignal.aborted) {
13847
13719
  return { suggestion: null };
13848
13720
  }
13849
- debugLogger22.warn("Suggestion generation failed:", error);
13721
+ debugLogger20.warn("Suggestion generation failed:", error);
13850
13722
  return { suggestion: null, filterReason: "error" };
13851
13723
  }
13852
13724
  }
@@ -14185,7 +14057,7 @@ __name(rewritePathArgs, "rewritePathArgs");
14185
14057
 
14186
14058
  // packages/core/src/followup/speculation.ts
14187
14059
  init_esbuild_shims();
14188
- var debugLogger23 = createDebugLogger("SPECULATION");
14060
+ var debugLogger21 = createDebugLogger("SPECULATION");
14189
14061
  var MAX_SPECULATION_TURNS = 20;
14190
14062
  var MAX_SPECULATION_MESSAGES = 100;
14191
14063
  function observeSpeculationProducer(params) {
@@ -14433,7 +14305,7 @@ async function runSpeculativeLoop(config, state, cacheSafe, modelOverride) {
14433
14305
  break;
14434
14306
  }
14435
14307
  if (!guardDecision.allowed) {
14436
- debugLogger23.debug(
14308
+ debugLogger21.debug(
14437
14309
  `Speculative guard denial: ${guardDecision.reason}`
14438
14310
  );
14439
14311
  hitBoundary = true;
@@ -14680,7 +14552,7 @@ var import_picomatch = __toESM(require_picomatch(), 1);
14680
14552
  import fs11 from "node:fs";
14681
14553
  import path14 from "node:path";
14682
14554
  var hasFileExtension = (0, import_picomatch.default)("**/*[*.]*");
14683
- var debugLogger24 = createDebugLogger("FILE_SEARCH_IGNORE");
14555
+ var debugLogger22 = createDebugLogger("FILE_SEARCH_IGNORE");
14684
14556
  function loadIgnoreRules(options) {
14685
14557
  const ignorer = new Ignore();
14686
14558
  if (options.useGitignore) {
@@ -14719,7 +14591,7 @@ function readIgnoreFile(filePath) {
14719
14591
  } catch (_error) {
14720
14592
  const error = _error;
14721
14593
  if (error.code !== "ENOENT") {
14722
- debugLogger24.warn(`Failed to read ${filePath}: ${error.message}`);
14594
+ debugLogger22.warn(`Failed to read ${filePath}: ${error.message}`);
14723
14595
  }
14724
14596
  return void 0;
14725
14597
  }
@@ -18187,8 +18059,6 @@ export {
18187
18059
  executeToolCall,
18188
18060
  loadOutputStyleCatalog,
18189
18061
  findOutputStyle,
18190
- TURN_INTERRUPTION_HISTORY_TAIL_COUNT,
18191
- detectTurnInterruption,
18192
18062
  buildSessionRecoveryPlan,
18193
18063
  buildSessionRecoveryPlanFromApiHistory,
18194
18064
  McpTransportPool,
@@ -18269,8 +18139,6 @@ export {
18269
18139
  BTW_MAX_INPUT_LENGTH,
18270
18140
  buildBtwPrompt,
18271
18141
  buildBtwCacheSafeParams,
18272
- getStopHookContinuationReason,
18273
- abortGoalForStopHookCap,
18274
18142
  projectGoalStateToLegacy,
18275
18143
  isGoalCheckpointBookkeepingRecord,
18276
18144
  renderGoalContinuationTurn,