@qwen-code/qwen-code 0.23.1-preview.1 → 0.23.1

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 (351) hide show
  1. package/bundled/computer-use/SKILL.md +189 -116
  2. package/bundled/goal-draft/SKILL.md +23 -13
  3. package/bundled/qc-helper/docs/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +47 -1
  5. package/bundled/qc-helper/docs/configuration/settings.md +57 -7
  6. package/bundled/qc-helper/docs/conversations-recovery.md +102 -0
  7. package/bundled/qc-helper/docs/features/channels/dingtalk.md +26 -0
  8. package/bundled/qc-helper/docs/features/channels/overview.md +1 -1
  9. package/bundled/qc-helper/docs/features/commands.md +71 -6
  10. package/bundled/qc-helper/docs/features/computer-use.md +9 -7
  11. package/bundled/qc-helper/docs/features/followup-suggestions.md +2 -2
  12. package/bundled/qc-helper/docs/features/goals.md +15 -3
  13. package/bundled/qc-helper/docs/features/skills.md +40 -0
  14. package/bundled/qc-helper/docs/qwen-serve.md +19 -1
  15. package/chunks/{MaxSizedBox-5ARLO5PR.js → MaxSizedBox-UDO6Y7RB.js} +35 -36
  16. package/chunks/{StandaloneSessionPicker-T6B322CB.js → StandaloneSessionPicker-D4CUOO4H.js} +55 -56
  17. package/chunks/{acp-startup-profiler-6ULXXQMS.js → acp-startup-profiler-KEU6VAYR.js} +2 -2
  18. package/chunks/{acpAgent-WTDEY5KD.js → acpAgent-KWLJFADK.js} +210 -131
  19. package/chunks/{agent-NXPUXEVZ.js → agent-GSUPGEOL.js} +24 -25
  20. package/chunks/{agent-headless-QQZTWOKO.js → agent-headless-HNYCQUJB.js} +24 -25
  21. package/chunks/{anthropicContentGenerator-6XDHXIII.js → anthropicContentGenerator-I7LQZH26.js} +30 -7
  22. package/chunks/{artifact-tool-DFVVJXL2.js → artifact-tool-P52OKKEF.js} +1 -1
  23. package/chunks/{askUserQuestion-GF7VQ44M.js → askUserQuestion-I5W5S3D6.js} +2 -2
  24. package/chunks/{bridge-OHY5OGOZ.js → bridge-B7CV6RVI.js} +40 -41
  25. package/chunks/{channel-management-service-ZDDG3G5S.js → channel-management-service-TRTLQTSV.js} +4 -4
  26. package/chunks/{channel-settings-store-7BJAS2SU.js → channel-settings-store-FW45IRUP.js} +46 -47
  27. package/chunks/{channel-worker-group-2ISMRENV.js → channel-worker-group-PIYPVCTF.js} +6 -6
  28. package/chunks/{channel-worker-manager-VSRPVPRH.js → channel-worker-manager-FQHEDTD2.js} +6 -6
  29. package/chunks/{channel-worker-supervisor-SRJBK72Z.js → channel-worker-supervisor-XJPZZ3VK.js} +3 -3
  30. package/chunks/{chunk-2WGJG2KW.js → chunk-25CBAK3H.js} +4 -4
  31. package/chunks/{chunk-XUSOYE2I.js → chunk-27LTEY6D.js} +1 -1
  32. package/chunks/{chunk-WTW36TJ3.js → chunk-2EKVPSIJ.js} +1 -1
  33. package/chunks/{chunk-NAKALAL4.js → chunk-2TMJRF46.js} +116 -15
  34. package/chunks/{chunk-E4L5BM2B.js → chunk-2YS3NU4A.js} +4 -4
  35. package/chunks/chunk-2Z3T52OC.js +82 -0
  36. package/chunks/{chunk-ER273QE6.js → chunk-2ZFO5JD7.js} +21 -4
  37. package/chunks/{chunk-WXC6OAWD.js → chunk-3BTHHXXE.js} +1 -1
  38. package/chunks/{chunk-GXZHYPHZ.js → chunk-3LPJ776W.js} +5 -2
  39. package/chunks/{chunk-XY3USGFE.js → chunk-3VDLQUR2.js} +1 -1
  40. package/chunks/{chunk-LK7S2D6V.js → chunk-3VWPPK5Q.js} +58 -4
  41. package/chunks/{chunk-IKLFS6SC.js → chunk-3YQMUBTS.js} +3 -3
  42. package/chunks/{chunk-P4RUUG64.js → chunk-45ROPFQY.js} +1 -1
  43. package/chunks/{chunk-W4LL5RZO.js → chunk-4ALNJDHL.js} +52 -13
  44. package/chunks/{chunk-D6PIMKY3.js → chunk-4VY3ITHR.js} +4 -4
  45. package/chunks/{chunk-H3UDNQLO.js → chunk-5CVY5Q2P.js} +3 -3
  46. package/chunks/{chunk-6UIACMGH.js → chunk-5DQ4YTIZ.js} +1 -1
  47. package/chunks/{chunk-P6LATTDG.js → chunk-5IL2BZHW.js} +3 -3
  48. package/chunks/{chunk-537SQ2AI.js → chunk-5WC2ECUK.js} +104 -16
  49. package/chunks/{chunk-HFTB354P.js → chunk-5Z4FCEPY.js} +60 -6
  50. package/chunks/{chunk-3K65MUKD.js → chunk-65I7S4Z3.js} +2 -1
  51. package/chunks/{chunk-AQ5NAGWI.js → chunk-66JBCTJF.js} +8 -7
  52. package/chunks/{chunk-54TF2ZIQ.js → chunk-6JXHO7LG.js} +3 -3
  53. package/chunks/{chunk-YCDL2SAS.js → chunk-6QILGINT.js} +2 -2
  54. package/chunks/{chunk-P5LDR7FI.js → chunk-6QV7Z74P.js} +3 -3
  55. package/chunks/{chunk-4HC4DYKN.js → chunk-6RZX2HIH.js} +1 -1
  56. package/chunks/{chunk-O45WBTNS.js → chunk-6SADVYQQ.js} +3 -3
  57. package/chunks/{chunk-KE3Q4JMY.js → chunk-6TPVIESH.js} +5 -7
  58. package/chunks/{chunk-2LD5U7Q3.js → chunk-6YEOCHSE.js} +29 -1
  59. package/chunks/{chunk-QWZOOIR3.js → chunk-75LBC7SV.js} +69 -12
  60. package/chunks/{chunk-7BZS4ZDV.js → chunk-7SL55L5H.js} +25 -18
  61. package/chunks/{chunk-O2GG7H4C.js → chunk-ARYNBBBM.js} +3 -3
  62. package/chunks/{chunk-CZACBHAW.js → chunk-B3EL44K3.js} +5 -5
  63. package/chunks/{chunk-VY6UVU7G.js → chunk-CABDNUJ4.js} +2 -2
  64. package/chunks/{chunk-RVNS7NWN.js → chunk-CALNF3Z3.js} +1 -1
  65. package/chunks/{chunk-MWHY26G3.js → chunk-CHVU543W.js} +1 -1
  66. package/chunks/{chunk-GZWW2QWR.js → chunk-CIKL2DQP.js} +2 -2
  67. package/chunks/{chunk-R355CUNQ.js → chunk-CLKE4IY3.js} +1 -77
  68. package/chunks/{chunk-MUZCSTOO.js → chunk-CRZBDVP2.js} +5 -4
  69. package/chunks/{chunk-SFMCYMVF.js → chunk-D6AQNMUA.js} +4 -4
  70. package/chunks/{chunk-D4CU6DKR.js → chunk-DO5SMV52.js} +10 -8
  71. package/chunks/{chunk-ZAZ3NFL6.js → chunk-DXQ6Z7AH.js} +315 -63
  72. package/chunks/{chunk-IXSGOSEG.js → chunk-DZ6D4B3K.js} +28 -25
  73. package/chunks/{chunk-GMNLYQOS.js → chunk-E6TI726I.js} +1 -1
  74. package/chunks/{chunk-JBTZUFR4.js → chunk-E7XSUYCZ.js} +6 -6
  75. package/chunks/{chunk-AHBLRVD5.js → chunk-EEKU6COG.js} +4 -4
  76. package/chunks/{chunk-47BZVBTE.js → chunk-EHTKOO6W.js} +4 -4
  77. package/chunks/{chunk-HJ34U5J4.js → chunk-ENZDGHGJ.js} +4 -4
  78. package/chunks/{chunk-IFD3BTEA.js → chunk-EOET4H7C.js} +3 -3
  79. package/chunks/{chunk-ZTAVGFKA.js → chunk-ERXNTINK.js} +1 -1
  80. package/chunks/{chunk-F47DITLZ.js → chunk-FAWTMDX7.js} +14 -0
  81. package/chunks/{chunk-KPXRFTT7.js → chunk-FETY36NQ.js} +1 -1
  82. package/chunks/{chunk-5JLQWQK6.js → chunk-FV4DM2M4.js} +2 -2
  83. package/chunks/{chunk-4F2QRVW6.js → chunk-FW4E4QPG.js} +1 -1
  84. package/chunks/{chunk-KJJPJYHI.js → chunk-FWRRUITH.js} +8 -8
  85. package/chunks/{chunk-4VUVBN3Y.js → chunk-G6UUOCUT.js} +87 -0
  86. package/chunks/{chunk-4JAGXZR3.js → chunk-GM44O6F7.js} +1 -1
  87. package/chunks/{chunk-4MCY33Y2.js → chunk-GNY7B3CA.js} +1 -1
  88. package/chunks/{chunk-VEFRT7NX.js → chunk-H3Q3RSKZ.js} +1 -1
  89. package/chunks/{chunk-43NOB5NM.js → chunk-HIXUUCGY.js} +188 -13
  90. package/chunks/{chunk-EJNYBDYC.js → chunk-HNLMYDQE.js} +1 -1
  91. package/chunks/{chunk-JOPC3FND.js → chunk-HUX2DOTF.js} +5 -5
  92. package/chunks/{chunk-GCFZ2LAX.js → chunk-HZ2HUXX7.js} +2 -2
  93. package/chunks/{chunk-CWNC7M73.js → chunk-IKG2YVRZ.js} +2 -2
  94. package/chunks/{chunk-L4R7BCVV.js → chunk-J3TJH52D.js} +1 -1
  95. package/chunks/{chunk-QMFOYPGV.js → chunk-J3VZF2AL.js} +2 -2
  96. package/chunks/{chunk-ZJ2LM2SI.js → chunk-JGDRB4FP.js} +104 -33
  97. package/chunks/{chunk-LMJQSPWB.js → chunk-KA5HR3G2.js} +1 -1
  98. package/chunks/{chunk-G34YLYCS.js → chunk-L7V52QEZ.js} +10 -10
  99. package/chunks/{chunk-GVVCLL2P.js → chunk-LNCNUMJ5.js} +451 -396
  100. package/chunks/{chunk-RDKXZ2LS.js → chunk-LYT2OU7D.js} +1 -1
  101. package/chunks/{chunk-SAZS4IWW.js → chunk-LZGFVUWZ.js} +3 -3
  102. package/chunks/{chunk-32YDNYXP.js → chunk-M73KHGNR.js} +13 -66
  103. package/chunks/{chunk-ADJD4LZF.js → chunk-MA5OUNN6.js} +1 -1
  104. package/chunks/{chunk-2RYWGYB3.js → chunk-MFYH2VXV.js} +3 -3
  105. package/chunks/{chunk-RPBMP6BN.js → chunk-MWIO7MF6.js} +3 -0
  106. package/chunks/{chunk-OECNP26L.js → chunk-N6S3NUYJ.js} +1 -1
  107. package/chunks/{chunk-5MTARK4Y.js → chunk-N7YQEKGX.js} +6 -6
  108. package/chunks/{chunk-XOVVCGZX.js → chunk-NB3NDQQK.js} +1 -1
  109. package/chunks/chunk-NOO4QFXM.js +171 -0
  110. package/chunks/{chunk-NGX4NUNP.js → chunk-O2FEO2CB.js} +131 -6
  111. package/chunks/{chunk-XHGGYCTA.js → chunk-O2JBJQCF.js} +1 -1
  112. package/chunks/{chunk-LPBQODMR.js → chunk-OESZTXTG.js} +4 -4
  113. package/chunks/{chunk-UKADFFL2.js → chunk-OFVAS4AR.js} +1 -1
  114. package/chunks/{chunk-TDP7UULF.js → chunk-OPMKGOLD.js} +1 -1
  115. package/chunks/{chunk-LDS57224.js → chunk-OWCFKIFQ.js} +1 -1
  116. package/chunks/{chunk-I72PHOKL.js → chunk-PDUMGZ2P.js} +1524 -1382
  117. package/chunks/{chunk-JRYL3T2O.js → chunk-PQSCGZT2.js} +1 -1
  118. package/chunks/{chunk-WEXA2DNG.js → chunk-PSPAM24S.js} +14 -0
  119. package/chunks/{chunk-UKKYOIVT.js → chunk-QAZ2MGYT.js} +2 -2
  120. package/chunks/{chunk-J3O5I5ZD.js → chunk-QK4K76T6.js} +3 -3
  121. package/chunks/{chunk-NUQFUXOG.js → chunk-QTNCGZHQ.js} +2 -0
  122. package/chunks/{chunk-5YY5MZT6.js → chunk-QZOXVQPK.js} +1 -1
  123. package/chunks/{chunk-QJVZLILI.js → chunk-R7OO56VZ.js} +1 -1
  124. package/chunks/{chunk-IQN2CCIE.js → chunk-RNYENHN5.js} +398 -55
  125. package/chunks/{chunk-64MQTIX7.js → chunk-RPFJJ33Z.js} +2 -2
  126. package/chunks/{chunk-4VZCORNT.js → chunk-RXT4QBDX.js} +1 -1
  127. package/chunks/{chunk-SN5FV4FY.js → chunk-S6QVI3MV.js} +3 -3
  128. package/chunks/{chunk-NXWYCSPL.js → chunk-SOA4HKRJ.js} +1 -1
  129. package/chunks/{chunk-JLWFGYXU.js → chunk-T2IHCZLS.js} +2 -2
  130. package/chunks/{chunk-DNPHKA72.js → chunk-TGC4264Q.js} +6 -6
  131. package/chunks/{chunk-PZV2FASB.js → chunk-TRWQQBVH.js} +1 -1
  132. package/chunks/{chunk-Y3ZKI4RQ.js → chunk-TWAMIEQ2.js} +85 -22
  133. package/chunks/{chunk-KK2GZGBK.js → chunk-TWWS7XUW.js} +14 -11
  134. package/chunks/{chunk-4IQKBLTQ.js → chunk-UHUT4IDM.js} +18 -9
  135. package/chunks/{chunk-BKNY7PDI.js → chunk-USN6VNTO.js} +1 -1
  136. package/chunks/{chunk-TMWB67LS.js → chunk-UXDVUFKU.js} +3 -3
  137. package/chunks/{chunk-HY3DXYZK.js → chunk-UYDQYDW2.js} +1 -1
  138. package/chunks/{chunk-3K456UJF.js → chunk-VF6D6EGV.js} +12 -4
  139. package/chunks/{chunk-PZUOHCWI.js → chunk-WAASYFPK.js} +2 -2
  140. package/chunks/{chunk-OHOO527W.js → chunk-WG7BL3FY.js} +52 -2
  141. package/chunks/{chunk-JPEAQJNS.js → chunk-WJDXKQIO.js} +1 -1
  142. package/chunks/{chunk-MNEYUNOE.js → chunk-WNISCNTA.js} +40 -2
  143. package/chunks/{chunk-Z6WZPXQH.js → chunk-WQMUGQ6G.js} +2 -2
  144. package/chunks/{chunk-N7VURC4O.js → chunk-WXFCI3O5.js} +2 -2
  145. package/chunks/{chunk-VU7O7CGQ.js → chunk-XDNFODER.js} +1 -1
  146. package/chunks/{chunk-N7EYO2E7.js → chunk-XQ4RDO5B.js} +1 -1
  147. package/chunks/{chunk-VDXYYVCD.js → chunk-XVTCSVBK.js} +579 -57
  148. package/chunks/{chunk-PTFFWTTO.js → chunk-XZ3Z43XL.js} +3 -3
  149. package/chunks/{chunk-QSC5YOEC.js → chunk-YAC7H4K3.js} +2 -2
  150. package/chunks/{chunk-43JNQAHO.js → chunk-YCEKI7QX.js} +51 -10
  151. package/chunks/{chunk-7IKXTGZT.js → chunk-YI2YCNSP.js} +1 -1
  152. package/chunks/{chunk-VUSSAGKI.js → chunk-YZTGGCEE.js} +10 -2
  153. package/chunks/{chunk-WR3SH3EY.js → chunk-ZNO5BUAD.js} +149 -66
  154. package/chunks/{chunk-URSCX7S7.js → chunk-ZPL2TZNA.js} +353 -11
  155. package/chunks/{chunk-UEZOXZNI.js → chunk-ZU2T5JIS.js} +804 -371
  156. package/chunks/{config-utils-QXDOTXEQ.js → config-utils-KTDSQ4MU.js} +39 -40
  157. package/chunks/{contextCommand-RN4KARWC.js → contextCommand-UQ3KRYGK.js} +37 -38
  158. package/chunks/{core-runtime-NAZCOKHB.js → core-runtime-JR34JAFH.js} +35 -36
  159. package/chunks/{create-sub-session-BCSM4WKB.js → create-sub-session-RGPJOI4S.js} +45 -40
  160. package/chunks/{create-sub-session-BQ3SE4TX.js → create-sub-session-TGIX63YU.js} +2 -2
  161. package/chunks/{cron-create-D6HQ7I7I.js → cron-create-GTPVMJCF.js} +1 -1
  162. package/chunks/{cron-delete-KK3D2SQV.js → cron-delete-ZBK27Z4K.js} +1 -1
  163. package/chunks/{cron-list-VBF3IZMF.js → cron-list-KTFKFDKC.js} +1 -1
  164. package/chunks/{daemon-LCUELM6E.js → daemon-UI6SQSBV.js} +1 -1
  165. package/chunks/{daemon-git-worktree-guard-3K5CAU36.js → daemon-git-worktree-guard-H3OA26KQ.js} +35 -36
  166. package/chunks/{daemon-status-provider-4X3ZZQTZ.js → daemon-status-provider-6WZLKSZU.js} +45 -46
  167. package/chunks/{daemon-trust-policy-R45CFUJA.js → daemon-trust-policy-3EDP2BYD.js} +42 -43
  168. package/chunks/{daemon-trust-policy-monitor-DSSFCO3K.js → daemon-trust-policy-monitor-CRHZPK52.js} +42 -43
  169. package/chunks/{deferred-core-runtime-UO2M6WYI.js → deferred-core-runtime-LO5NTQQ4.js} +35 -36
  170. package/chunks/{discovery-TUM3ZQ6U.js → discovery-XP4RMDUM.js} +4 -2
  171. package/chunks/{display-image-EVVTBVYE.js → display-image-CTNHJRZC.js} +4 -4
  172. package/chunks/{dist-SIHF5MU2.js → dist-24TCWK5H.js} +1 -1
  173. package/chunks/{dist-AFH3BMZZ.js → dist-5I4HLUTO.js} +1 -1
  174. package/chunks/{dist-3T5MDUHP.js → dist-FDISN4AK.js} +1 -1
  175. package/chunks/{dist-SB2XRXZA.js → dist-M4CBX53H.js} +1 -1
  176. package/chunks/{dist-UVHW2U56.js → dist-NQ2636VT.js} +1 -1
  177. package/chunks/{dist-PH5RSTEA.js → dist-OR2ZQTXZ.js} +1 -1
  178. package/chunks/{dist-MK5PPBRF.js → dist-STAGIFNB.js} +1099 -67
  179. package/chunks/{dist-R5Y34V6T.js → dist-WZTUKIDR.js} +2 -2
  180. package/chunks/{dist-QUU7TVE3.js → dist-XJ25G6OH.js} +1 -1
  181. package/chunks/{edit-VNBCTRWP.js → edit-LB7Z7XK5.js} +24 -25
  182. package/chunks/{en-JMR535HP.js → en-YJNRUQG4.js} +1 -1
  183. package/chunks/{enter-worktree-CEVK7MQ2.js → enter-worktree-YFTKHXHZ.js} +4 -4
  184. package/chunks/{enterPlanMode-4KMZMUIA.js → enterPlanMode-P6TVUFIY.js} +24 -25
  185. package/chunks/{environment-S2HYQDON.js → environment-QATJNNKI.js} +38 -39
  186. package/chunks/{errors-DAAN5TL7.js → errors-3XJ37PS2.js} +37 -38
  187. package/chunks/{exit-worktree-D3YE6MUN.js → exit-worktree-NF2XEMES.js} +5 -5
  188. package/chunks/{exitPlanMode-HR36HG3D.js → exitPlanMode-A3OKL5UO.js} +24 -25
  189. package/chunks/{fast-path-4IWSW3UV.js → fast-path-DBIT5YQQ.js} +3 -3
  190. package/chunks/{fast-path-settings-ISEJPRYE.js → fast-path-settings-SATXY3PD.js} +3 -3
  191. package/chunks/{glob-IZYB2XH2.js → glob-73EDTXUE.js} +24 -25
  192. package/chunks/{goal-tools-VGUPKQDJ.js → goal-tools-DFI6YMSD.js} +24 -25
  193. package/chunks/{grep-OUVLNXG7.js → grep-BLHF2S5D.js} +2 -2
  194. package/chunks/{handleAutoUpdate-D56FMDTW.js → handleAutoUpdate-2FUNJO3B.js} +38 -39
  195. package/chunks/{i18n-BKE5WO6T.js → i18n-FDIA6KFI.js} +38 -37
  196. package/chunks/{image-gen-SHVQ3XID.js → image-gen-XP4NNIYG.js} +5 -5
  197. package/chunks/{initializer-MS4SGEHF.js → initializer-4MJTJOTW.js} +42 -43
  198. package/chunks/{installationInfo-542MGC4S.js → installationInfo-232RA2OK.js} +35 -36
  199. package/chunks/{list-H6XTKUWL.js → list-WN6WSGEB.js} +45 -46
  200. package/chunks/{list-agents-ULYBGJXC.js → list-agents-I5TRH3J7.js} +2 -2
  201. package/chunks/{llm-3NUC4EJY.js → llm-UDFWQWZA.js} +77 -78
  202. package/chunks/{llm-content-generator-R4NL3OQN.js → llm-content-generator-VLMZ2A7A.js} +23 -8
  203. package/chunks/{loadedSettingsAdapter-3XLKYDVT.js → loadedSettingsAdapter-OBQEIXM7.js} +42 -43
  204. package/chunks/{loggingContentGenerator-ZYSWVNEO.js → loggingContentGenerator-RGVUMUVX.js} +26 -27
  205. package/chunks/{loop-wakeup-B27BEYRL.js → loop-wakeup-HL6XOWI4.js} +2 -2
  206. package/chunks/{ls-3IIMMVKF.js → ls-YV7RKLKY.js} +1 -1
  207. package/chunks/{lsp-VJAT7XKS.js → lsp-NO3AMRZT.js} +1 -1
  208. package/chunks/{managed-npm-update-L2I53ZAI.js → managed-npm-update-QBAJYCFU.js} +35 -36
  209. package/chunks/{mcp-4PIXQASW.js → mcp-OTIZZCPY.js} +42 -43
  210. package/chunks/{monitor-O2YQTOZZ.js → monitor-BV5XF6LL.js} +24 -25
  211. package/chunks/{nonInteractiveCli-LV7CDBA2.js → nonInteractiveCli-W6MUKDVJ.js} +79 -77
  212. package/chunks/{notebook-edit-4RE2ALH4.js → notebook-edit-HGBEKGTE.js} +24 -25
  213. package/chunks/{openaiContentGenerator-7ND7K5CP.js → openaiContentGenerator-NSU3ERBH.js} +15 -15
  214. package/chunks/{pidfile-UFTLQ7NP.js → pidfile-LE3TU4GE.js} +35 -36
  215. package/chunks/{processUtils-3XBB4FYV.js → processUtils-YFBGJK67.js} +2 -2
  216. package/chunks/{prompt-terminal-ledger-2QASOGMM.js → prompt-terminal-ledger-4W4W7DSO.js} +36 -37
  217. package/chunks/{qwenContentGenerator-AELTUTH6.js → qwenContentGenerator-HTA57WFC.js} +28 -29
  218. package/chunks/{qwenOAuth2-BS5D2LYV.js → qwenOAuth2-KX6LVYQ3.js} +4 -4
  219. package/chunks/{read-file-PDWHZPHX.js → read-file-KHPQ2MB6.js} +4 -4
  220. package/chunks/{read-mcp-resource-YXJZ75UB.js → read-mcp-resource-D3N75DGF.js} +1 -1
  221. package/chunks/{record-artifact-WJDOV6XU.js → record-artifact-Q5CRGJTP.js} +2 -2
  222. package/chunks/{report-findings-Q4UACKWR.js → report-findings-TJ34R7QK.js} +3 -3
  223. package/chunks/{request-shutdown-2YZ3E3GH.js → request-shutdown-LRKMTBAD.js} +6 -6
  224. package/chunks/{resumeHistoryUtils-QRXZEEBA.js → resumeHistoryUtils-K7RV3QBN.js} +39 -40
  225. package/chunks/{ripGrep-KSOOLE6H.js → ripGrep-NBBVCMG4.js} +7 -7
  226. package/chunks/{run-qwen-serve-RTAREPT6.js → run-qwen-serve-A3JBOZCM.js} +58 -60
  227. package/chunks/{runtime-ESFSCJRZ.js → runtime-7YOU2KJ3.js} +47 -48
  228. package/chunks/{scheduled-tasks-6ZHRNBH6.js → scheduled-tasks-52LXK7LN.js} +42 -43
  229. package/chunks/{scheduler-DQI6KV7T.js → scheduler-J44M72VM.js} +37 -38
  230. package/chunks/{send-message-PQCVSVMN.js → send-message-AWKUDJBH.js} +8 -8
  231. package/chunks/{serve-FY7ZEW52.js → serve-TRC6XJUB.js} +42 -43
  232. package/chunks/{server-KNDY6K5F.js → server-YPNTJLX2.js} +1314 -841
  233. package/chunks/{session-MCEPXAZP.js → session-FMMIBFYX.js} +98 -84
  234. package/chunks/{session-attachments-root-OLNAE6GF.js → session-attachments-root-LDJMNK7K.js} +35 -36
  235. package/chunks/{session-pr-refresh-HKJHQQQK.js → session-pr-refresh-NLR4EK2J.js} +41 -42
  236. package/chunks/{settings-VXO4WBMK.js → settings-A46L577J.js} +41 -42
  237. package/chunks/{shell-U263OTES.js → shell-Q5LSQPPY.js} +24 -25
  238. package/chunks/{skill-SDODGBKL.js → skill-75KPJRCM.js} +10 -57
  239. package/chunks/{skill-settings-YEIA22QJ.js → skill-settings-775YT4YR.js} +41 -42
  240. package/chunks/{spawnChannel-4WJZVFPP.js → spawnChannel-XY73I5CU.js} +37 -38
  241. package/chunks/{standalone-update-ZWVQUO64.js → standalone-update-L46XXNQ2.js} +37 -38
  242. package/chunks/{start-opentui-ui-BFYCJQRZ.js → start-opentui-ui-WLV43247.js} +2007 -1003
  243. package/chunks/{startInteractiveUI-JYAFCMHL.js → startInteractiveUI-F5DKMLOV.js} +1231 -1528
  244. package/chunks/{syntheticOutput-AUAJBNXR.js → syntheticOutput-D2P5V6RG.js} +2 -2
  245. package/chunks/{task-create-LD5ISM3E.js → task-create-PMAFST2T.js} +7 -7
  246. package/chunks/{task-list-YISJ4RJA.js → task-list-R2HSY2NC.js} +1 -1
  247. package/chunks/{task-stop-65ZOVATJ.js → task-stop-BFSKRTGV.js} +1 -1
  248. package/chunks/{task-update-AAN4ZVEY.js → task-update-JYC57USF.js} +7 -7
  249. package/chunks/{team-create-KU7MABNO.js → team-create-2PATB77U.js} +24 -25
  250. package/chunks/{team-delete-XFRRTJTT.js → team-delete-CBHVBTPB.js} +1 -1
  251. package/chunks/{team-plan-approval-DPB377A3.js → team-plan-approval-QTANEWOS.js} +24 -25
  252. package/chunks/{terminal-image-renderer-WGWRENOF.js → terminal-image-renderer-OGULCFNF.js} +37 -38
  253. package/chunks/{theme-manager-GBUFULSO.js → theme-manager-CNO3QERP.js} +35 -36
  254. package/chunks/{todoWrite-G7NT4IFP.js → todoWrite-5ERKFWAK.js} +3 -5
  255. package/chunks/{tool-search-6YUXHBPT.js → tool-search-VXWEOZE7.js} +9 -9
  256. package/chunks/{total-session-admission-54R2JQ5L.js → total-session-admission-4KAADZPB.js} +41 -42
  257. package/chunks/{trustedFolders-KAJIDJTH.js → trustedFolders-PPJSOPOT.js} +36 -37
  258. package/chunks/{update-relaunch-XM4IWBFD.js → update-relaunch-4PT4MW7B.js} +5 -5
  259. package/chunks/{updateCheck-W6UZFURI.js → updateCheck-WAVFLWNG.js} +37 -38
  260. package/chunks/{useAutoAcceptIndicator-LAWYHY3U.js → useAutoAcceptIndicator-XNED4NRB.js} +44 -45
  261. package/chunks/{validateNonInterActiveAuth-7WCKHRN2.js → validateNonInterActiveAuth-J676DUQ2.js} +74 -74
  262. package/chunks/{version-3ZU43RJ6.js → version-J6SRRQB2.js} +1 -1
  263. package/chunks/{web-fetch-QHI2SQL4.js → web-fetch-FMZZYX44.js} +7 -7
  264. package/chunks/{web-search-3KZZKWNY.js → web-search-3G2KXCX5.js} +19 -8
  265. package/chunks/{workflow-HRW7Y2X4.js → workflow-PPZZICQ7.js} +26 -27
  266. package/chunks/{workspace-providers-status-KTGCWCPC.js → workspace-providers-status-IIYTAQST.js} +46 -47
  267. package/chunks/{workspace-registration-store-LHLPPWNE.js → workspace-registration-store-VHCDXAV7.js} +1 -1
  268. package/chunks/{workspace-registry-X34MLN52.js → workspace-registry-I7VQIPS2.js} +41 -42
  269. package/chunks/{workspace-runtime-coordinator-U4PW4P7K.js → workspace-runtime-coordinator-DBGNY32G.js} +41 -42
  270. package/chunks/{workspace-service-KD7BCGYL.js → workspace-service-QSKB2T54.js} +47 -48
  271. package/chunks/{workspace-skills-status-YJGO6Y3T.js → workspace-skills-status-T7GPT65J.js} +43 -44
  272. package/chunks/{workspace-trust-reconciler-EUYHISCH.js → workspace-trust-reconciler-2PKRDAU4.js} +48 -49
  273. package/chunks/{write-file-EBSB34NJ.js → write-file-L76CGFTQ.js} +26 -27
  274. package/chunks/{zh-TW-W2GNP2IU.js → zh-TW-N2TBF2F2.js} +1 -1
  275. package/chunks/{zh-DVFYHRK5.js → zh-VBFCRQBL.js} +1 -1
  276. package/chunks/{zoom-image-UJ5VKWKP.js → zoom-image-TDJJY2VZ.js} +4 -4
  277. package/cli.js +13 -13
  278. package/export-transcript-document.js +126 -122
  279. package/locales/en.js +2 -2
  280. package/locales/zh-TW.js +2 -2
  281. package/locales/zh.js +2 -2
  282. package/package.json +3 -3
  283. package/web-shell/assets/{abnfDiagram-VCTEODGH-Dur--luQ.js → abnfDiagram-VCTEODGH-DHc6plZn.js} +1 -1
  284. package/web-shell/assets/{arc-tYLobxFi.js → arc-BQ9m8TDV.js} +1 -1
  285. package/web-shell/assets/{architectureDiagram-5GKGNRK7-IG6aXD03.js → architectureDiagram-5GKGNRK7-D5ap3oVB.js} +1 -1
  286. package/web-shell/assets/{blockDiagram-NRAW4CY4-C6eBSkfA.js → blockDiagram-NRAW4CY4-BIbnyNph.js} +1 -1
  287. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BrX3HJqB.js → c4Diagram-UCG6FXSJ-BRsdx_iG.js} +1 -1
  288. package/web-shell/assets/channel-uMMdTrYk.js +1 -0
  289. package/web-shell/assets/{chunk-2Q5K7J3B-B3fcJ8ee.js → chunk-2Q5K7J3B-3lf1fNlx.js} +1 -1
  290. package/web-shell/assets/{chunk-5VM5RSS4-CeC90yKM.js → chunk-5VM5RSS4-DP8VNRc4.js} +1 -1
  291. package/web-shell/assets/{chunk-F27PBJKO-CW44RVki.js → chunk-F27PBJKO-DrohDmZ6.js} +1 -1
  292. package/web-shell/assets/{chunk-G27WJ6UU-D1PAMukD.js → chunk-G27WJ6UU-UZ2QhSx6.js} +1 -1
  293. package/web-shell/assets/{chunk-JWPE2WC7-Dt3Y2Fvx.js → chunk-JWPE2WC7-BIMHVcZK.js} +1 -1
  294. package/web-shell/assets/{chunk-LCL6LL3I-CZHw2lLI.js → chunk-LCL6LL3I-izRxdSDd.js} +1 -1
  295. package/web-shell/assets/{chunk-POPQ4Y6H-ysNAdTGx.js → chunk-POPQ4Y6H-CXADD4PP.js} +1 -1
  296. package/web-shell/assets/{chunk-SVP7TREG-BdNXW6YQ.js → chunk-SVP7TREG-B96d8Y_1.js} +1 -1
  297. package/web-shell/assets/{chunk-XXDRQBXY-DgqQ9UA8.js → chunk-XXDRQBXY-CF2sVQpv.js} +1 -1
  298. package/web-shell/assets/classDiagram-DTDB5LWJ-DcY-26Ig.js +1 -0
  299. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DcY-26Ig.js +1 -0
  300. package/web-shell/assets/{cose-bilkent-JH36ORCC-BILImXzJ.js → cose-bilkent-JH36ORCC-CT6tXVAS.js} +1 -1
  301. package/web-shell/assets/csv-CX7rUNeC.svg +1 -0
  302. package/web-shell/assets/{cynefin-OW5HDTMX-DR88Pund.js → cynefin-OW5HDTMX-X1NS4vtV.js} +1 -1
  303. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BYFbfkA6.js → cynefinDiagram-5FMLGOSQ-DNsKNOT4.js} +1 -1
  304. package/web-shell/assets/{dagre-3AP2YEHR-rfpyc6sX.js → dagre-3AP2YEHR-9-AHKqsb.js} +1 -1
  305. package/web-shell/assets/{diagram-S7CK7UJ4-BJxLmEwH.js → diagram-S7CK7UJ4-Bjgms7j6.js} +1 -1
  306. package/web-shell/assets/{diagram-UQ7AKVKN-H34xm7k3.js → diagram-UQ7AKVKN-h6bCprbE.js} +1 -1
  307. package/web-shell/assets/{diagram-VSXAHHWV-HYxhwNLx.js → diagram-VSXAHHWV-4SbQXVLt.js} +1 -1
  308. package/web-shell/assets/{diagram-VX7I27RA-BJazso8F.js → diagram-VX7I27RA-B5gPCzzB.js} +1 -1
  309. package/web-shell/assets/{diagram-Z3DM3KII-Clje1aNy.js → diagram-Z3DM3KII-DFJXIA3A.js} +1 -1
  310. package/web-shell/assets/{ebnfDiagram-PWID7BFC-M93YBkFh.js → ebnfDiagram-PWID7BFC-FwyaU7VY.js} +1 -1
  311. package/web-shell/assets/{erDiagram-SSCWMZ5O-DY8XzSHU.js → erDiagram-SSCWMZ5O-8vJQh2te.js} +1 -1
  312. package/web-shell/assets/{flowDiagram-A5DVABFB-CE6Aylcq.js → flowDiagram-A5DVABFB-BzA_1gMN.js} +1 -1
  313. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DI-5LL22.js → ganttDiagram-EL5Y4UJY-Co-ABbVX.js} +1 -1
  314. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C7BZWElk.js → gitGraphDiagram-WWUBYQGX-DW_FcyrX.js} +1 -1
  315. package/web-shell/assets/{index-DclFHns9.js → index-BbMXfhNG.js} +1 -1
  316. package/web-shell/assets/{index-CVyqwW7y.js → index-Bu-rZoJ-.js} +483 -475
  317. package/web-shell/assets/index-CsPwZ1ut.css +36 -0
  318. package/web-shell/assets/{infoDiagram-RXCK75RN-CGUSy4Pc.js → infoDiagram-RXCK75RN-BEgfhUFN.js} +1 -1
  319. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-B5BVks9q.js → ishikawaDiagram-5VMMS53U-DCsMxQmc.js} +1 -1
  320. package/web-shell/assets/{journeyDiagram-EYS64GPL-CFh6Tf7h.js → journeyDiagram-EYS64GPL-DyIEYoHz.js} +1 -1
  321. package/web-shell/assets/{kanban-definition-3QL26DDD-B7TlxP7c.js → kanban-definition-3QL26DDD-CkxjqCNr.js} +1 -1
  322. package/web-shell/assets/{layout-Br_pZq2Q.js → layout-BEWc0Al9.js} +1 -1
  323. package/web-shell/assets/{linear-BVlP6fte.js → linear-CNuNxirL.js} +1 -1
  324. package/web-shell/assets/{mermaid.core-TrcYWoiF.js → mermaid.core-DZBre674.js} +6 -6
  325. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BJ4LzqjZ.js → mindmap-definition-FBJOCRG2-CpafFz_F.js} +1 -1
  326. package/web-shell/assets/{pegDiagram-XKGWAZYB-1b_MxlOl.js → pegDiagram-XKGWAZYB-DfZqk_dq.js} +1 -1
  327. package/web-shell/assets/{pieDiagram-E7YTZNPT-B8zl0YhY.js → pieDiagram-E7YTZNPT-S0UWXlgC.js} +1 -1
  328. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CIZO8ukl.js → quadrantDiagram-AXDQQJYC-dd37_Ohj.js} +1 -1
  329. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CepHSbCj.js → railroadDiagram-O6MQD6OU-CH8NJZ7u.js} +1 -1
  330. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCgxkcSW.js → requirementDiagram-EFPCY7ZU-CFdqWYih.js} +1 -1
  331. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CE5CcoMM.js → sankeyDiagram-P5KCCOFB-CsddcEGD.js} +1 -1
  332. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DvgHi-d5.js → sequenceDiagram-WJ2MYXX4-BZ270mGw.js} +1 -1
  333. package/web-shell/assets/{sizeCapture-X5ZJPWSS-T-fAsCPX.js → sizeCapture-X5ZJPWSS-CGaS4DBV.js} +1 -1
  334. package/web-shell/assets/{stateDiagram-HBIQ2CUA-DYHaul-5.js → stateDiagram-HBIQ2CUA-COpIzMu6.js} +1 -1
  335. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D6qEVAji.js +1 -0
  336. package/web-shell/assets/{swimlanes-XN3QIQJK-Dbz3Qiej.js → swimlanes-XN3QIQJK-CMF889m3.js} +1 -1
  337. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-mem5Jj4m.js +8 -0
  338. package/web-shell/assets/{timeline-definition-24CTP7MA-9NVRts3N.js → timeline-definition-24CTP7MA-BelnxYz5.js} +1 -1
  339. package/web-shell/assets/{vennDiagram-4TSXK5OY-C7cb7vnH.js → vennDiagram-4TSXK5OY-CU-NRqIB.js} +1 -1
  340. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CG-8Ddjm.js → wardleyDiagram-VM6X3IG4-CDNKqWh-.js} +1 -1
  341. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-iGeYAcP4.js → xychartDiagram-S5SC5T6Z-CLqguL5D.js} +1 -1
  342. package/web-shell/index.html +6 -3
  343. package/chunks/chunk-3UMWOKJC.js +0 -78
  344. package/chunks/chunk-FKJM6JKY.js +0 -98
  345. package/chunks/chunk-IQAFKVXS.js +0 -22
  346. package/web-shell/assets/channel-uEkvKckd.js +0 -1
  347. package/web-shell/assets/classDiagram-DTDB5LWJ-DuPsnhWS.js +0 -1
  348. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DuPsnhWS.js +0 -1
  349. package/web-shell/assets/index-FO7JXPnH.css +0 -36
  350. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BcYho9a4.js +0 -1
  351. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6HsOIgX.js +0 -8
