@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,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  listCommand
5
- } from "./chunk-SFMCYMVF.js";
5
+ } from "./chunk-D6AQNMUA.js";
6
6
  import {
7
7
  getErrorMessage as getErrorMessage2
8
- } from "./chunk-54TF2ZIQ.js";
8
+ } from "./chunk-6JXHO7LG.js";
9
9
  import {
10
10
  CUSTOM_SANDBOX_IMAGE_ENV_VAR
11
- } from "./chunk-4VZCORNT.js";
11
+ } from "./chunk-RXT4QBDX.js";
12
12
  import {
13
13
  isOwnInterfaceAddress
14
14
  } from "./chunk-24FVUD5P.js";
15
15
  import {
16
16
  serveCommand
17
- } from "./chunk-IKLFS6SC.js";
17
+ } from "./chunk-3YQMUBTS.js";
18
18
  import {
19
19
  OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
20
20
  ObservedChannelContactStore
@@ -58,12 +58,12 @@ import {
58
58
  } from "./chunk-Y53DG2HA.js";
59
59
  import {
60
60
  CLI_VERSION
61
- } from "./chunk-YCDL2SAS.js";
61
+ } from "./chunk-6QILGINT.js";
62
62
  import {
63
63
  collectProviderModelsForProtocol,
64
64
  getAuthTypeFromEnv,
65
65
  resolveCliGenerationConfig
66
- } from "./chunk-O2GG7H4C.js";
66
+ } from "./chunk-ARYNBBBM.js";
67
67
  import {
68
68
  resolveSkillSettings
69
69
  } from "./chunk-HWVUSYSN.js";
@@ -83,17 +83,17 @@ import {
83
83
  registerToolCallDispatch,
84
84
  selectFirstModel,
85
85
  sessionsPath
86
- } from "./chunk-IXSGOSEG.js";
86
+ } from "./chunk-DZ6D4B3K.js";
87
87
  import {
88
88
  getExtensionManager,
89
89
  requestChoicePluginNonInteractive,
90
90
  requestConsentNonInteractive,
91
91
  requestConsentOrFail,
92
92
  resolveExtensionCommandScope
93
- } from "./chunk-AHBLRVD5.js";
93
+ } from "./chunk-EEKU6COG.js";
94
94
  import {
95
95
  parseChannelConfig
96
- } from "./chunk-TMWB67LS.js";
96
+ } from "./chunk-UXDVUFKU.js";
97
97
  import {
98
98
  findCliEntryPath
99
99
  } from "./chunk-V6WHFGST.js";
@@ -103,7 +103,7 @@ import {
103
103
  clearAccount,
104
104
  loadAccount,
105
105
  saveAccount
106
- } from "./chunk-P4RUUG64.js";
106
+ } from "./chunk-45ROPFQY.js";
107
107
  import {
108
108
  canonicalizeWorkspace
109
109
  } from "./chunk-6PLDPT2C.js";
@@ -121,7 +121,7 @@ import {
121
121
  import {
122
122
  normalizeWorkerDiagnostic,
123
123
  sanitizeWorkerDiagnostic
124
- } from "./chunk-4JAGXZR3.js";
124
+ } from "./chunk-GM44O6F7.js";
125
125
  import {
126
126
  CHANNEL_DAEMON_WORKER_SENTINEL,
127
127
  CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
@@ -155,7 +155,7 @@ import {
155
155
  isChannelProactiveDeliveryError,
156
156
  sanitizeLogText,
157
157
  sanitizePromptText
158
- } from "./chunk-VDXYYVCD.js";
158
+ } from "./chunk-XVTCSVBK.js";
159
159
  import {
160
160
  CHANNEL_WORKER_KILL_GRACE_MS,
161
161
  CHANNEL_WORKER_STOP_GRACE_MS
@@ -171,53 +171,60 @@ import {
171
171
  assembleMcpServers,
172
172
  getPendingGatedMcpServers,
173
173
  mcpCommand
174
- } from "./chunk-DNPHKA72.js";
174
+ } from "./chunk-TGC4264Q.js";
175
175
  import {
176
176
  loadSettings
177
- } from "./chunk-AQ5NAGWI.js";
177
+ } from "./chunk-66JBCTJF.js";
178
178
  import {
179
179
  detectSystemLanguage,
180
180
  getCurrentLanguage,
181
181
  initializeI18n,
182
+ resolveLanguage,
182
183
  resolveLanguageSetting,
183
184
  t
184
- } from "./chunk-MUZCSTOO.js";
185
+ } from "./chunk-CRZBDVP2.js";
185
186
  import {
186
187
  isFileSourcedEnvKey,
187
188
  loadEnvironment
188
- } from "./chunk-H3UDNQLO.js";
189
+ } from "./chunk-5CVY5Q2P.js";
189
190
  import {
190
191
  resolveAcpChannelFallback,
191
192
  scrubAndReportInheritedLoaderEnv
192
- } from "./chunk-NUQFUXOG.js";
193
+ } from "./chunk-QTNCGZHQ.js";
193
194
  import {
194
195
  readPackageUpSync
195
196
  } from "./chunk-2EAZ43JQ.js";