@@ -2,12 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  isCommandAvailable
5
- } from "./chunk-OECNP26L.js";
5
+ } from "./chunk-N6S3NUYJ.js";
6
6
  import {
7
7
  fileExists,
8
8
  isWithinRoot
9
9
  } from "./chunk-J6MB5ZHZ.js";
10
10
  import {
11
+ atomicWriteFile,
11
12
  atomicWriteJSON
12
13
  } from "./chunk-XFFRI3WM.js";
13
14
  import {
@@ -171,11 +172,17 @@ async function addWorktreeSessionMarkerExclude(worktreePath) {
171
172
  existing = await fs2.readFile(excludePath, "utf8");
172
173
  } catch {
173
174
  }
174
- const rule = WORKTREE_SESSION_FILE;
175
- if (!existing.split(/\r?\n/).includes(rule)) {
176
- const sep = existing.length === 0 || existing.endsWith("\n") ? "" : "\n";
177
- await fs2.writeFile(excludePath, `${existing}${sep}${rule}
178
- `, "utf8");
175
+ const rules = [WORKTREE_SESSION_FILE, `${WORKTREE_SESSION_FILE}.*.tmp`];
176
+ let next = existing;
177
+ for (const rule of rules) {
178
+ if (!next.split(/\r?\n/).includes(rule)) {
179
+ const sep = next.length === 0 || next.endsWith("\n") ? "" : "\n";
180
+ next = `${next}${sep}${rule}
181
+ `;
182
+ }
183
+ }
184
+ if (next !== existing) {
185
+ await fs2.writeFile(excludePath, next, "utf8");
179
186
  }
180
187
  } catch {
181
188
  }
@@ -190,15 +197,32 @@ async function writeWorktreeSessionMarker(worktreePath, sessionId) {
190
197
  await addWorktreeSessionMarkerExclude(worktreePath);
191
198
  }
192
199
  __name(writeWorktreeSessionMarker, "writeWorktreeSessionMarker");
193
- async function createWorktreeSessionMarkerExclusive(worktreePath, sessionId) {
194
- if (sessionId.length === 0 || Buffer.byteLength(sessionId, "utf8") > WORKTREE_SESSION_MARKER_MAX_BYTES || sessionId.trim() !== sessionId) {
195
- throw new Error("Invalid worktree session marker owner");
200
+ var WorktreeMarkerCommittedError = class extends Error {
201
+ static {
202
+ __name(this, "WorktreeMarkerCommittedError");
196
203
  }
204
+ committedOwner;
205
+ constructor(committedOwner, options) {
206
+ super(
207
+ `Worktree session marker committed for ${committedOwner}; the post-commit close failed`,
208
+ options
209
+ );
210
+ this.name = "WorktreeMarkerCommittedError";
211
+ this.committedOwner = committedOwner;
212
+ }
213
+ };
214
+ async function createWorktreeSessionMarkerExclusive(worktreePath, sessionId) {
215
+ assertValidWorktreeSessionMarkerOwner(sessionId);
197
216
  const markerPath = path2.join(worktreePath, WORKTREE_SESSION_FILE);
217
+ const stagedPath = `${markerPath}.${randomBytes(6).toString("hex")}.tmp`;
198
218
  const flags = nodeFs.constants.O_WRONLY | nodeFs.constants.O_CREAT | nodeFs.constants.O_EXCL | (nodeFs.constants.O_NOFOLLOW ?? 0);
199
- const handle = await fs2.open(markerPath, flags, 384);
219
+ const handle = await fs2.open(stagedPath, flags, 384);
220
+ let stagedDev = 0;
221
+ let stagedIno = 0;
200
222
  try {
201
223
  const before = await handle.stat();
224
+ stagedDev = before.dev;
225
+ stagedIno = before.ino;
202
226
  if (!before.isFile() || before.nlink !== 1 || before.ino === 0) {
203
227
  throw new Error("Worktree session marker has an unsafe identity");
204
228
  }
@@ -206,17 +230,43 @@ async function createWorktreeSessionMarkerExclusive(worktreePath, sessionId) {
206
230
  await handle.sync();
207
231
  const [after, pathStats] = await Promise.all([
208
232
  handle.stat(),
209
- fs2.lstat(markerPath)
233
+ fs2.lstat(stagedPath)
210
234
  ]);
211
235
  if (!after.isFile() || after.nlink !== 1 || after.size > WORKTREE_SESSION_MARKER_MAX_BYTES || after.dev !== before.dev || after.ino !== before.ino || pathStats.dev !== after.dev || pathStats.ino !== after.ino) {
212
236
  throw new Error("Worktree session marker identity changed");
213
237
  }
214
- } finally {
238
+ await fs2.link(stagedPath, markerPath);
239
+ } catch (error) {
240
+ await handle.close().catch(() => {
241
+ });
242
+ if (stagedIno !== 0) {
243
+ try {
244
+ const current = await fs2.lstat(stagedPath);
245
+ if (current.dev === stagedDev && current.ino === stagedIno) {
246
+ await fs2.unlink(stagedPath);
247
+ }
248
+ } catch {
249
+ }
250
+ }
251
+ throw error;
252
+ }
253
+ try {
254
+ await fs2.unlink(stagedPath);
215
255
  await handle.close();
256
+ } catch (error) {
257
+ await handle.close().catch(() => {
258
+ });
259
+ throw new WorktreeMarkerCommittedError(sessionId, { cause: error });
216
260
  }
217
261
  await addWorktreeSessionMarkerExclude(worktreePath);
218
262
  }
219
263
  __name(createWorktreeSessionMarkerExclusive, "createWorktreeSessionMarkerExclusive");
264
+ function assertValidWorktreeSessionMarkerOwner(sessionId) {
265
+ if (sessionId.length === 0 || Buffer.byteLength(sessionId, "utf8") > WORKTREE_SESSION_MARKER_MAX_BYTES || sessionId.trim() !== sessionId) {
266
+ throw new Error("Invalid worktree session marker owner");
267
+ }
268
+ }
269
+ __name(assertValidWorktreeSessionMarkerOwner, "assertValidWorktreeSessionMarkerOwner");
220
270
  async function readWorktreeSessionMarkerStrict(worktreePath) {
221
271
  const markerPath = path2.join(worktreePath, WORKTREE_SESSION_FILE);
222
272
  let handle;
@@ -267,7 +317,13 @@ async function readWorktreeSessionMarkerStrict(worktreePath) {
267
317
  if (sessionId.length === 0 || sessionId !== raw || Buffer.byteLength(sessionId, "utf8") > WORKTREE_SESSION_MARKER_MAX_BYTES) {
268
318
  return { state: "invalid", reason: "invalid marker owner" };
269
319
  }
270
- return { state: "valid", sessionId };
320
+ return {
321
+ state: "valid",
322
+ sessionId,
323
+ uid: process.geteuid === void 0 ? null : after.uid,
324
+ dev: after.dev,
325
+ ino: after.ino
326
+ };
271
327
  } catch (error) {
272
328
  if (isNodeError(error) && error.code === "ENOENT") {
273
329
  return observedMarker ? { state: "invalid", reason: "marker disappeared during read" } : { state: "missing" };
@@ -282,6 +338,122 @@ async function readWorktreeSessionMarkerStrict(worktreePath) {
282
338
  }
283
339
  }
284
340
  __name(readWorktreeSessionMarkerStrict, "readWorktreeSessionMarkerStrict");
341
+ function readWorktreeSessionMarkerStrictSync(worktreePath) {
342
+ const markerPath = path2.join(worktreePath, WORKTREE_SESSION_FILE);
343
+ let fd;
344
+ let observedMarker = false;
345
+ try {
346
+ const flags = nodeFs.constants.O_RDONLY | (nodeFs.constants.O_NOFOLLOW ?? 0) | (nodeFs.constants.O_NONBLOCK ?? 0);
347
+ const before = nodeFs.lstatSync(markerPath);
348
+ observedMarker = true;
349
+ if (before.isSymbolicLink() || !before.isFile() || before.nlink !== 1) {
350
+ return { state: "invalid", reason: "unsafe marker file type" };
351
+ }
352
+ if (before.ino === 0 || before.size > WORKTREE_SESSION_MARKER_MAX_BYTES) {
353
+ return { state: "invalid", reason: "unsafe marker size or identity" };
354
+ }
355
+ fd = nodeFs.openSync(markerPath, flags);
356
+ const opened = nodeFs.fstatSync(fd);
357
+ if (!opened.isFile() || opened.nlink !== 1 || opened.dev !== before.dev || opened.ino !== before.ino) {
358
+ return {
359
+ state: "invalid",
360
+ reason: "marker identity changed before read"
361
+ };
362
+ }
363
+ const markerBuffer = Buffer.alloc(WORKTREE_SESSION_MARKER_MAX_BYTES + 1);
364
+ let bytesRead = 0;
365
+ while (bytesRead < markerBuffer.length) {
366
+ const chunk = nodeFs.readSync(
367
+ fd,
368
+ markerBuffer,
369
+ bytesRead,
370
+ markerBuffer.length - bytesRead,
371
+ bytesRead
372
+ );
373
+ if (chunk === 0) break;
374
+ bytesRead += chunk;
375
+ }
376
+ if (bytesRead > WORKTREE_SESSION_MARKER_MAX_BYTES) {
377
+ return { state: "invalid", reason: "unsafe marker size or identity" };
378
+ }
379
+ const raw = markerBuffer.subarray(0, bytesRead).toString("utf8");
380
+ const after = nodeFs.fstatSync(fd);
381
+ const pathStats = nodeFs.lstatSync(markerPath);
382
+ if (!after.isFile() || after.nlink !== 1 || after.size !== bytesRead || after.size > WORKTREE_SESSION_MARKER_MAX_BYTES || after.dev !== opened.dev || after.ino !== opened.ino || !pathStats.isFile() || pathStats.nlink !== 1 || pathStats.dev !== after.dev || pathStats.ino !== after.ino) {
383
+ return {
384
+ state: "invalid",
385
+ reason: "marker identity changed during read"
386
+ };
387
+ }
388
+ const sessionId = raw.trim();
389
+ if (sessionId.length === 0 || sessionId !== raw || Buffer.byteLength(sessionId, "utf8") > WORKTREE_SESSION_MARKER_MAX_BYTES) {
390
+ return { state: "invalid", reason: "invalid marker owner" };
391
+ }
392
+ return {
393
+ state: "valid",
394
+ sessionId,
395
+ uid: process.geteuid === void 0 ? null : after.uid,
396
+ dev: after.dev,
397
+ ino: after.ino
398
+ };
399
+ } catch (error) {
400
+ if (isNodeError(error) && error.code === "ENOENT") {
401
+ return observedMarker ? { state: "invalid", reason: "marker disappeared during read" } : { state: "missing" };
402
+ }
403
+ return {
404
+ state: "invalid",
405
+ reason: error instanceof Error ? error.message : String(error)
406
+ };
407
+ } finally {
408
+ if (fd !== void 0) {
409
+ try {
410
+ nodeFs.closeSync(fd);
411
+ } catch {
412
+ }
413
+ }
414
+ }
415
+ }
416
+ __name(readWorktreeSessionMarkerStrictSync, "readWorktreeSessionMarkerStrictSync");
417
+ async function transferWorktreeSessionMarkerOwner(worktreePath, expectedOwner, newOwner) {
418
+ assertValidWorktreeSessionMarkerOwner(newOwner);
419
+ if (expectedOwner !== null) {
420
+ assertValidWorktreeSessionMarkerOwner(expectedOwner);
421
+ if (expectedOwner === newOwner) {
422
+ throw new Error("Worktree marker transfer needs a distinct new owner");
423
+ }
424
+ }
425
+ const opening = await readWorktreeSessionMarkerStrict(worktreePath);
426
+ if (opening.state === "invalid") {
427
+ throw new Error(`Worktree marker is invalid: ${opening.reason}`);
428
+ }
429
+ if (opening.state === "missing") {
430
+ if (expectedOwner !== null) {
431
+ throw new Error("Worktree marker owner does not match the expectation");
432
+ }
433
+ await createWorktreeSessionMarkerExclusive(worktreePath, newOwner);
434
+ return;
435
+ }
436
+ if (opening.sessionId !== expectedOwner) {
437
+ throw new Error("Worktree marker owner does not match the expectation");
438
+ }
439
+ const euid = process.geteuid?.();
440
+ if (euid !== void 0 && opening.uid !== null && opening.uid !== euid) {
441
+ throw new Error("Worktree marker is owned by a different uid");
442
+ }
443
+ const markerPath = path2.join(worktreePath, WORKTREE_SESSION_FILE);
444
+ await atomicWriteFile(markerPath, newOwner, {
445
+ mode: 384,
446
+ noFollow: true,
447
+ assertCanCommit: /* @__PURE__ */ __name(() => {
448
+ const current = readWorktreeSessionMarkerStrictSync(worktreePath);
449
+ if (current.state !== "valid" || current.sessionId !== opening.sessionId || current.dev !== opening.dev || current.ino !== opening.ino || current.uid !== opening.uid) {
450
+ throw new Error("Worktree marker changed during ownership transfer");
451
+ }
452
+ }, "assertCanCommit")
453
+ });
454
+ await addWorktreeSessionMarkerExclude(worktreePath);
455
+ }
456
+ __name(transferWorktreeSessionMarkerOwner, "transferWorktreeSessionMarkerOwner");
285
457
  async function readWorktreeSessionMarker(worktreePath) {
286
458
  const markerPath = path2.join(worktreePath, WORKTREE_SESSION_FILE);
287
459
  try {
@@ -1826,9 +1998,12 @@ export {
1826
1998
  clearRuntimeStatus,
1827
1999
  loadSimpleGit,
1828
2000
  worktreeBranchForSlug,
2001
+ WORKTREE_SESSION_FILE,
1829
2002
  writeWorktreeSessionMarker,
2003
+ WorktreeMarkerCommittedError,
1830
2004
  createWorktreeSessionMarkerExclusive,
1831
2005
  readWorktreeSessionMarkerStrict,
2006
+ transferWorktreeSessionMarkerOwner,
1832
2007
  readWorktreeSessionMarker,
1833
2008
  AGENT_WORKTREE_SLUG_PATTERN,
1834
2009
  generateAgentWorktreeSlug,
@@ -8,7 +8,7 @@ import {
8
8
  isQuotaExhaustedError,
9
9
  isQwenQuotaExceededError,
10
10
  isRateLimitError
11
- } from "./chunk-W4LL5RZO.js";
11
+ } from "./chunk-4ALNJDHL.js";
12
12
  import {
13
13
  createDebugLogger,
14
14
  getErrorStatus
@@ -2,26 +2,26 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-MUZCSTOO.js";
5
+ } from "./chunk-CRZBDVP2.js";
6
6
  import {
7
7
  computeThresholds,
8
8
  estimateContextTextTokens,
9
9
  formatContextFileDisplayPath,
10
10
  getMainSessionBaseSystemPrompt
11
- } from "./chunk-I72PHOKL.js";
11
+ } from "./chunk-PDUMGZ2P.js";
12
12
  import {
13
13
  DiscoveredMCPTool,
14
14
  uiTelemetryService
15
- } from "./chunk-P5LDR7FI.js";
15
+ } from "./chunk-6QV7Z74P.js";
16
16
  import {
17
17
  DEFAULT_TOKEN_LIMIT
18
18
  } from "./chunk-FPGTNKCP.js";
19
19
  import {
20
20
  buildSkillLlmContent
21
- } from "./chunk-NGX4NUNP.js";
21
+ } from "./chunk-O2FEO2CB.js";
22
22
  import {
23
23
  ToolNames
24
- } from "./chunk-RPBMP6BN.js";
24
+ } from "./chunk-MWIO7MF6.js";
25
25
  import {
26
26
  init_esbuild_shims
27
27
  } from "./chunk-5O2XNYP6.js";
@@ -3,10 +3,10 @@
3
3
  import {
4
4
  SERVE_CONTROL_EXT_METHODS,
5
5
  STATUS_SCHEMA_VERSION
6
- } from "./chunk-KPXRFTT7.js";
6
+ } from "./chunk-FETY36NQ.js";
7
7
  import {
8
8
  WorkspaceDrainingError
9
- } from "./chunk-F47DITLZ.js";
9
+ } from "./chunk-FAWTMDX7.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -3,11 +3,11 @@
3
3
  import {
4
4
  TURN_INTERRUPTION_HISTORY_TAIL_COUNT,
5
5
  detectTurnInterruption
6
- } from "./chunk-UEZOXZNI.js";
6
+ } from "./chunk-ZU2T5JIS.js";
7
7
  import {
8
8
  SessionService,
9
9
  buildApiHistoryFromConversation
10
- } from "./chunk-I72PHOKL.js";
10
+ } from "./chunk-PDUMGZ2P.js";
11
11
  import {
12
12
  init_esbuild_shims
13
13
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  CHANNEL_STARTUP_PROFILE_VERSION
5
- } from "./chunk-WEXA2DNG.js";
5
+ } from "./chunk-PSPAM24S.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  hasControlCharacter
5
- } from "./chunk-LDS57224.js";
5
+ } from "./chunk-OWCFKIFQ.js";
6
6
  import {
7
7
  BaseDeclarativeTool,
8
8
  BaseToolInvocation,
9
9
  ToolDisplayNames,
10
10
  ToolNames
11
- } from "./chunk-RPBMP6BN.js";
11
+ } from "./chunk-MWIO7MF6.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -1,8 +1,12 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- REASONING_EFFORT_TIERS
5
- } from "./chunk-2LD5U7Q3.js";
4
+ ACP_ROUTE_ID_PREFIX
5
+ } from "./chunk-ARYNBBBM.js";
6
+ import {
7
+ REASONING_EFFORT_TIERS,
8
+ parseModelReasoningCapabilities
9
+ } from "./chunk-6YEOCHSE.js";
6
10
  import {
7
11
  init_esbuild_shims
8
12
  } from "./chunk-5O2XNYP6.js";