196
197
  import {
197
198
  getCliVersion
198
- } from "./chunk-XUSOYE2I.js";
199
+ } from "./chunk-27LTEY6D.js";
199
200
  import {
200
201
  getPackageJson
201
202
  } from "./chunk-W3N5XAZ6.js";
202
203
  import {
203
204
  isWorkspaceTrusted
204
- } from "./chunk-XY3USGFE.js";
205
+ } from "./chunk-3VDLQUR2.js";
205
206
  import {
206
207
  require_strip_json_comments
207
208
  } from "./chunk-NPQ5ZKRP.js";
208
209
  import {
210
+ MAX_CONTROLLER_LABEL_CHARS,
209
211
  NativeLspClient,
210
212
  NativeLspService,
213
+ PeerControllerError,
211
214
  addChannelMemoryEntries,
215
+ addPeerController,
212
216
  clearChannelMemory,
213
217
  findOutputStyle,
214
218
  getChannelMemoryRevision,
219
+ getPeerControllerRegistryPath,
215
220
  listChannelMemoryEntries,
221
+ listPeerControllers,
216
222
  loadOutputStyleCatalog,
217
223
  readChannelMemory,
218
224
  removeChannelMemoryEntries,
225
+ removePeerController,
219
226
  updateChannelMemoryEntry
220
- } from "./chunk-UEZOXZNI.js";
227
+ } from "./chunk-ZU2T5JIS.js";
221
228
  import {
222
229
  hideBin,
223
230
  yargs_default
@@ -230,12 +237,13 @@ import {
230
237
  FINDING_SEVERITIES,
231
238
  FINDING_SOURCES,
232
239
  compressFindingSummary
233
- } from "./chunk-QMFOYPGV.js";
240
+ } from "./chunk-J3VZF2AL.js";
234
241
  import {
235
242
  Config,
236
243
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
237
244
  ExtensionManager,
238
245
  FileDiscoveryService,
246
+ GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP,
239
247
  GOAL_TOKEN_BUDGET_CAP,
240
248
  MAX_SUBAGENT_DEPTH_LIMIT,
241
249
  REVIEW_BUILTIN_SUBAGENT_TYPE,
@@ -257,7 +265,7 @@ import {
257
265
  sanitizeFilenameComponent,
258
266
  unquoteCStylePath,
259
267
  updateSetting
260
- } from "./chunk-I72PHOKL.js";
268
+ } from "./chunk-PDUMGZ2P.js";
261
269
  import {
262
270
  parsePositiveIntegerEnv
263
271
  } from "./chunk-6PVPNMXU.js";
@@ -267,7 +275,7 @@ import {
267
275
  } from "./chunk-IRH27ZC2.js";
268
276
  import {
269
277
  resolveBundleDir
270
- } from "./chunk-PZV2FASB.js";
278
+ } from "./chunk-TRWQQBVH.js";
271
279
  import {
272
280
  listLiveSessions
273
281
  } from "./chunk-B44JBZBB.js";
@@ -278,16 +286,16 @@ import {
278
286
  parseBooleanEnvFlag,
279
287
  require_dist,
280
288
  resolveTelemetrySettings
281
- } from "./chunk-R355CUNQ.js";
289
+ } from "./chunk-CLKE4IY3.js";
282
290
  import {
283
291
  BUILT_IN_OUTPUT_STYLES
284
- } from "./chunk-GXZHYPHZ.js";
292
+ } from "./chunk-3LPJ776W.js";
285
293
  import {
286
294
  addDaemonRequestAttribute
287
295
  } from "./chunk-7OCIQNKX.js";
288
296
  import {
289
297
  parseLineTolerant
290
- } from "./chunk-P5LDR7FI.js";
298
+ } from "./chunk-6QV7Z74P.js";
291
299
  import {
292
300
  getAllMemoryFilenames,
293
301
  setMemoryFilename
@@ -296,7 +304,7 @@ import {
296
304
  DEFAULT_QWEN_EMBEDDING_MODEL,
297
305
  VERTEX_ADC_HINT,
298
306
  hasVertexProjectConfigured
299
- } from "./chunk-5MTARK4Y.js";
307
+ } from "./chunk-N7YQEKGX.js";
300
308
  import {
301
309
  atomicWriteFileSync
302
310
  } from "./chunk-XFFRI3WM.js";