@@ -14,19 +18,34 @@ import {
14
18
  init_esbuild_shims();
15
19
  var MODEL_CONFIGURATIONS = {
16
20
  "qwen3.5-plus": {
17
- reasoning: { thinking: true, toggleOnly: true }
21
+ reasoning: {
22
+ thinking: true,
23
+ toggleOnly: true
24
+ }
18
25
  },
19
26
  "qwen3.6-plus": {
20
- reasoning: { thinking: true, toggleOnly: true }
27
+ reasoning: {
28
+ thinking: true,
29
+ toggleOnly: true
30
+ }
21
31
  },
22
32
  "qwen3.6-flash": {
23
- reasoning: { thinking: true, toggleOnly: true }
33
+ reasoning: {
34
+ thinking: true,
35
+ toggleOnly: true
36
+ }
24
37
  },
25
38
  "qwen3.7-plus": {
26
- reasoning: { thinking: true, toggleOnly: true }
39
+ reasoning: {
40
+ thinking: true,
41
+ toggleOnly: true
42
+ }
27
43
  },
28
44
  "qwen3.7-max": {
29
- reasoning: { thinking: true, toggleOnly: true }
45
+ reasoning: {
46
+ thinking: true,
47
+ toggleOnly: true
48
+ }
30
49
  },
31
50
  "qwen3.8-max": {
32
51
  reasoning: {
@@ -47,18 +66,45 @@ var REASONING_EFFORT_NAMES = {
47
66
  xhigh: "Extra high",
48
67
  max: "Max"
49
68
  };
50
- function resolvePersistedReasoningConfigState(modelId, value, thinkingMandatory = false) {
69
+ function resolvePersistedReasoningConfigState(modelId, value, thinkingMandatory = false, reasoning) {
51
70
  const selection = parseReasoningSelection(value);
52
- if (!selection || selection === REASONING_EFFORT_DEFAULT || !isReasoningSelectionSupported(modelId, selection, thinkingMandatory)) {
71
+ if (!selection || selection === REASONING_EFFORT_DEFAULT || !isReasoningSelectionSupported(
72
+ modelId,
73
+ selection,
74
+ thinkingMandatory,
75
+ reasoning
76
+ )) {
53
77
  return { thinkingMandatory };
54
78
  }
55
79
  return selection === REASONING_EFFORT_NONE ? { enabled: false, thinkingMandatory } : { enabled: true, effort: selection, thinkingMandatory };
56
80
  }
57
81
  __name(resolvePersistedReasoningConfigState, "resolvePersistedReasoningConfigState");
58
- function getModelConfiguration(modelId) {
59
- return modelId ? MODEL_CONFIGURATIONS[modelId] : void 0;
82
+ function getModelConfiguration(modelId, reasoning) {
83
+ const configured = parseModelReasoningCapabilities(reasoning);
84
+ return configured ? { reasoning: configured } : modelId ? MODEL_CONFIGURATIONS[modelId] : void 0;
60
85
  }
61
86
  __name(getModelConfiguration, "getModelConfiguration");
87
+ function getConfiguredModelReasoning(config, modelId = config.getModel?.(), fallbackToManifest = true) {
88
+ if (config.getActiveRuntimeModelSnapshot?.() || config.getModel?.().startsWith(ACP_ROUTE_ID_PREFIX)) {
89
+ return void 0;
90
+ }
91
+ const generation = config.getContentGeneratorConfig?.();
92
+ const authType = generation?.authType ?? config.getAuthType?.();
93
+ const baseUrl = generation?.baseUrl ?? config.getCurrentModelRegistryBaseUrl?.() ?? void 0;
94
+ const configured = authType ? config.getResolvedModelConfig?.(authType, modelId, baseUrl) : void 0;
95
+ const reasoning = parseModelReasoningCapabilities(
96
+ configured?.capabilities?.reasoning
97
+ );
98
+ return reasoning ?? (fallbackToManifest ? getModelConfiguration(modelId)?.reasoning : void 0);
99
+ }
100
+ __name(getConfiguredModelReasoning, "getConfiguredModelReasoning");
101
+ function getReasoningEffortsForConfig(config) {
102
+ const modelId = config.getModel?.();
103
+ const reasoning = getConfiguredModelReasoning(config, modelId, false);
104
+ if (reasoning) return reasoning.toggleOnly ? [] : reasoning.efforts;
105
+ return REASONING_EFFORT_TIERS;
106
+ }
107
+ __name(getReasoningEffortsForConfig, "getReasoningEffortsForConfig");
62
108
  function parseReasoningSelection(value) {
63
109
  if (value === REASONING_EFFORT_NONE || value === REASONING_EFFORT_DEFAULT) {
64
110
  return value;
@@ -66,17 +112,22 @@ function parseReasoningSelection(value) {
66
112
  return REASONING_EFFORT_TIERS.find((tier) => tier === value);
67
113
  }
68
114
  __name(parseReasoningSelection, "parseReasoningSelection");
69
- function isReasoningSelectionSupported(modelId, selection, thinkingMandatory = false) {
115
+ function isReasoningSelectionSupported(modelId, selection, thinkingMandatory = false, configuredReasoning) {
70
116
  if (!modelId) return false;
71
- const reasoning = getModelConfiguration(modelId)?.reasoning;
117
+ const reasoning = getModelConfiguration(
118
+ modelId,
119
+ configuredReasoning
120
+ )?.reasoning;
72
121
  if (!reasoning?.thinking) {
73
122
  const normalized = modelId.toLowerCase();
74
123
  if (normalized.startsWith("qwen") || normalized === "coder-model")
75
124
  return false;
76
125
  }
77
126
  if (selection === REASONING_EFFORT_DEFAULT) return true;
78
- if (selection === REASONING_EFFORT_NONE) return !thinkingMandatory;
79
- return reasoning?.thinking ? !reasoning.toggleOnly && reasoning.efforts.includes(selection) : REASONING_EFFORT_TIERS.includes(selection);
127
+ if (selection === REASONING_EFFORT_NONE) {
128
+ return reasoning?.canDisable !== false && !thinkingMandatory;
129
+ }
130
+ return reasoning?.thinking ? !reasoning.toggleOnly && reasoning.efforts?.includes(selection) === true : REASONING_EFFORT_TIERS.includes(selection);
80
131
  }
81
132
  __name(isReasoningSelectionSupported, "isReasoningSelectionSupported");
82
133
  function clearReasoningRequestOverrides(generation) {
@@ -124,11 +175,14 @@ function applyReasoningSelection(config, selection, defaultReasoning) {
124
175
  if (rebuildable !== live) apply(rebuildable);
125
176
  }
126
177
  __name(applyReasoningSelection, "applyReasoningSelection");
127
- function buildModelReasoningConfigOption(modelId, state = {}) {
128
- const reasoning = getModelConfiguration(modelId)?.reasoning;
178
+ function buildModelReasoningConfigOption(modelId, state = {}, configuredReasoning) {
179
+ const reasoning = getModelConfiguration(
180
+ modelId,
181
+ configuredReasoning
182
+ )?.reasoning;
129
183
  if (!reasoning?.thinking) return void 0;
130
- const thinkingMandatory = state.thinkingMandatory === true;
131
- const currentValue = state.enabled === false && !thinkingMandatory ? REASONING_EFFORT_NONE : reasoning.toggleOnly ? REASONING_EFFORT_DEFAULT : reasoning.efforts.find((effort) => effort === state.effort) ?? reasoning.defaultEffort;
184
+ const canDisable = reasoning.canDisable !== false && state.thinkingMandatory !== true;
185
+ const currentValue = state.enabled === false && canDisable ? REASONING_EFFORT_NONE : reasoning.toggleOnly ? REASONING_EFFORT_DEFAULT : reasoning.efforts?.find((effort) => effort === state.effort) ?? reasoning.defaultEffort ?? REASONING_EFFORT_DEFAULT;
132
186
  return {
133
187
  id: "reasoning_effort",
134
188
  name: "Reasoning effort",
@@ -137,41 +191,57 @@ function buildModelReasoningConfigOption(modelId, state = {}) {
137
191
  type: "select",
138
192
  currentValue,
139
193
  options: [
140
- ...thinkingMandatory ? [] : [
194
+ ...canDisable ? [
141
195
  {
142
196
  value: REASONING_EFFORT_NONE,
143
197
  name: "Thinking off",
144
198
  description: "Disable thinking for this session"
145
199
  }
146
- ],
200
+ ] : [],
147
201
  ...reasoning.toggleOnly ? [
148
202
  {
149
203
  value: REASONING_EFFORT_DEFAULT,
150
204
  name: "Thinking on",
151
205
  description: "Use the model or provider thinking default"
152
206
  }
153
- ] : reasoning.efforts.map((effort) => ({
154
- value: effort,
155
- name: REASONING_EFFORT_NAMES[effort],
156
- description: "Apply this effort to the next request"
157
- }))
207
+ ] : [
208
+ ...reasoning.defaultEffort ? [] : [
209
+ {
210
+ value: REASONING_EFFORT_DEFAULT,
211
+ name: "Default",
212
+ description: "Use the model or provider default"
213
+ }
214
+ ],
215
+ ...reasoning.efforts.map((effort) => ({
216
+ value: effort,
217
+ name: REASONING_EFFORT_NAMES[effort],
218
+ description: "Apply this effort to the next request"
219
+ }))
220
+ ]
158
221
  ],
159
222
  _meta: {
160
223
  "qwenCode/reasoning": reasoning.toggleOnly ? {
161
224
  toggleOnly: true,
162
- ...thinkingMandatory ? { thinkingMandatory: true } : {}
225
+ ...canDisable ? {} : { thinkingMandatory: true }
163
226
  } : {
164
- defaultEffort: reasoning.defaultEffort,
165
- ...thinkingMandatory ? { thinkingMandatory: true } : {}
227
+ ...reasoning.defaultEffort ? { defaultEffort: reasoning.defaultEffort } : {},
228
+ ...canDisable ? {} : { thinkingMandatory: true }
166
229
  }
167
230
  }
168
231
  };
169
232
  }
170
233
  __name(buildModelReasoningConfigOption, "buildModelReasoningConfigOption");
171
- function buildModelReasoningConfigPreview(modelId, state = {}) {
172
- const reasoning = getModelConfiguration(modelId)?.reasoning;
234
+ function buildModelReasoningConfigPreview(modelId, state = {}, configuredReasoning) {
235
+ const reasoning = getModelConfiguration(
236
+ modelId,
237
+ configuredReasoning
238
+ )?.reasoning;
173
239
  if (!reasoning?.thinking) return void 0;
174
- const option = buildModelReasoningConfigOption(modelId, state);
240
+ const option = buildModelReasoningConfigOption(
241
+ modelId,
242
+ state,
243
+ configuredReasoning
244
+ );
175
245
  return option ? [option] : void 0;
176
246
  }
177
247
  __name(buildModelReasoningConfigPreview, "buildModelReasoningConfigPreview");
@@ -183,7 +253,8 @@ export {
183
253
  REASONING_SELECTION_PERSISTED_META_KEY,
184
254
  REASONING_EFFORT_NAMES,
185
255
  resolvePersistedReasoningConfigState,
186
- getModelConfiguration,
256
+ getConfiguredModelReasoning,
257
+ getReasoningEffortsForConfig,
187
258
  parseReasoningSelection,
188
259
  isReasoningSelectionSupported,
189
260
  clearReasoningRequestOverrides,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  MissingCliEntryError
5
- } from "./chunk-KPXRFTT7.js";
5
+ } from "./chunk-FETY36NQ.js";
6
6
  import {
7
7
  redactLogCredentials
8
8
  } from "./chunk-M5GB774H.js";
@@ -2,22 +2,22 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-ZAZ3NFL6.js";
5
+ } from "./chunk-DXQ6Z7AH.js";
6
6
  import {
7
7
  CUSTOM_SANDBOX_IMAGE_ENV_VAR,
8
8
  HOST_UPDATE_RELAUNCH_ENV_VAR,
9
9
  SKIP_UPDATE_CHECK_ENV_VAR,
10
10
  requestUpdateOnExit
11
- } from "./chunk-4VZCORNT.js";
11
+ } from "./chunk-RXT4QBDX.js";
12
12
  import {
13
13
  loadUndici
14
14
  } from "./chunk-TXASDT2M.js";
15
15
  import {
16
16
  getAllProviderBaseUrls
17
- } from "./chunk-UEZOXZNI.js";
17
+ } from "./chunk-ZU2T5JIS.js";
18
18
  import {
19
19
  IdeClient
20
- } from "./chunk-I72PHOKL.js";
20
+ } from "./chunk-PDUMGZ2P.js";
21
21
  import {
22
22
  detectRuntime,
23
23
  getOrCreateSharedDispatcher,
@@ -233,11 +233,11 @@ function startPostRenderPrefetches(config, settings, options = {}) {
233
233
  { updateEventEmitter },
234
234
  { t }
235
235
  ] = await Promise.all([
236
- import("./updateCheck-W6UZFURI.js"),
237
- import("./handleAutoUpdate-D56FMDTW.js"),
238
- import("./installationInfo-542MGC4S.js"),
236
+ import("./updateCheck-WAVFLWNG.js"),
237
+ import("./handleAutoUpdate-2FUNJO3B.js"),
238
+ import("./installationInfo-232RA2OK.js"),
239
239
  import("./updateEventEmitter-5MKC7BLQ.js"),
240
- import("./i18n-BKE5WO6T.js")
240
+ import("./i18n-FDIA6KFI.js")
241
241
  ]);
242
242
  const updateCheckSkippedMessage = /* @__PURE__ */ __name((error) => t("Update check skipped ({{reason}}) \u2014 run /update to retry.", {
243
243
  reason: describeUpdateCheckFailure(error)
@@ -310,7 +310,7 @@ ${t(
310
310
  state: "connecting"
311
311
  });
312
312
  try {
313
- const { connectIdeForStartup } = await import("./initializer-MS4SGEHF.js");
313
+ const { connectIdeForStartup } = await import("./initializer-4MJTJOTW.js");
314
314
  await withTimeout(
315
315
  connectIdeForStartup(config),
316
316
  "ide_connect",
@@ -334,7 +334,7 @@ ${t(
334
334
  }
335
335
  if (config.isInteractive()) {
336
336
  runDeferredTask("background_housekeeping", async () => {
337
- const { startBackgroundHousekeeping } = await import("./scheduler-DQI6KV7T.js");
337
+ const { startBackgroundHousekeeping } = await import("./scheduler-J44M72VM.js");
338
338
  startBackgroundHousekeeping(config, settings);
339
339
  });
340
340
  }