@@ -311,7 +319,7 @@ import {
311
319
  import {
312
320
  SchemaValidator,
313
321
  ToolNames
314
- } from "./chunk-RPBMP6BN.js";
322
+ } from "./chunk-MWIO7MF6.js";
315
323
  import {
316
324
  FatalConfigError,
317
325
  FatalSandboxError,
@@ -1645,6 +1653,30 @@ function validateGoalTokenBudget(value) {
1645
1653
  return value;
1646
1654
  }
1647
1655
  __name(validateGoalTokenBudget, "validateGoalTokenBudget");
1656
+ function validateGoalCheckpointTimeoutSeconds(value) {
1657
+ if (typeof value !== "number" || !Number.isFinite(value)) {
1658
+ throw new Error(
1659
+ `model.goalCheckpointTimeoutSeconds must be a finite number; got ${String(value)}.`
1660
+ );
1661
+ }
1662
+ if (!Number.isInteger(value)) {
1663
+ throw new Error(
1664
+ `model.goalCheckpointTimeoutSeconds must be an integer number of seconds; got ${value}.`
1665
+ );
1666
+ }
1667
+ if (value < 1) {
1668
+ throw new Error(
1669
+ `model.goalCheckpointTimeoutSeconds must be at least 1; got ${value}. Unset it to use the default.`
1670
+ );
1671
+ }
1672
+ if (value > GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP) {
1673
+ throw new Error(
1674
+ `model.goalCheckpointTimeoutSeconds ${value} exceeds the supported ceiling (${GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP}s, the default stream lifetime cap, past which the stream guard rather than this setting ends the call). This ceiling is fixed; raising QWEN_STREAM_MAX_LIFETIME_MS does not lift it.`
1675
+ );
1676
+ }
1677
+ return value;
1678
+ }
1679
+ __name(validateGoalCheckpointTimeoutSeconds, "validateGoalCheckpointTimeoutSeconds");
1648
1680
  var MAX_TOOL_CALLS = 1e6;
1649
1681
  function validateMaxToolCalls(value) {
1650
1682
  if (value === -1) return -1;
@@ -3022,6 +3054,9 @@ function createBridgeRecovery(options) {
3022
3054
  let recoverySourceBridge;
3023
3055
  const attachDisconnectHandler = /* @__PURE__ */ __name((failedBridge) => {
3024
3056
  failedBridge.on("disconnected", () => {
3057
+ for (const channel of channels.values()) {
3058
+ channel.onBridgeDisconnected();
3059
+ }
3025
3060
  if (isShuttingDown() || failedBridge !== getBridge()) return;
3026
3061
  if (recoveryTask) {
3027
3062
  if (failedBridge !== recoverySourceBridge) recoveryRequested = true;
@@ -3128,7 +3163,7 @@ function checkDuplicateInstance() {
3128
3163
  }
3129
3164
  }
3130
3165
  __name(checkDuplicateInstance, "checkDuplicateInstance");
3131
- async function startSingle(name, proxy, cronEnabled) {
3166
+ async function startSingle(name, proxy, cronEnabled, displayLanguage) {
3132
3167
  checkDuplicateInstance();
3133
3168
  const channelsConfig = loadChannelsConfig();
3134
3169
  await loadChannelsFromExtensions();
@@ -3176,6 +3211,7 @@ async function startSingle(name, proxy, cronEnabled) {
3176
3211
  const channel = await createChannel(name, config2, bridge, {
3177
3212
  router,
3178
3213
  proxy,
3214
+ ...displayLanguage ? { displayLanguage } : {},
3179
3215
  ...channelMemoryOptions(() => bridge, config2.cwd),
3180
3216
  ...loopController ? { loopController } : {},
3181
3217
  bridgeRecovery: bridgeReadiness.current
@@ -3263,7 +3299,7 @@ async function startSingle(name, proxy, cronEnabled) {
3263
3299
  });
3264
3300
  }
3265
3301
  __name(startSingle, "startSingle");
3266
- async function startAll(proxy, cronEnabled) {
3302
+ async function startAll(proxy, cronEnabled, displayLanguage) {
3267
3303
  checkDuplicateInstance();
3268
3304
  const channelsConfig = loadChannelsConfig();
3269
3305
  await loadChannelsFromExtensions();
@@ -3316,6 +3352,7 @@ async function startAll(proxy, cronEnabled) {
3316
3352
  await createChannel(name, config2, bridge, {
3317
3353
  router,
3318
3354
  proxy,
3355
+ ...displayLanguage ? { displayLanguage } : {},
3319
3356
  ...channelMemoryOptions(() => bridge, config2.cwd),
3320
3357
  ...loopController ? { loopController } : {},
3321
3358
  bridgeRecovery: bridgeReadiness.current
@@ -3437,10 +3474,15 @@ var startCommand = {
3437
3474
  settings.merged.proxy
3438
3475
  );
3439
3476
  const cronEnabled = isChannelCronEnabled(settings);
3477
+ const displayLanguage = resolveLanguage(
3478
+ resolveLanguageSetting(
3479
+ settings.merged.general?.language
3480
+ )
3481
+ );
3440
3482
  if (argv.name) {
3441
- await startSingle(argv.name, proxy, cronEnabled);
3483
+ await startSingle(argv.name, proxy, cronEnabled, displayLanguage);
3442
3484
  } else {
3443
- await startAll(proxy, cronEnabled);
3485
+ await startAll(proxy, cronEnabled, displayLanguage);
3444
3486
  }
3445
3487
  }, "handler")
3446
3488
  };
@@ -3461,7 +3503,7 @@ var stopCommand = {
3461
3503
  if (argv["daemon-url"]) {
3462
3504
  const token = argv.token ?? process.env[QWEN_SERVER_TOKEN_ENV] ?? process.env[QWEN_DAEMON_TOKEN_ENV];
3463
3505
  try {
3464
- const sdk = await import("./daemon-LCUELM6E.js");
3506
+ const sdk = await import("./daemon-UI6SQSBV.js");
3465
3507
  const client = new sdk.DaemonClient({
3466
3508
  baseUrl: argv["daemon-url"],
3467
3509
  ...token ? { token } : {}
@@ -3647,7 +3689,7 @@ var statusCommand = {
3647
3689
  if (argv["daemon-url"]) {
3648
3690
  const token = argv.token ?? process.env[QWEN_SERVER_TOKEN_ENV] ?? process.env[QWEN_DAEMON_TOKEN_ENV];
3649
3691
  try {
3650
- const sdk = await import("./daemon-LCUELM6E.js");
3692
+ const sdk = await import("./daemon-UI6SQSBV.js");
3651
3693
  const client = new sdk.DaemonClient({
3652
3694
  baseUrl: argv["daemon-url"],
3653
3695
  ...token ? { token } : {}
@@ -3758,7 +3800,7 @@ var reloadCommand = {
3758
3800
  const token = resolveToken(argv.token);
3759
3801
  let sdk;
3760
3802
  try {
3761
- sdk = await import("./daemon-LCUELM6E.js");
3803
+ sdk = await import("./daemon-UI6SQSBV.js");
3762
3804
  } catch (err) {
3763
3805
  writeStderrLine(
3764
3806
  `[Channel] Failed to load daemon SDK: ${safeChannelCommandErrorMessage(err)}`
@@ -3838,7 +3880,7 @@ var setCommand2 = {
3838
3880
  const selection = names[0] === "all" ? { mode: "all" } : { mode: "names", names };
3839
3881
  let sdk;
3840
3882
  try {
3841
- sdk = await import("./daemon-LCUELM6E.js");
3883
+ sdk = await import("./daemon-UI6SQSBV.js");
3842
3884
  } catch (error) {
3843
3885
  writeStderrLine(
3844
3886
  `[Channel] Failed to load daemon SDK: ${safeChannelCommandErrorMessage(error)}`
@@ -3892,6 +3934,7 @@ var SESSION_ATTACHMENTS_FEATURE = "session_attachments";
3892
3934
  var SESSION_BTW_FEATURE = "session_btw";
3893
3935
  var SESSION_PERMISSION_VOTE_FEATURE = "session_permission_vote";
3894
3936
  var SESSION_WORKTREE_PERSISTENCE_FEATURE = "session_worktree_persistence_v1";
3937
+ var SESSION_WORKTREE_RESET_FEATURE = "session_worktree_reset_v1";
3895
3938
  var MAX_ACTIVE_WEBHOOK_TASKS = 16;
3896
3939
  var WORKER_CHANNEL_DISCONNECT_DRAIN_MS = CHANNEL_WORKER_STOP_GRACE_MS - CHANNEL_WORKER_KILL_GRACE_MS;
3897
3940
  var WORKER_STARTUP_ROLLBACK_DRAIN_MS = 1500;
@@ -3926,6 +3969,13 @@ function createDaemonSessionFactory({
3926
3969
  // (dingtalk/feishu) is derivable from the name via the channel config.
3927
3970
  ...req.sourceId ? { sourceId: req.sourceId } : {}
3928
3971
  };
3972
+ if (req.worktreeReset) {
3973
+ return await DaemonSessionClient.resetWorktree(
3974
+ client,
3975
+ req.worktreeReset.sessionId,
3976
+ daemonReq
3977
+ );
3978
+ }
3929
3979
  if (req.sessionId) {
3930
3980
  return await DaemonSessionClient.resume(
3931
3981
  client,
@@ -3978,6 +4028,9 @@ function createDaemonChannelBridgeFacade(bridge, opts) {
3978
4028
  if (bridge.listSessions) {
3979
4029
  facade.listSessions = bridge.listSessions.bind(bridge);
3980
4030
  }
4031
+ if (bridge.resetWorktreeSession) {
4032
+ facade.resetWorktreeSession = bridge.resetWorktreeSession.bind(bridge);
4033
+ }
3981
4034
  if (bridge.registerChannelLoopToolHandler) {
3982
4035
  facade.registerChannelLoopToolHandler = bridge.registerChannelLoopToolHandler.bind(bridge);
3983
4036
  }
@@ -3985,7 +4038,7 @@ function createDaemonChannelBridgeFacade(bridge, opts) {
3985
4038
  }
3986
4039
  __name(createDaemonChannelBridgeFacade, "createDaemonChannelBridgeFacade");
3987
4040
  async function loadDaemonSdk() {
3988
- return await import("./daemon-LCUELM6E.js");
4041
+ return await import("./daemon-UI6SQSBV.js");
3989
4042
  }
3990
4043
  __name(loadDaemonSdk, "loadDaemonSdk");
3991
4044
  function selectedChannelNames(channelsConfig, selection) {
@@ -4142,6 +4195,11 @@ async function runChannelDaemonWorker(opts) {
4142
4195
  void 0,
4143
4196
  settings.merged.proxy
4144
4197
  );
4198
+ const displayLanguage = resolveLanguage(
4199
+ resolveLanguageSetting(
4200
+ settings.merged.general?.language
4201
+ )
4202
+ );
4145
4203
  const channelsConfig = loadChannelsConfig(daemonWorkspace, settings);
4146
4204
  const names = selectedChannelNames(channelsConfig, opts.selection);
4147
4205
  const parsed = await abortableStartup(
@@ -4191,6 +4249,9 @@ async function runChannelDaemonWorker(opts) {
4191
4249
  sessionWorktreePersistence: capabilities.features.includes(
4192
4250
  SESSION_WORKTREE_PERSISTENCE_FEATURE
4193
4251
  ),
4252
+ sessionWorktreeReset: capabilities.features.includes(
4253
+ SESSION_WORKTREE_RESET_FEATURE
4254
+ ),
4194
4255
  ...opts.promptAuthorization ? { promptAuthorization: opts.promptAuthorization } : {},
4195
4256
  deleteSessionData: /* @__PURE__ */ __name(async (sessionId) => {
4196
4257
  const workspaceClient = client.workspaceByCwd?.(daemonWorkspace);
@@ -4251,6 +4312,7 @@ async function runChannelDaemonWorker(opts) {
4251
4312
  await abortableStartup(
4252
4313
  createChannel(name, config2, bridgeFacade, {
4253
4314
  ...proxy ? { proxy } : {},
4315
+ ...displayLanguage ? { displayLanguage } : {},
4254
4316
  router: createdRouter,
4255
4317
  stateDir: daemonChannelStateDir(daemonWorkspace, name),
4256
4318
  channelMemory: {
@@ -4304,7 +4366,7 @@ async function runChannelDaemonWorker(opts) {
4304
4366
  `[Channel] Failed to connect "${safeName}": ${safeMessage}`
4305
4367
  );
4306
4368
  try {
4307
- channel.disconnect();
4369
+ await channel.disconnect();
4308
4370
  } catch {
4309
4371
  }
4310
4372
  connectFailureCount += 1;
@@ -43065,6 +43127,185 @@ var reviewCommand = {
43065
43127
  // packages/cli/src/commands/sessions.ts
43066
43128
  init_esbuild_shims();
43067
43129
 
43130
+ // packages/cli/src/commands/sessions/controllers.ts
43131
+ init_esbuild_shims();
43132
+ var ID_COL = 12;
43133
+ var LABEL_COL = MAX_CONTROLLER_LABEL_CHARS * 2 + 2;
43134
+ function sanitize(value) {
43135
+ return sanitizeTerminalText(value).replace(/[\t\n]/g, "");
43136
+ }
43137
+ __name(sanitize, "sanitize");
43138
+ function padDisplay(str, width) {
43139
+ const currentWidth = stringWidth(str);
43140
+ if (currentWidth >= width) return str;
43141
+ return str + " ".repeat(width - currentWidth);
43142
+ }
43143
+ __name(padDisplay, "padDisplay");
43144
+ function formatCreated(createdAt) {
43145
+ const date = new Date(createdAt);
43146
+ return Number.isNaN(date.getTime()) ? "unknown" : date.toISOString().replace("T", " ").slice(0, 16);
43147
+ }
43148
+ __name(formatCreated, "formatCreated");
43149
+ function describeError(error) {
43150
+ return error instanceof Error ? error.message : String(error);
43151
+ }
43152
+ __name(describeError, "describeError");
43153
+ async function handleAdd(argv) {
43154
+ let added;
43155
+ try {
43156
+ added = await addPeerController(argv.label ?? "");
43157
+ } catch (error) {
43158
+ writeStderrLine(
43159
+ error instanceof PeerControllerError ? `Error: ${error.message}` : `Error: could not write ${getPeerControllerRegistryPath()}: ${describeError(error)}`
43160
+ );
43161
+ process.exit(1);
43162
+ return;
43163
+ }
43164
+ const { record, token } = added;
43165
+ if (argv.json) {
43166
+ writeStdoutLine(
43167
+ JSON.stringify({
43168
+ id: record.id,
43169
+ label: record.label,
43170
+ token,
43171
+ createdAt: record.createdAt
43172
+ })
43173
+ );
43174
+ return;
43175
+ }
43176
+ writeStdoutLine(
43177
+ `Controller "${sanitize(record.label)}" added (${record.id}).`
43178
+ );
43179
+ writeStdoutLine("");
43180
+ writeStdoutLine(
43181
+ "Token \u2014 shown once and never stored, so put it in the controller's own configuration now:"
43182
+ );
43183
+ writeStdoutLine(` ${token}`);
43184
+ writeStdoutLine("");
43185
+ writeStdoutLine(
43186
+ "The controller presents it on the first line of every connection to a session inbox:"
43187
+ );
43188
+ writeStdoutLine(` {"msgV":1,"type":"auth","token":"${token}"}`);
43189
+ writeStdoutLine(
43190
+ "The target session must have agents.crossSessionMessaging enabled and be restarted after enabling it."
43191
+ );
43192
+ writeStdoutLine(
43193
+ 'Messages it sends are delivered without per-message review, unless agents.crossSessionInbound is "hold" or "refuse".'
43194
+ );
43195
+ }
43196
+ __name(handleAdd, "handleAdd");
43197
+ async function handleControllerList(argv) {
43198
+ let records;
43199
+ try {
43200
+ records = await listPeerControllers();
43201
+ } catch (error) {
43202
+ writeStderrLine(
43203
+ error instanceof PeerControllerError ? `Error: ${error.message}` : `Error: could not read ${getPeerControllerRegistryPath()}: ${describeError(error)}`
43204
+ );
43205
+ process.exit(1);
43206
+ return;
43207
+ }
43208
+ if (argv.json) {
43209
+ for (const record of records) {
43210
+ writeStdoutLine(
43211
+ JSON.stringify({
43212
+ id: record.id,
43213
+ label: record.label,
43214
+ createdAt: record.createdAt
43215
+ })
43216
+ );
43217
+ }
43218
+ return;
43219
+ }
43220
+ if (records.length === 0) {
43221
+ writeStdoutLine(
43222
+ "No trusted controllers. Add one with: qwen sessions controllers add --label <name>"
43223
+ );
43224
+ return;
43225
+ }
43226
+ writeStdoutLine(
43227
+ padDisplay("ID", ID_COL) + padDisplay("LABEL", LABEL_COL) + "CREATED"
43228
+ );
43229
+ for (const record of records) {
43230
+ writeStdoutLine(
43231
+ padDisplay(record.id, ID_COL) + padDisplay(
43232
+ truncateToWidth(sanitize(record.label), LABEL_COL - 2),
43233
+ LABEL_COL
43234
+ ) + formatCreated(record.createdAt)
43235
+ );
43236
+ }
43237
+ }
43238
+ __name(handleControllerList, "handleControllerList");
43239
+ async function handleRemove(argv) {
43240
+ let removed;
43241
+ try {
43242
+ removed = await removePeerController(argv.id ?? "");
43243
+ } catch (error) {
43244
+ writeStderrLine(
43245
+ error instanceof PeerControllerError ? `Error: ${error.message}` : `Error: could not write ${getPeerControllerRegistryPath()}: ${describeError(error)}`
43246
+ );
43247
+ process.exit(1);
43248
+ return;
43249
+ }
43250
+ if (!removed) {
43251
+ writeStderrLine(
43252
+ `Error: no controller has the id "${sanitize(argv.id ?? "")}". Run "qwen sessions controllers list" to see them.`
43253
+ );
43254
+ process.exit(1);
43255
+ return;
43256
+ }
43257
+ writeStdoutLine(
43258
+ `Removed controller "${sanitize(removed.label)}" (${removed.id}).`
43259
+ );
43260
+ writeStdoutLine(
43261
+ "Running sessions stop accepting its token on the next connection."
43262
+ );
43263
+ }
43264
+ __name(handleRemove, "handleRemove");
43265
+ var controllersCommand = {
43266
+ command: "controllers",
43267
+ describe: "Manage the controller tokens that may drive your sessions",
43268
+ builder: /* @__PURE__ */ __name((yargs) => yargs.command({
43269
+ command: "add",
43270
+ describe: "Mint a controller token and print it once",
43271
+ builder: /* @__PURE__ */ __name((add) => add.option("label", {
43272
+ type: "string",
43273
+ describe: "What to call this controller, for later revocation",
43274
+ demandOption: true
43275
+ }).option("json", {
43276
+ type: "boolean",
43277
+ describe: "Output as a single JSON object",
43278
+ default: false
43279
+ }), "builder"),
43280
+ handler: /* @__PURE__ */ __name(async (argv) => {
43281
+ await handleAdd(argv);
43282
+ }, "handler")
43283
+ }).command({
43284
+ command: "list",
43285
+ describe: "List the controllers this Qwen home trusts",
43286
+ builder: /* @__PURE__ */ __name((list2) => list2.option("json", {
43287
+ type: "boolean",
43288
+ describe: "Output as JSON Lines",
43289
+ default: false
43290
+ }), "builder"),
43291
+ handler: /* @__PURE__ */ __name(async (argv) => {
43292
+ await handleControllerList(argv);
43293
+ }, "handler")
43294
+ }).command({
43295
+ command: "remove <id>",
43296
+ describe: "Revoke a controller by id",
43297
+ builder: /* @__PURE__ */ __name((remove) => remove.positional("id", {
43298
+ type: "string",
43299
+ describe: 'The id shown by "qwen sessions controllers list"'
43300
+ }), "builder"),
43301
+ handler: /* @__PURE__ */ __name(async (argv) => {
43302
+ await handleRemove(argv);
43303
+ }, "handler")
43304
+ }).demandCommand(1, "You need at least one command before continuing.").version(false), "builder"),
43305
+ handler: /* @__PURE__ */ __name(() => {
43306
+ }, "handler")
43307
+ };
43308
+
43068
43309
  // packages/cli/src/commands/sessions/list.ts
43069
43310
  init_esbuild_shims();
43070
43311
 
@@ -43092,18 +43333,18 @@ function formatTime(iso) {
43092
43333
  return `${d.getUTCFullYear()}-${pad(d.getUTCMonth() + 1)}-${pad(d.getUTCDate())} ${pad(d.getUTCHours())}:${pad(d.getUTCMinutes())}`;
43093
43334
  }
43094
43335
  __name(formatTime, "formatTime");
43095
- function sanitize(value) {
43336
+ function sanitize2(value) {
43096
43337
  const stripped = value.replace(/[\r\n\t]/g, "");
43097
43338
  const escaped = escapeAnsiCtrlCodes(stripped);
43098
43339
  return escaped.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]/g, "");
43099
43340
  }
43100
- __name(sanitize, "sanitize");
43101
- function padDisplay(str, width) {
43341
+ __name(sanitize2, "sanitize");
43342
+ function padDisplay2(str, width) {
43102
43343
  const currentWidth = stringWidth(str);
43103
43344
  if (currentWidth >= width) return str;
43104
43345
  return str + " ".repeat(width - currentWidth);
43105
43346
  }
43106
- __name(padDisplay, "padDisplay");
43347
+ __name(padDisplay2, "padDisplay");
43107
43348
  function truncate(str, maxLen) {
43108
43349
  const width = stringWidth(str);
43109
43350
  if (width <= maxLen) return str;
@@ -43129,26 +43370,26 @@ function outputHuman(items) {
43129
43370
  20,
43130
43371
  termWidth - SESSION_COL - TIME_COL - TITLE_COL - BRANCH_COL - 4
43131
43372
  );
43132
- const header = padDisplay("SESSION ID", SESSION_COL) + " " + padDisplay("STARTED", TIME_COL) + " " + padDisplay("TITLE", TITLE_COL) + " " + padDisplay("BRANCH", BRANCH_COL) + " PROMPT";
43373
+ const header = padDisplay2("SESSION ID", SESSION_COL) + " " + padDisplay2("STARTED", TIME_COL) + " " + padDisplay2("TITLE", TITLE_COL) + " " + padDisplay2("BRANCH", BRANCH_COL) + " PROMPT";
43133
43374
  writeStdoutLine(header);
43134
43375
  for (const item of items) {
43135
43376
  const sessionId = truncate(
43136
- sanitize(String(item.sessionId ?? "")),
43377
+ sanitize2(String(item.sessionId ?? "")),
43137
43378
  SESSION_COL
43138
43379
  );
43139
- const time = truncate(sanitize(formatTime(item.startTime)), TIME_COL);
43140
- const sanitizedPrompt = sanitize(item.prompt ?? "");
43380
+ const time = truncate(sanitize2(formatTime(item.startTime)), TIME_COL);
43381
+ const sanitizedPrompt = sanitize2(item.prompt ?? "");
43141
43382
  const title = truncate(
43142
- item.customTitle != null ? sanitize(item.customTitle) : sanitizedPrompt,
43383
+ item.customTitle != null ? sanitize2(item.customTitle) : sanitizedPrompt,
43143
43384
  TITLE_COL
43144
43385
  );
43145
43386
  const branch = truncate(
43146
- item.gitBranch != null ? sanitize(item.gitBranch) : "-",
43387
+ item.gitBranch != null ? sanitize2(item.gitBranch) : "-",
43147
43388
  BRANCH_COL
43148
43389
  );
43149
43390
  const prompt = truncate(sanitizedPrompt, PROMPT_COL);
43150
43391
  writeStdoutLine(
43151
- `${padDisplay(sessionId, SESSION_COL)} ${padDisplay(time, TIME_COL)} ${padDisplay(title, TITLE_COL)} ${padDisplay(branch, BRANCH_COL)} ${prompt}`
43392
+ `${padDisplay2(sessionId, SESSION_COL)} ${padDisplay2(time, TIME_COL)} ${padDisplay2(title, TITLE_COL)} ${padDisplay2(branch, BRANCH_COL)} ${prompt}`
43152
43393
  );
43153
43394
  }
43154
43395
  }
@@ -43234,16 +43475,16 @@ init_esbuild_shims();
43234
43475
  var NAME_COL = 22;
43235
43476
  var PID_COL = 9;
43236
43477
  var AGE_COL = 10;
43237
- function sanitize2(value) {
43478
+ function sanitize3(value) {
43238
43479
  return sanitizeTerminalText(value).replace(/[\t\n]/g, "");
43239
43480
  }
43240
- __name(sanitize2, "sanitize");
43241
- function padDisplay2(str, width) {
43481
+ __name(sanitize3, "sanitize");
43482
+ function padDisplay3(str, width) {
43242
43483
  const currentWidth = stringWidth(str);
43243
43484
  if (currentWidth >= width) return str;
43244
43485
  return str + " ".repeat(width - currentWidth);
43245
43486
  }
43246
- __name(padDisplay2, "padDisplay");
43487
+ __name(padDisplay3, "padDisplay");
43247
43488
  function formatAge(ms) {
43248
43489
  const seconds = Math.max(0, Math.floor(ms / 1e3));
43249
43490
  if (seconds < 60) return `${seconds}s`;
@@ -43256,14 +43497,14 @@ function formatAge(ms) {
43256
43497
  __name(formatAge, "formatAge");
43257
43498
  function outputHuman2(records, now) {
43258
43499
  writeStdoutLine(
43259
- padDisplay2("NAME", NAME_COL) + padDisplay2("PID", PID_COL) + padDisplay2("AGE", AGE_COL) + "DIRECTORY"
43500
+ padDisplay3("NAME", NAME_COL) + padDisplay3("PID", PID_COL) + padDisplay3("AGE", AGE_COL) + "DIRECTORY"
43260
43501
  );
43261
43502
  for (const record of records) {
43262
43503
  writeStdoutLine(
43263
- padDisplay2(
43264
- truncateToWidth(sanitize2(record.name), NAME_COL - 2),
43504
+ padDisplay3(
43505
+ truncateToWidth(sanitize3(record.name), NAME_COL - 2),
43265
43506
  NAME_COL
43266
- ) + padDisplay2(String(record.pid), PID_COL) + padDisplay2(formatAge(now - record.startedAt), AGE_COL) + sanitize2(record.cwd)
43507
+ ) + padDisplay3(String(record.pid), PID_COL) + padDisplay3(formatAge(now - record.startedAt), AGE_COL) + sanitize3(record.cwd)
43267
43508
  );
43268
43509
  }
43269
43510
  }
@@ -43301,7 +43542,7 @@ var psCommand = {
43301
43542
  var sessionsCommand = {
43302
43543
  command: "sessions",
43303
43544
  describe: "Manage Qwen Code sessions",
43304
- builder: /* @__PURE__ */ __name((yargs) => yargs.command(listCommand4).command(psCommand).demandCommand(1, "You need at least one command before continuing.").version(false), "builder"),
43545
+ builder: /* @__PURE__ */ __name((yargs) => yargs.command(listCommand4).command(psCommand).command(controllersCommand).demandCommand(1, "You need at least one command before continuing.").version(false), "builder"),
43305
43546
  // demandCommand(1) ensures a subcommand is always required;
43306
43547
  // yargs automatically shows help when none is provided.
43307
43548
  handler: /* @__PURE__ */ __name(() => {
@@ -43324,10 +43565,10 @@ var updateCommand3 = {
43324
43565
  stdioHelpers,
43325
43566
  { updateEventEmitter }
43326
43567
  ] = await Promise.all([
43327
- import("./settings-VXO4WBMK.js"),
43328
- import("./updateCheck-W6UZFURI.js"),
43329
- import("./installationInfo-542MGC4S.js"),
43330
- import("./standalone-update-ZWVQUO64.js"),
43568
+ import("./settings-A46L577J.js"),
43569
+ import("./updateCheck-WAVFLWNG.js"),
43570
+ import("./installationInfo-232RA2OK.js"),
43571
+ import("./standalone-update-L46XXNQ2.js"),
43331
43572
  import("./stdioHelpers-AY6XCDY2.js"),
43332
43573
  import("./updateEventEmitter-5MKC7BLQ.js")
43333
43574
  ]);
@@ -43874,6 +44115,16 @@ function resolveGoalTokenBudget(settings) {
43874
44115
  }
43875
44116
  }
43876
44117
  __name(resolveGoalTokenBudget, "resolveGoalTokenBudget");
44118
+ function resolveGoalCheckpointTimeoutSeconds(settings) {
44119
+ const fromSettings = settings.model?.goalCheckpointTimeoutSeconds;
44120
+ if (fromSettings === void 0) return void 0;
44121
+ try {
44122
+ return validateGoalCheckpointTimeoutSeconds(fromSettings);
44123
+ } catch (err) {
44124
+ throw new Error(`settings.json: ${err.message}`);
44125
+ }
44126
+ }
44127
+ __name(resolveGoalCheckpointTimeoutSeconds, "resolveGoalCheckpointTimeoutSeconds");
43877
44128
  function resolveMaxToolCalls(argv, settings) {
43878
44129
  if (argv.maxToolCalls !== void 0 && argv.maxToolCalls !== null) {
43879
44130
  try {
@@ -44421,7 +44672,7 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
44421
44672
  disabledSkillNamesProvider: bareMode || safeMode ? void 0 : disabledSkillNamesProvider,
44422
44673
  enabledSkillNamesProvider: bareMode || safeMode ? void 0 : enabledSkillNamesProvider,
44423
44674
  terminalImageRenderSupportProvider: interactive ? async () => {
44424
- const { getTerminalImageRenderSupport } = await import("./terminal-image-renderer-WGWRENOF.js");
44675
+ const { getTerminalImageRenderSupport } = await import("./terminal-image-renderer-OGULCFNF.js");
44425
44676
  return getTerminalImageRenderSupport();
44426
44677
  } : void 0,
44427
44678
  disabledSkillLevels: bareMode || safeMode || !Array.isArray(settings.skills?.disabledLevels) ? void 0 : settings.skills.disabledLevels.filter(isSkillLevel),
@@ -44488,6 +44739,7 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
44488
44739
  sessionTokenLimit: settings.model?.sessionTokenLimit ?? -1,
44489
44740
  maxSessionTurns: argv.maxSessionTurns ?? settings.model?.maxSessionTurns ?? -1,
44490
44741
  goalTokenBudget: resolveGoalTokenBudget(settings),
44742
+ goalCheckpointTimeoutSeconds: resolveGoalCheckpointTimeoutSeconds(settings),
44491
44743
  maxWallTimeSeconds: resolveMaxWallTimeSeconds(argv, settings),
44492
44744
  maxToolCalls: resolveMaxToolCalls(argv, settings),
44493
44745
  // Undefined flows through to Config's default (5) and clamp logic.