@qwen-code/qwen-code 0.23.1-preview.2 → 0.23.2-nightly.20260909.2e212144d3

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 (335) hide show
  1. package/README.md +35 -15
  2. package/bundled/computer-use/SKILL.md +189 -116
  3. package/bundled/goal-draft/SKILL.md +23 -13
  4. package/bundled/qc-helper/docs/_meta.ts +1 -0
  5. package/bundled/qc-helper/docs/configuration/auth.md +1 -1
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +66 -16
  7. package/bundled/qc-helper/docs/configuration/settings.md +50 -0
  8. package/bundled/qc-helper/docs/conversations-recovery.md +102 -0
  9. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  10. package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
  11. package/bundled/qc-helper/docs/features/channels/github.md +1 -9
  12. package/bundled/qc-helper/docs/features/channels/overview.md +27 -52
  13. package/bundled/qc-helper/docs/features/channels/qqbot.md +1 -2
  14. package/bundled/qc-helper/docs/features/commands.md +79 -17
  15. package/bundled/qc-helper/docs/features/computer-use.md +9 -7
  16. package/bundled/qc-helper/docs/features/cross-session-protocol.md +291 -0
  17. package/bundled/qc-helper/docs/features/followup-suggestions.md +2 -2
  18. package/bundled/qc-helper/docs/features/goals.md +17 -3
  19. package/bundled/qc-helper/docs/features/sub-agents.md +8 -0
  20. package/bundled/qc-helper/docs/qwen-serve.md +80 -48
  21. package/chunks/{MaxSizedBox-IYIQ43IZ.js → MaxSizedBox-ZBGWYJZW.js} +29 -28
  22. package/chunks/{StandaloneSessionPicker-AWB2OHX6.js → StandaloneSessionPicker-NR5ACIJZ.js} +48 -47
  23. package/chunks/{acp-startup-profiler-BAL4LJTN.js → acp-startup-profiler-KEU6VAYR.js} +2 -2
  24. package/chunks/{acpAgent-ZC57OLS4.js → acpAgent-DM6XRCDQ.js} +361 -210
  25. package/chunks/{agent-GEBPAEJS.js → agent-EF3IIYE3.js} +20 -20
  26. package/chunks/{agent-headless-63ZEYAJK.js → agent-headless-5J2KFYR4.js} +20 -20
  27. package/chunks/{anthropicContentGenerator-6XDHXIII.js → anthropicContentGenerator-VIW2FG7G.js} +32 -9
  28. package/chunks/{artifact-tool-P52OKKEF.js → artifact-tool-G5LHNECG.js} +1 -1
  29. package/chunks/{askUserQuestion-3KAYLLMM.js → askUserQuestion-R3TXY77M.js} +1 -1
  30. package/chunks/{bridge-MHWO5I5T.js → bridge-LEMQM6QE.js} +32 -31
  31. package/chunks/{channel-management-service-NFRZXQFO.js → channel-management-service-TGF6XFXT.js} +4 -4
  32. package/chunks/{channel-settings-store-T7PMIHKC.js → channel-settings-store-FV365JSF.js} +40 -39
  33. package/chunks/{channel-worker-group-O2BWK5F7.js → channel-worker-group-SQ5FRWOH.js} +7 -7
  34. package/chunks/{channel-worker-manager-4WP7VJOD.js → channel-worker-manager-TU4ZNWOE.js} +7 -7
  35. package/chunks/{channel-worker-supervisor-CCUXD6J5.js → channel-worker-supervisor-EMITFMCP.js} +4 -4
  36. package/chunks/{chunk-3SH53ANB.js → chunk-22GORRNY.js} +12 -0
  37. package/chunks/{chunk-OFB36ZBA.js → chunk-2HYOOFDS.js} +10 -7
  38. package/chunks/chunk-2Z3T52OC.js +82 -0
  39. package/chunks/{chunk-LYHYXJJ3.js → chunk-34VPADLG.js} +3 -3
  40. package/chunks/{chunk-C7M445SS.js → chunk-3A2IMUDH.js} +14 -2
  41. package/chunks/{chunk-P5Z7VD23.js → chunk-3O77M472.js} +294 -87
  42. package/chunks/{chunk-4OCYWXKF.js → chunk-43EUMPKQ.js} +3 -3
  43. package/chunks/{chunk-W4LL5RZO.js → chunk-4ALNJDHL.js} +52 -13
  44. package/chunks/{chunk-VMFPZXRT.js → chunk-4DIMJKWU.js} +64 -43
  45. package/chunks/{chunk-ZRVFHLLK.js → chunk-5DQ4YTIZ.js} +1 -1
  46. package/chunks/{chunk-VYCJITND.js → chunk-5HV2HPO7.js} +1 -1
  47. package/chunks/{chunk-22QOQKG4.js → chunk-5WBA3DEF.js} +1 -1
  48. package/chunks/{chunk-3K65MUKD.js → chunk-65I7S4Z3.js} +2 -1
  49. package/chunks/{chunk-I7UNCY24.js → chunk-6GAYNM3F.js} +3 -3
  50. package/chunks/{chunk-2C3XDBGL.js → chunk-6S7YYUUH.js} +4 -4
  51. package/chunks/{chunk-Y3C5COGI.js → chunk-6VIATHL7.js} +1 -1
  52. package/chunks/{chunk-XNC2TCUO.js → chunk-76I36BEM.js} +4 -4
  53. package/chunks/{chunk-B54PFQS5.js → chunk-7CLLH5TI.js} +1 -1
  54. package/chunks/{chunk-RGAQDQ3Z.js → chunk-7IDZFJAV.js} +18 -9
  55. package/chunks/{chunk-5Z4FCEPY.js → chunk-7K4GGN3D.js} +606 -109
  56. package/chunks/{chunk-WLZRMF3C.js → chunk-7KZVXJ4U.js} +353 -11
  57. package/chunks/{chunk-REDVV5NC.js → chunk-7WCJEY3A.js} +7 -7
  58. package/chunks/{chunk-I67KJGM6.js → chunk-A7QZIGRB.js} +3 -3
  59. package/chunks/{chunk-SHX2HIE7.js → chunk-ATBLEXXV.js} +7 -2
  60. package/chunks/{chunk-RH344FKI.js → chunk-AUTUFD5X.js} +1 -1
  61. package/chunks/chunk-AXMWHKXA.js +42 -0
  62. package/chunks/{chunk-WFXD5OZH.js → chunk-AXWTG6R7.js} +2 -5
  63. package/chunks/{chunk-TSLRORQR.js → chunk-BDAVT6K2.js} +1809 -1588
  64. package/chunks/{chunk-HWZOOSEB.js → chunk-BDP3NTWD.js} +3 -3
  65. package/chunks/{chunk-RD3VPM4E.js → chunk-BZUHZCUO.js} +2 -2
  66. package/chunks/{chunk-HPE4LEWX.js → chunk-C24ZDDNY.js} +1 -1
  67. package/chunks/{chunk-R7TKFIQO.js → chunk-CALNF3Z3.js} +1 -1
  68. package/chunks/{chunk-RPFJJ33Z.js → chunk-CALTQWTZ.js} +1 -1
  69. package/chunks/{chunk-BF3RUIVP.js → chunk-CH2YDT6X.js} +36 -38
  70. package/chunks/{chunk-LD53HMPV.js → chunk-CRZBDVP2.js} +1 -0
  71. package/chunks/{chunk-GEV66YGE.js → chunk-D6AGS266.js} +1 -1
  72. package/chunks/{chunk-EPZWBYQI.js → chunk-D7DFZAK2.js} +19 -11
  73. package/chunks/{chunk-5V4B3EWA.js → chunk-DARWOZY6.js} +1 -1
  74. package/chunks/{chunk-XX4MBBFW.js → chunk-DGNRLJ6S.js} +4 -4
  75. package/chunks/{chunk-UTVIIA7N.js → chunk-DVOCOIS5.js} +1 -1
  76. package/chunks/{chunk-RQNAO42A.js → chunk-E4LXNQAK.js} +1 -1
  77. package/chunks/{chunk-EGRFCIXD.js → chunk-EATP5QCN.js} +84 -25
  78. package/chunks/{chunk-3RMVM33U.js → chunk-EDSU3VUG.js} +12 -5
  79. package/chunks/{chunk-733KQL63.js → chunk-EE5ZD4XU.js} +3 -3
  80. package/chunks/{chunk-QQGAR64U.js → chunk-EN3Q2S3J.js} +4 -4
  81. package/chunks/{chunk-PLUAIHZO.js → chunk-EOLGAQ25.js} +17 -16
  82. package/chunks/{chunk-37SOBIA3.js → chunk-ERXNTINK.js} +1 -1
  83. package/chunks/{chunk-L36LLVA5.js → chunk-EYCW6UF2.js} +7 -7
  84. package/chunks/{chunk-ZELCTN6Y.js → chunk-F23YN37B.js} +10 -0
  85. package/chunks/{chunk-FPGTNKCP.js → chunk-F3M6P6IQ.js} +199 -1
  86. package/chunks/{chunk-B44JBZBB.js → chunk-F4SAL7WM.js} +91 -3
  87. package/chunks/{chunk-F47DITLZ.js → chunk-FAWTMDX7.js} +14 -0
  88. package/chunks/{chunk-SI6Q52UI.js → chunk-FEEVHJOR.js} +3 -3
  89. package/chunks/{chunk-75UQFGFE.js → chunk-FN4KHWCL.js} +1 -1
  90. package/chunks/{chunk-WQBR7LN5.js → chunk-FRS3P7MQ.js} +15 -2
  91. package/chunks/{chunk-5JLQWQK6.js → chunk-FV4DM2M4.js} +2 -2
  92. package/chunks/{chunk-Z6DDPSGJ.js → chunk-GNY7B3CA.js} +1 -1
  93. package/chunks/{chunk-FDOGGKAA.js → chunk-GSFV5RQW.js} +2 -0
  94. package/chunks/{chunk-XBVNNDPK.js → chunk-GSYD7MYP.js} +8 -3
  95. package/chunks/{chunk-ERMAXPXA.js → chunk-HIXUUCGY.js} +187 -12
  96. package/chunks/{chunk-EJNYBDYC.js → chunk-HNLMYDQE.js} +1 -1
  97. package/chunks/{chunk-3K456UJF.js → chunk-HSO6D4KX.js} +93 -28
  98. package/chunks/{chunk-ANVC5CSK.js → chunk-HUJJFSMO.js} +10 -10
  99. package/chunks/{chunk-C4NXRR7T.js → chunk-HW4MRP4V.js} +2 -2
  100. package/chunks/{chunk-PMGWY6ZP.js → chunk-HWLLUDIA.js} +113 -18
  101. package/chunks/{chunk-RCUWMVN3.js → chunk-HZ2HUXX7.js} +1 -1
  102. package/chunks/{chunk-7PMKXGRP.js → chunk-IKK6NNS6.js} +91 -31
  103. package/chunks/{chunk-IMWCUWQT.js → chunk-J3TJH52D.js} +1 -1
  104. package/chunks/{chunk-BNWIX6BM.js → chunk-JFAGT5YG.js} +3 -3
  105. package/chunks/{chunk-RSU3I6UL.js → chunk-JGTMTJSQ.js} +1 -1
  106. package/chunks/{chunk-LTCI6ZOJ.js → chunk-JYGIJA4W.js} +1 -1
  107. package/chunks/{chunk-537SQ2AI.js → chunk-KECCLCXM.js} +146 -24
  108. package/chunks/{chunk-KAZWXVI3.js → chunk-KEPC5BOL.js} +5 -5
  109. package/chunks/{chunk-HZS3JRQW.js → chunk-L5VHJYHH.js} +40 -2
  110. package/chunks/{chunk-KTLT7VCX.js → chunk-LKBOBUA2.js} +2 -2
  111. package/chunks/{chunk-TDHVOZ65.js → chunk-LOBKNYPR.js} +2 -2
  112. package/chunks/{chunk-QW7BUOSI.js → chunk-LOVGQ3HZ.js} +26 -9
  113. package/chunks/{chunk-5FYGZ7E3.js → chunk-MUF4UGPB.js} +2 -2
  114. package/chunks/chunk-N3Z6Q7KC.js +384 -0
  115. package/chunks/{chunk-JOV46WGX.js → chunk-NB3NDQQK.js} +1 -1
  116. package/chunks/chunk-NFXXBWSE.js +463 -0
  117. package/chunks/chunk-NOO4QFXM.js +171 -0
  118. package/chunks/{chunk-PQSCGZT2.js → chunk-NPKCVSXX.js} +26 -2
  119. package/chunks/{chunk-FXYNIZPW.js → chunk-NV4YYXFT.js} +51 -10
  120. package/chunks/{chunk-FWH4736Q.js → chunk-O6BFERWN.js} +3 -3
  121. package/chunks/{chunk-UKADFFL2.js → chunk-OFVAS4AR.js} +1 -1
  122. package/chunks/{chunk-C55CR5I4.js → chunk-OVTPETDL.js} +6 -6
  123. package/chunks/chunk-PLEBBGHL.js +1401 -0
  124. package/chunks/{chunk-Z6KFLEG7.js → chunk-PSPAM24S.js} +1 -0
  125. package/chunks/{chunk-RRCNEW2A.js → chunk-PWR6BQ3U.js} +58 -4
  126. package/chunks/{chunk-SHK2SIR5.js → chunk-QA2B26PL.js} +4 -4
  127. package/chunks/{chunk-NFIDVZND.js → chunk-QB3KS3N3.js} +2 -21
  128. package/chunks/{chunk-NUQFUXOG.js → chunk-QTNCGZHQ.js} +2 -0
  129. package/chunks/{chunk-QJVZLILI.js → chunk-R7OO56VZ.js} +1 -1
  130. package/chunks/{chunk-MFCWL4LI.js → chunk-SK6VACCM.js} +936 -481
  131. package/chunks/{chunk-SD7Y2PMC.js → chunk-SM66GFKJ.js} +2 -2
  132. package/chunks/{chunk-ADJD4LZF.js → chunk-SNMUO5Z7.js} +1 -1
  133. package/chunks/{chunk-NXWYCSPL.js → chunk-SOA4HKRJ.js} +1 -1
  134. package/chunks/{chunk-IRKQ4YYX.js → chunk-SVWWF5TZ.js} +29 -1
  135. package/chunks/{chunk-YLFICBYK.js → chunk-SYKPMH2X.js} +3 -3
  136. package/chunks/{chunk-5HBA2Z7V.js → chunk-TGNNLRC3.js} +2 -3
  137. package/chunks/{chunk-AX23QSX3.js → chunk-TRQNRP2H.js} +4 -4
  138. package/chunks/{chunk-AUJOWIT5.js → chunk-UQOP2APG.js} +4 -24
  139. package/chunks/{chunk-HY3DXYZK.js → chunk-UYDQYDW2.js} +1 -1
  140. package/chunks/{chunk-IGOIYZBG.js → chunk-VAWM3A5N.js} +2 -2
  141. package/chunks/{chunk-6KYWU726.js → chunk-VJJXG73H.js} +417 -292
  142. package/chunks/{chunk-ZNI3V2XA.js → chunk-VJWJOKOQ.js} +2 -2
  143. package/chunks/{chunk-AWDF462I.js → chunk-VR6Y23FW.js} +2 -2
  144. package/chunks/{chunk-T7TP5UQL.js → chunk-VX2NR3SD.js} +21 -6
  145. package/chunks/{chunk-65GHQ4FX.js → chunk-WDVV3LRM.js} +707 -216
  146. package/chunks/{chunk-KP5QK3FB.js → chunk-WEU6O6VN.js} +397 -54
  147. package/chunks/{chunk-OHOO527W.js → chunk-WG7BL3FY.js} +52 -2
  148. package/chunks/{chunk-VU7O7CGQ.js → chunk-XDNFODER.js} +1 -1
  149. package/chunks/{chunk-YHDGABDC.js → chunk-XKBFYTCD.js} +1 -1
  150. package/chunks/{chunk-RUMSY4ES.js → chunk-Y7YHAY32.js} +28 -10
  151. package/chunks/{chunk-7IKXTGZT.js → chunk-YI2YCNSP.js} +1 -1
  152. package/chunks/{chunk-B5FF3LRF.js → chunk-YIE6REQ5.js} +29 -17
  153. package/chunks/{chunk-E4VX6LXB.js → chunk-YZTGGCEE.js} +10 -2
  154. package/chunks/{chunk-TXAEXF2B.js → chunk-ZEFWBG2C.js} +737 -1136
  155. package/chunks/{chunk-AIMZIXZM.js → chunk-ZM2TCZZ7.js} +5 -7
  156. package/chunks/{chunk-ZT3XUGSU.js → chunk-ZZ7RVOTU.js} +135 -26
  157. package/chunks/{config-utils-F4CFJ4MW.js → config-utils-SXFK3G4X.js} +33 -32
  158. package/chunks/{contextCommand-OIIGGOMU.js → contextCommand-QFPD26QO.js} +31 -30
  159. package/chunks/{core-runtime-JEHLOGMB.js → core-runtime-VXKNBODM.js} +35 -33
  160. package/chunks/{create-sub-session-MVFBE5RA.js → create-sub-session-7WSQETFR.js} +30 -29
  161. package/chunks/{daemon-LCUELM6E.js → daemon-U2456K5H.js} +2 -2
  162. package/chunks/{daemon-git-worktree-guard-5FTKLJOU.js → daemon-git-worktree-guard-I4DCSDUS.js} +29 -28
  163. package/chunks/{daemon-status-provider-P6A5MPMW.js → daemon-status-provider-5UV56RI4.js} +36 -35
  164. package/chunks/{daemon-trust-policy-ZJ3NFYUO.js → daemon-trust-policy-DKIBWTKU.js} +36 -35
  165. package/chunks/{daemon-trust-policy-monitor-6SDLEW7S.js → daemon-trust-policy-monitor-CPSD7UKT.js} +36 -35
  166. package/chunks/{deferred-core-runtime-DWOXIU5S.js → deferred-core-runtime-D2RF35BL.js} +29 -28
  167. package/chunks/{discovery-TUM3ZQ6U.js → discovery-XP4RMDUM.js} +4 -2
  168. package/chunks/{dist-P6YWBITG.js → dist-6YDUH3BB.js} +817 -152
  169. package/chunks/{dist-T4PRA5EZ.js → dist-BNQVF565.js} +2 -8
  170. package/chunks/{dist-AI25RVRA.js → dist-F34J4FZX.js} +1 -1
  171. package/chunks/{dist-3H3WODVS.js → dist-F6JLAJLE.js} +1 -1
  172. package/chunks/{dist-NXW4DUUX.js → dist-K5GHMXIG.js} +2 -2
  173. package/chunks/{dist-YNQU4CKC.js → dist-NP7QKLVG.js} +2 -2
  174. package/chunks/{dist-VCAS67N5.js → dist-UFTFGI6I.js} +1 -1
  175. package/chunks/{dist-I74QLLQS.js → dist-XLV33CLY.js} +1 -2
  176. package/chunks/{dist-XINEKB5A.js → dist-ZDNJK74R.js} +3 -7
  177. package/chunks/{edit-WPVXLL3T.js → edit-4IBADZ3O.js} +20 -20
  178. package/chunks/{enter-worktree-5A6VW6BN.js → enter-worktree-YFTKHXHZ.js} +2 -2
  179. package/chunks/{enterPlanMode-JSODW7E2.js → enterPlanMode-YN3GPQU5.js} +20 -20
  180. package/chunks/{environment-5LLJ3I3W.js → environment-E272IJMF.js} +32 -31
  181. package/chunks/{errors-IQT3YZEP.js → errors-CVAH3RWQ.js} +31 -30
  182. package/chunks/{exit-worktree-QV7E7KP6.js → exit-worktree-NF2XEMES.js} +3 -3
  183. package/chunks/{exitPlanMode-DDVFYNW4.js → exitPlanMode-24J5IHGC.js} +20 -20
  184. package/chunks/{fast-path-PAUQQEVU.js → fast-path-M5IDBMXF.js} +4 -4
  185. package/chunks/{fast-path-settings-ISEJPRYE.js → fast-path-settings-SATXY3PD.js} +3 -3
  186. package/chunks/{glob-SQ7CTZ7F.js → glob-ERBD7JYP.js} +20 -20
  187. package/chunks/{goal-tools-UWZRCLQB.js → goal-tools-245ULLQT.js} +20 -20
  188. package/chunks/{handleAutoUpdate-RUPZZTSG.js → handleAutoUpdate-JDZHHZKK.js} +32 -31
  189. package/chunks/{i18n-SF5MPWEB.js → i18n-LA4D5IXM.js} +32 -29
  190. package/chunks/{image-gen-Q3RUTVKR.js → image-gen-XP4NNIYG.js} +4 -4
  191. package/chunks/{initializer-CK4WPYZG.js → initializer-SHPTSWUZ.js} +36 -35
  192. package/chunks/{installationInfo-IRPQEYRF.js → installationInfo-QEQEPB3G.js} +29 -28
  193. package/chunks/{list-E3PS3EBJ.js → list-IBHCQWTF.js} +39 -38
  194. package/chunks/{list-agents-I5TRH3J7.js → list-agents-EDPZCGKN.js} +5 -4
  195. package/chunks/{llm-JQKBOYAF.js → llm-JAWCQLA4.js} +81 -75
  196. package/chunks/{llm-content-generator-2QWGBW42.js → llm-content-generator-GOV3A23T.js} +23 -8
  197. package/chunks/{loadedSettingsAdapter-DGXGVYZS.js → loadedSettingsAdapter-RVE2GNVU.js} +36 -35
  198. package/chunks/{loggingContentGenerator-ZYURLJKK.js → loggingContentGenerator-SSHNN5YW.js} +22 -22
  199. package/chunks/{managed-npm-update-HTHR63EA.js → managed-npm-update-BHSTITQO.js} +29 -28
  200. package/chunks/{mcp-I7G2AEWS.js → mcp-6ZZ7P2HU.js} +36 -35
  201. package/chunks/{monitor-4R76BCRZ.js → monitor-RKK6GSHG.js} +20 -20
  202. package/chunks/{nonInteractiveCli-24OQ3VP2.js → nonInteractiveCli-UQHP3G6P.js} +76 -72
  203. package/chunks/{notebook-edit-PPSH7FEX.js → notebook-edit-YM47A7WO.js} +20 -20
  204. package/chunks/{open-with-auth-D6JD6LDS.js → open-with-auth-6MVIHMXB.js} +1 -1
  205. package/chunks/{openaiContentGenerator-K7V5EO7F.js → openaiContentGenerator-FHKDWNI2.js} +11 -11
  206. package/chunks/{pidfile-TGIUY2GG.js → pidfile-SIIEJEEH.js} +32 -29
  207. package/chunks/{processUtils-3USXUQWX.js → processUtils-JF7CWBJC.js} +2 -2
  208. package/chunks/{prompt-terminal-ledger-XHVZRXJI.js → prompt-terminal-ledger-FXXHAEQU.js} +30 -29
  209. package/chunks/{qwenContentGenerator-MPBOQB64.js → qwenContentGenerator-KFJ77JP6.js} +24 -24
  210. package/chunks/{qwenOAuth2-BS5D2LYV.js → qwenOAuth2-KX6LVYQ3.js} +4 -4
  211. package/chunks/{read-file-R256LDWQ.js → read-file-S2NOCBIL.js} +4 -4
  212. package/chunks/{resumeHistoryUtils-S43LTFHD.js → resumeHistoryUtils-QHHPSQWU.js} +33 -32
  213. package/chunks/{ripGrep-L7HPZ75Y.js → ripGrep-F6TNOJUO.js} +5 -5
  214. package/chunks/{run-qwen-serve-CTFL5R6U.js → run-qwen-serve-KYBDQRDD.js} +229 -79
  215. package/chunks/{runtime-FS5TL6P7.js → runtime-3WNOFLCR.js} +43 -40
  216. package/chunks/{scheduled-tasks-QXPV3Q35.js → scheduled-tasks-RNBH56DJ.js} +34 -33
  217. package/chunks/{scheduler-EXU5HMVK.js → scheduler-ERMW7Q7B.js} +31 -30
  218. package/chunks/{send-message-GQKXGMPI.js → send-message-V5T3NMFM.js} +4 -4
  219. package/chunks/{serve-ITJC7WNN.js → serve-7NV46RMP.js} +36 -35
  220. package/chunks/{server-6JQY3PTU.js → server-6RZJR5QF.js} +1358 -932
  221. package/chunks/{session-PJDEKXD4.js → session-Z4EV7NVV.js} +107 -78
  222. package/chunks/{session-attachments-root-L37ORSST.js → session-attachments-root-SG5FC52X.js} +29 -28
  223. package/chunks/{session-pr-refresh-WIFD52YL.js → session-pr-refresh-ILC4Z3ZM.js} +33 -32
  224. package/chunks/{settings-LO6J5SAZ.js → settings-Y47SPE3X.js} +35 -34
  225. package/chunks/{shell-ANAFVYGR.js → shell-YBVCOPVO.js} +20 -20
  226. package/chunks/{skill-SHJWKSPH.js → skill-AXC63EBA.js} +4 -4
  227. package/chunks/{skill-settings-GX3XHZ5Q.js → skill-settings-AFPAYGLO.js} +35 -34
  228. package/chunks/{spawnChannel-WE42VBKM.js → spawnChannel-ZFL4J2V3.js} +29 -28
  229. package/chunks/{standalone-update-CWDIKJRP.js → standalone-update-Y2OZPLNJ.js} +31 -30
  230. package/chunks/{start-opentui-ui-BBHGFOTF.js → start-opentui-ui-G6TKT4LI.js} +2270 -1026
  231. package/chunks/{startInteractiveUI-FQX7LUYP.js → startInteractiveUI-YTNDPW7J.js} +1789 -2211
  232. package/chunks/{task-create-PMAFST2T.js → task-create-MWXJFRRM.js} +3 -3
  233. package/chunks/{task-list-R2HSY2NC.js → task-list-EYO3FE57.js} +2 -2
  234. package/chunks/{task-update-JYC57USF.js → task-update-2JJJRHMT.js} +3 -3
  235. package/chunks/{team-create-WKTPCH6D.js → team-create-BUFLGGSH.js} +20 -20
  236. package/chunks/{team-delete-CBHVBTPB.js → team-delete-IQZ6XGFI.js} +2 -2
  237. package/chunks/{team-plan-approval-Y23DL7WR.js → team-plan-approval-OUWWM42U.js} +20 -20
  238. package/chunks/{terminal-image-renderer-B646HBDW.js → terminal-image-renderer-WH2WV5ES.js} +29 -28
  239. package/chunks/{theme-manager-BNWESY26.js → theme-manager-5UDRARM2.js} +29 -28
  240. package/chunks/{tool-search-PVQ5O5Y2.js → tool-search-MCDIRPHN.js} +4 -4
  241. package/chunks/{total-session-admission-P5Z43KNW.js → total-session-admission-VL27U74Z.js} +33 -32
  242. package/chunks/{trustedFolders-FH2LT2MZ.js → trustedFolders-MSXT4VDD.js} +30 -29
  243. package/chunks/{update-relaunch-WOWTKJSN.js → update-relaunch-JKLEWVCB.js} +5 -5
  244. package/chunks/{updateCheck-3MYFMM35.js → updateCheck-ARTHAJT2.js} +31 -30
  245. package/chunks/{useAutoAcceptIndicator-Q7ZRRRKO.js → useAutoAcceptIndicator-YEAAGYVU.js} +38 -37
  246. package/chunks/{validateNonInterActiveAuth-MYEWJX3G.js → validateNonInterActiveAuth-EMRQKH5S.js} +71 -69
  247. package/chunks/{version-RO2FPO76.js → version-HFQU35WD.js} +3 -1
  248. package/chunks/{web-fetch-QAKY2LUA.js → web-fetch-QBXAO6VF.js} +7 -7
  249. package/chunks/{web-search-XA5Z4ZCD.js → web-search-2URQXA3A.js} +201 -13
  250. package/chunks/{web-shell-static-POZHGGXE.js → web-shell-static-BFDESDD4.js} +5 -4
  251. package/chunks/{workflow-QFIOCMDM.js → workflow-JDD6WDAH.js} +211 -75
  252. package/chunks/{workspace-providers-status-B2UD7RAG.js → workspace-providers-status-B4IKR6YJ.js} +38 -37
  253. package/chunks/{workspace-registration-store-VZLRTI3Q.js → workspace-registration-store-PJ3YHR45.js} +1 -2
  254. package/chunks/{workspace-registry-GYOGG6TM.js → workspace-registry-WVYJ5UGB.js} +33 -32
  255. package/chunks/{workspace-runtime-coordinator-7KRXGQ4V.js → workspace-runtime-coordinator-DXL5YVAG.js} +33 -32
  256. package/chunks/{workspace-service-DJEYGJE4.js → workspace-service-QNGAMVH7.js} +40 -39
  257. package/chunks/{workspace-skills-status-MOKNESUC.js → workspace-skills-status-BEISJIII.js} +36 -35
  258. package/chunks/{workspace-trust-reconciler-AXOSUTQW.js → workspace-trust-reconciler-ORYJF5L4.js} +40 -39
  259. package/chunks/{write-file-QOYVHAKK.js → write-file-DWLKFBTJ.js} +21 -21
  260. package/chunks/{zoom-image-UCCLGFNC.js → zoom-image-BYVIXSNQ.js} +4 -4
  261. package/cli.js +13 -13
  262. package/export-transcript-document.js +123 -119
  263. package/package.json +4 -4
  264. package/web-shell/assets/{abnfDiagram-VCTEODGH-CTstZpXw.js → abnfDiagram-VCTEODGH-C_8kzsly.js} +1 -1
  265. package/web-shell/assets/{arc-DKW0mbPo.js → arc-CDg7Zfpm.js} +1 -1
  266. package/web-shell/assets/{architectureDiagram-5GKGNRK7-DkMpJ42t.js → architectureDiagram-5GKGNRK7-DZzdCWyF.js} +1 -1
  267. package/web-shell/assets/{blockDiagram-NRAW4CY4-7Cp1_4i3.js → blockDiagram-NRAW4CY4-DI3B4gyR.js} +1 -1
  268. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BfaoSlBK.js → c4Diagram-UCG6FXSJ-CfOgwHZW.js} +1 -1
  269. package/web-shell/assets/channel-e4xwS72w.js +1 -0
  270. package/web-shell/assets/{chunk-2Q5K7J3B-_n1qzAio.js → chunk-2Q5K7J3B-B_PUth0g.js} +1 -1
  271. package/web-shell/assets/{chunk-5VM5RSS4-0cira5ZV.js → chunk-5VM5RSS4-CrKtvBIL.js} +1 -1
  272. package/web-shell/assets/{chunk-F27PBJKO-DseRXSHC.js → chunk-F27PBJKO-B4z2n8Py.js} +1 -1
  273. package/web-shell/assets/{chunk-G27WJ6UU-BehQWin0.js → chunk-G27WJ6UU-BUtrFEO8.js} +1 -1
  274. package/web-shell/assets/{chunk-JWPE2WC7-B5ftg1Bb.js → chunk-JWPE2WC7-Cqw3aXW0.js} +1 -1
  275. package/web-shell/assets/{chunk-LCL6LL3I-D7rnbVdk.js → chunk-LCL6LL3I-CZolnvls.js} +1 -1
  276. package/web-shell/assets/{chunk-POPQ4Y6H-2Bp-Orju.js → chunk-POPQ4Y6H-DivgasCa.js} +1 -1
  277. package/web-shell/assets/{chunk-SVP7TREG-CD2goGva.js → chunk-SVP7TREG--seyb1B6.js} +1 -1
  278. package/web-shell/assets/{chunk-XXDRQBXY-DzQt-Rji.js → chunk-XXDRQBXY-D7pHtuVM.js} +1 -1
  279. package/web-shell/assets/classDiagram-DTDB5LWJ-CzXfUUOt.js +1 -0
  280. package/web-shell/assets/classDiagram-v2-JRS7N3AN-CzXfUUOt.js +1 -0
  281. package/web-shell/assets/{cose-bilkent-JH36ORCC-C-BZXSUn.js → cose-bilkent-JH36ORCC-4MWaRF_3.js} +1 -1
  282. package/web-shell/assets/csv-CX7rUNeC.svg +1 -0
  283. package/web-shell/assets/{cynefin-OW5HDTMX-BTcvowe1.js → cynefin-OW5HDTMX-nhJhAjgD.js} +1 -1
  284. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BoUE6K81.js → cynefinDiagram-5FMLGOSQ-NF-PwXlq.js} +1 -1
  285. package/web-shell/assets/{dagre-3AP2YEHR-BHxy9xeB.js → dagre-3AP2YEHR-Bu0ncdWP.js} +1 -1
  286. package/web-shell/assets/{diagram-S7CK7UJ4-DMiJIvDT.js → diagram-S7CK7UJ4-CsvhFHZC.js} +1 -1
  287. package/web-shell/assets/{diagram-UQ7AKVKN-DXV09Aes.js → diagram-UQ7AKVKN-Ck61sIB3.js} +1 -1
  288. package/web-shell/assets/{diagram-VSXAHHWV-CocpRomV.js → diagram-VSXAHHWV-D0171zrb.js} +1 -1
  289. package/web-shell/assets/{diagram-VX7I27RA-DL7nqtb4.js → diagram-VX7I27RA-DvdxY4UL.js} +1 -1
  290. package/web-shell/assets/{diagram-Z3DM3KII-CPZ2Jux_.js → diagram-Z3DM3KII-CGGpseiB.js} +1 -1
  291. package/web-shell/assets/{ebnfDiagram-PWID7BFC-BX-eVNsX.js → ebnfDiagram-PWID7BFC-K8-QMvY8.js} +1 -1
  292. package/web-shell/assets/{erDiagram-SSCWMZ5O-CPy_Ir6y.js → erDiagram-SSCWMZ5O-D316nAem.js} +1 -1
  293. package/web-shell/assets/{flowDiagram-A5DVABFB-eknAOte9.js → flowDiagram-A5DVABFB-B7siy_mn.js} +1 -1
  294. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-crAxw_t7.js → ganttDiagram-EL5Y4UJY-BZQDxzTu.js} +1 -1
  295. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-M29pa3Tc.js → gitGraphDiagram-WWUBYQGX-DZynLCSV.js} +1 -1
  296. package/web-shell/assets/{index-C9R-iojE.js → index-9ie6xLTM.js} +1 -1
  297. package/web-shell/assets/index-DirkXQEg.js +2164 -0
  298. package/web-shell/assets/index-DzdST_7L.css +36 -0
  299. package/web-shell/assets/{infoDiagram-RXCK75RN-XqspXdOU.js → infoDiagram-RXCK75RN-B0gr769A.js} +1 -1
  300. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-C5KFS-7j.js → ishikawaDiagram-5VMMS53U-0pQFfjvX.js} +1 -1
  301. package/web-shell/assets/{journeyDiagram-EYS64GPL-Cc57LVRo.js → journeyDiagram-EYS64GPL-DEGtClWb.js} +1 -1
  302. package/web-shell/assets/{kanban-definition-3QL26DDD-C81OG-AI.js → kanban-definition-3QL26DDD-CnN8gPzw.js} +1 -1
  303. package/web-shell/assets/{layout-CFVu37BB.js → layout-C_70RhaT.js} +1 -1
  304. package/web-shell/assets/{linear-ChBxdtWf.js → linear-BJ2ZLmcq.js} +1 -1
  305. package/web-shell/assets/{mermaid.core-CMLfue0w.js → mermaid.core-RlY0zPNC.js} +6 -6
  306. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DFsvJThp.js → mindmap-definition-FBJOCRG2-CpVAxTNl.js} +1 -1
  307. package/web-shell/assets/{pegDiagram-XKGWAZYB-BzpRzM4F.js → pegDiagram-XKGWAZYB-DmrSv3hD.js} +1 -1
  308. package/web-shell/assets/{pieDiagram-E7YTZNPT-Cv0Kankl.js → pieDiagram-E7YTZNPT-CJmgp8KJ.js} +1 -1
  309. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-Bh2BJ3Ay.js → quadrantDiagram-AXDQQJYC-UsgOyNco.js} +1 -1
  310. package/web-shell/assets/{railroadDiagram-O6MQD6OU-y8rNDdDS.js → railroadDiagram-O6MQD6OU-DQ6gMs_W.js} +1 -1
  311. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-C0m2DKJ_.js → requirementDiagram-EFPCY7ZU-DhqadamF.js} +1 -1
  312. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-BzdGnSF4.js → sankeyDiagram-P5KCCOFB-R4WnURaE.js} +1 -1
  313. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DPzAVmzz.js → sequenceDiagram-WJ2MYXX4-D7BwMi_D.js} +1 -1
  314. package/web-shell/assets/{sizeCapture-X5ZJPWSS-LcHG28Zh.js → sizeCapture-X5ZJPWSS-Bqngz088.js} +1 -1
  315. package/web-shell/assets/{stateDiagram-HBIQ2CUA-C1Bzy3IT.js → stateDiagram-HBIQ2CUA-DwaXPGqn.js} +1 -1
  316. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-8GCQZAvv.js +1 -0
  317. package/web-shell/assets/{swimlanes-XN3QIQJK-Bftk8V64.js → swimlanes-XN3QIQJK-BsaLeRDY.js} +1 -1
  318. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-BoRBF2Yw.js +8 -0
  319. package/web-shell/assets/{timeline-definition-24CTP7MA-BfXHcN1A.js → timeline-definition-24CTP7MA-NJ9G-NUU.js} +1 -1
  320. package/web-shell/assets/{vennDiagram-4TSXK5OY-DRSlI9-V.js → vennDiagram-4TSXK5OY-Ca3W4rSq.js} +1 -1
  321. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CaLmqGau.js → wardleyDiagram-VM6X3IG4-OabvjC-6.js} +1 -1
  322. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-8lgUT6e8.js → xychartDiagram-S5SC5T6Z-C7rbjvpc.js} +1 -1
  323. package/web-shell/index.html +2 -2
  324. package/chunks/chunk-2LD5U7Q3.js +0 -114
  325. package/chunks/chunk-3UMWOKJC.js +0 -78
  326. package/chunks/chunk-IQAFKVXS.js +0 -22
  327. package/chunks/chunk-X35VIWWJ.js +0 -276
  328. package/chunks/chunk-ZJ2LM2SI.js +0 -198
  329. package/web-shell/assets/channel-CQx7VSAp.js +0 -1
  330. package/web-shell/assets/classDiagram-DTDB5LWJ-C-Uz8hHk.js +0 -1
  331. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C-Uz8hHk.js +0 -1
  332. package/web-shell/assets/index-B4TLaxWs.js +0 -2142
  333. package/web-shell/assets/index-CCrkEbzz.css +0 -36
  334. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-LuuL5byY.js +0 -1
  335. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-COmnNq8s.js +0 -8
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  CHANNEL_CONTROL_DEFAULT_TIMEOUT_MS
5
- } from "./chunk-5HBA2Z7V.js";
5
+ } from "./chunk-TGNNLRC3.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -3012,6 +3012,62 @@ var DaemonClient = class {
3012
3012
  async resumeSession(sessionId, req = {}, clientId) {
3013
3013
  return this.restoreSession("resume", sessionId, req, clientId);
3014
3014
  }
3015
+ /**
3016
+ * Transfer a worktree session's checkout ownership to a fresh replacement
3017
+ * session (`POST /session/:id/worktree-reset`, capability
3018
+ * `session_worktree_reset_v1`). Resolves 200 with the replacement
3019
+ * session's create-shape response. The route never reads a caller-supplied
3020
+ * client id, so this method takes none — but the response is not
3021
+ * registration-free: a fresh transfer mints an owner-style `clientId` for
3022
+ * the spawn it performs, registers it on the replacement, and returns it in
3023
+ * the body, while an idempotent resume of a committed transfer returns
3024
+ * none. That registration is not an attachment (the replacement's attach
3025
+ * count is unaffected), and nothing detaches it for you — pass a minted id
3026
+ * you do not keep using to `detachSession`, or the replacement never
3027
+ * reaches the daemon's idle cleanup. Typed 409 bodies carry the reset
3028
+ * taxonomy: `worktree_reset_unsupported` (not a worktree session),
3029
+ * `worktree_reset_active` (a session involved is busy), and
3030
+ * `worktree_reset_invalid_state` (corrupt or ambiguous ownership state; a
3031
+ * partial transfer this request started is rolled back, while a
3032
+ * pre-existing interrupted state is left untouched for operator repair).
3033
+ * A crashed transfer whose sidecar links agree is self-healed here: a
3034
+ * pre-commit one (the marker still names this session, or is absent while
3035
+ * the replacement is dormant) is rolled back and re-run in the same
3036
+ * request, and a committed one (the marker names the replacement) is
3037
+ * finished idempotently. Every other interrupted shape — disagreeing links,
3038
+ * an invalid marker, a marker naming a third session, a replacement still
3039
+ * live with no marker — is reported as `worktree_reset_invalid_state` (or
3040
+ * `worktree_reset_active` when the committed replacement is busy) and left
3041
+ * untouched: a retry re-reads the same state and returns the same 409, so
3042
+ * it does not converge and needs operator repair rather than a retry loop.
3043
+ * `worktree_reset_interrupted`, `worktree_session_superseded`, and
3044
+ * `worktree_marker_missing` belong to the restore surface (`loadSession` /
3045
+ * `resumeSession`) instead; for `worktree_reset_interrupted` — the
3046
+ * agreeing-links shape — retrying this reset against the superseded session
3047
+ * is the repair.
3048
+ */
3049
+ async resetWorktreeSession(sessionId, req = {}) {
3050
+ return await this.fetchWithTimeout(
3051
+ `${this.baseUrl}/session/${urlEncode(sessionId)}/worktree-reset`,
3052
+ {
3053
+ method: "POST",
3054
+ headers: this.headers({ "Content-Type": "application/json" }),
3055
+ body: JSON.stringify({
3056
+ ...req.workspaceCwd !== void 0 ? { cwd: req.workspaceCwd } : {},
3057
+ ...req.modelServiceId !== void 0 ? { modelServiceId: req.modelServiceId } : {},
3058
+ ...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {},
3059
+ ...req.sourceType !== void 0 ? { sourceType: req.sourceType } : {},
3060
+ ...req.sourceId !== void 0 ? { sourceId: req.sourceId } : {}
3061
+ })
3062
+ },
3063
+ async (res) => {
3064
+ if (!res.ok) {
3065
+ throw await this.failOnError(res, "POST /session/:id/worktree-reset");
3066
+ }
3067
+ return await res.json();
3068
+ }
3069
+ );
3070
+ }
3015
3071
  async branchSession(sessionId, req = {}, clientId) {
3016
3072
  return await this.fetchWithTimeout(
3017
3073
  `${this.baseUrl}/session/${urlEncode(sessionId)}/branch`,
@@ -3353,6 +3409,7 @@ var DaemonClient = class {
3353
3409
  ),
3354
3410
  body: JSON.stringify({
3355
3411
  mode,
3412
+ ...opts?.planMode !== void 0 ? { planMode: opts.planMode } : {},
3356
3413
  ...opts?.persist === true ? { persist: true } : {}
3357
3414
  })
3358
3415
  },
@@ -6437,6 +6494,36 @@ var DaemonSessionClient = class _DaemonSessionClient {
6437
6494
  eventEpoch
6438
6495
  });
6439
6496
  }
6497
+ /**
6498
+ * Transfer a worktree session's checkout ownership to a fresh replacement
6499
+ * session and return a client bound to the replacement's identity. That
6500
+ * client carries whatever `clientId` the response had: a fresh transfer
6501
+ * mints and registers an owner-style one for the spawn it performs, while
6502
+ * an idempotent resume of a committed transfer returns none. The
6503
+ * registration is not an attachment (the replacement's attach count is
6504
+ * unaffected), but it is a client registration, and a non-empty one is what
6505
+ * holds the daemon's idle cleanup off — so detach a minted id you do not
6506
+ * keep using, or the replacement stays live indefinitely. A registered
6507
+ * attachment still requires the normal restore surface: load or resume the
6508
+ * replacement, passing the minted id to reuse that registration instead of
6509
+ * adding a second one. The replacement is a brand-new conversation; the
6510
+ * superseded session keeps its transcript on the daemon and is never
6511
+ * restored again (its restore surfaces `worktree_session_superseded`). The
6512
+ * existing reattach identity guard applies to the replacement client
6513
+ * unchanged.
6514
+ */
6515
+ static async resetWorktree(client, sessionId, req = {}) {
6516
+ const session = await client.resetWorktreeSession(sessionId, req);
6517
+ return new _DaemonSessionClient({
6518
+ client,
6519
+ session,
6520
+ hasActivePrompt: session.hasActivePrompt,
6521
+ // The replacement is freshly created: seed from the start of its bus
6522
+ // so events fired during the transfer window are not skipped.
6523
+ lastEventId: 0,
6524
+ eventEpoch: session.eventEpoch
6525
+ });
6526
+ }
6440
6527
  static async createStandalone(client, options = {}) {
6441
6528
  const session = await client.createStandaloneSession(options);
6442
6529
  return new _DaemonSessionClient({
@@ -6672,16 +6759,21 @@ var DaemonSessionClient = class _DaemonSessionClient {
6672
6759
  });
6673
6760
  this.reattaching = resume.then(async (session) => {
6674
6761
  if (this.session.worktreeState === "persisted-v1") {
6675
- const sameWorktree = session.worktreeState === "persisted-v1" && session.worktree?.path === this.session.worktree?.path;
6676
- if (!sameWorktree) {
6677
- await this.client.detachSession(session.sessionId, session.clientId).catch(() => {
6678
- });
6679
- throw new Error(
6680
- `Daemon lost durable worktree identity for session ${this.sessionId}`
6681
- );
6762
+ if (!session.worktree) {
6763
+ this.session.worktree = void 0;
6764
+ this.session.worktreeState = void 0;
6765
+ } else {
6766
+ const sameWorktree = session.worktreeState === "persisted-v1" && session.worktree.path === this.session.worktree?.path;
6767
+ if (!sameWorktree) {
6768
+ await this.client.detachSession(session.sessionId, session.clientId).catch(() => {
6769
+ });
6770
+ throw new Error(
6771
+ `Daemon lost durable worktree identity for session ${this.sessionId}`
6772
+ );
6773
+ }
6774
+ this.session.worktree = session.worktree;
6775
+ this.session.worktreeState = session.worktreeState;
6682
6776
  }
6683
- this.session.worktree = session.worktree;
6684
- this.session.worktreeState = session.worktreeState;
6685
6777
  }
6686
6778
  this.session.clientId = session.clientId;
6687
6779
  });
@@ -7412,6 +7504,7 @@ function createDaemonSessionViewState(seed = {}) {
7412
7504
  lastWorkspaceMutation: seed.lastWorkspaceMutation,
7413
7505
  lastWorkspaceMutationType: seed.lastWorkspaceMutationType,
7414
7506
  approvalMode: seed.approvalMode,
7507
+ planExecutionMode: seed.planExecutionMode,
7415
7508
  approvalModeChangedCount: seed.approvalModeChangedCount ?? 0,
7416
7509
  lastApprovalModeChange: seed.lastApprovalModeChange,
7417
7510
  toolToggleCount: seed.toolToggleCount ?? 0,
@@ -7796,6 +7889,7 @@ function reduceDaemonSessionEvent(state, rawEvent) {
7796
7889
  return {
7797
7890
  ...base,
7798
7891
  approvalMode: event.data.next,
7892
+ planExecutionMode: event.data.next === "plan" ? event.data.planExecutionMode : void 0,
7799
7893
  approvalModeChangedCount: base.approvalModeChangedCount + 1,
7800
7894
  lastApprovalModeChange: mergeOriginator(event.data, event)
7801
7895
  };
@@ -7870,7 +7964,10 @@ function reduceDaemonSessionEvent(state, rawEvent) {
7870
7964
  ...base,
7871
7965
  sessionId: event.data.sessionId,
7872
7966
  ...event.data.currentModelId != null ? { currentModelId: event.data.currentModelId } : {},
7873
- ...event.data.currentApprovalMode != null ? { approvalMode: event.data.currentApprovalMode } : {},
7967
+ ...event.data.currentApprovalMode != null ? {
7968
+ approvalMode: event.data.currentApprovalMode,
7969
+ planExecutionMode: event.data.currentApprovalMode === "plan" ? event.data.planExecutionMode : void 0
7970
+ } : {},
7874
7971
  ...event.data.recordingDegraded !== void 0 ? { recordingDegraded: event.data.recordingDegraded } : {}
7875
7972
  };
7876
7973
  case "session_recording_degraded":
@@ -8224,7 +8321,7 @@ function mergeOriginator(data, event) {
8224
8321
  }
8225
8322
  __name(mergeOriginator, "mergeOriginator");
8226
8323
  function isApprovalModeChangedData(value) {
8227
- return isRecord(value) && isNonEmptyString(value["sessionId"]) && isNonEmptyString(value["previous"]) && isNonEmptyString(value["next"]) && typeof value["persisted"] === "boolean";
8324
+ return isRecord(value) && isNonEmptyString(value["sessionId"]) && isNonEmptyString(value["previous"]) && isNonEmptyString(value["next"]) && (value["planExecutionMode"] === void 0 || isNonEmptyString(value["planExecutionMode"])) && typeof value["persisted"] === "boolean";
8228
8325
  }
8229
8326
  __name(isApprovalModeChangedData, "isApprovalModeChangedData");
8230
8327
  function isToolToggledData(value) {
@@ -8408,7 +8505,7 @@ function isSessionSnapshotData(value) {
8408
8505
  const model = value["currentModelId"];
8409
8506
  const mode = value["currentApprovalMode"];
8410
8507
  const recordingDegraded = value["recordingDegraded"];
8411
- return (model === null || typeof model === "string") && (mode === null || typeof mode === "string") && (recordingDegraded === void 0 || typeof recordingDegraded === "boolean");
8508
+ return (model === null || typeof model === "string") && (mode === null || typeof mode === "string") && (value["planExecutionMode"] === void 0 || isNonEmptyString(value["planExecutionMode"])) && (recordingDegraded === void 0 || typeof recordingDegraded === "boolean");
8412
8509
  }
8413
8510
  __name(isSessionSnapshotData, "isSessionSnapshotData");
8414
8511
  function isSessionRecordingDegradedData(value) {
@@ -8701,7 +8798,7 @@ var bidiControlPattern = /[\u200e\u200f\u202a-\u202e\u2066-\u2069]/g;
8701
8798
 
8702
8799
  // packages/sdk-typescript/src/daemon/ui/toolPreview.ts
8703
8800
  var MAX_TOOL_PREVIEW_DEPTH = 8;
8704
- var MAX_TODO_PREVIEW_ENTRIES = 1e3;
8801
+ var MAX_TOOL_PREVIEW_ENTRIES = 1e3;
8705
8802
  var MAX_TOOL_RESULT_PREVIEW_LENGTH = 1e5;
8706
8803
  var MAX_TODO_ID_LENGTH = 512;
8707
8804
  function createDaemonToolPreview(input, opts = {}, depth = 0) {
@@ -8769,6 +8866,27 @@ function createDaemonToolPreview(input, opts = {}, depth = 0) {
8769
8866
  }
8770
8867
  __name(createDaemonToolPreview, "createDaemonToolPreview");
8771
8868
  function createDaemonToolResultPreview(output, content, opts = {}) {
8869
+ if (isRecord2(output) && output["type"] === "ask_user_question_answers" && typeof output["text"] === "string") {
8870
+ const text = output["text"];
8871
+ const fallback = createDaemonToolResultTextPreview(text);
8872
+ const entries = output["answers"];
8873
+ if (!Array.isArray(entries) || entries.length > MAX_TOOL_PREVIEW_ENTRIES) {
8874
+ return fallback;
8875
+ }
8876
+ let remaining = MAX_TOOL_RESULT_PREVIEW_LENGTH - text.length;
8877
+ const answers = [];
8878
+ for (const entry of entries) {
8879
+ if (!isRecord2(entry) || typeof entry["question"] !== "string" || typeof entry["answer"] !== "string") {
8880
+ return fallback;
8881
+ }
8882
+ const question = entry["question"];
8883
+ const answer = entry["answer"];
8884
+ remaining -= question.length + answer.length;
8885
+ if (remaining < 0) return fallback;
8886
+ answers.push({ question, answer });
8887
+ }
8888
+ return remaining >= 0 ? { kind: "question_answers", text, answers } : fallback;
8889
+ }
8772
8890
  const todoList = detectTodoList(output, opts, false);
8773
8891
  if (todoList) return todoList;
8774
8892
  return createDaemonToolResultTextPreview(
@@ -8787,7 +8905,7 @@ function detectTodoList(input, opts, includeLegacySummary) {
8787
8905
  if (!entries || toolName !== "todo_write" && toolName !== "todowrite") {
8788
8906
  return void 0;
8789
8907
  }
8790
- const retainedEntries = entries.slice(0, MAX_TODO_PREVIEW_ENTRIES);
8908
+ const retainedEntries = entries.slice(0, MAX_TOOL_PREVIEW_ENTRIES);
8791
8909
  const authoredIds = /* @__PURE__ */ new Set();
8792
8910
  for (const entry of retainedEntries) {
8793
8911
  if (!isRecord2(entry)) continue;
@@ -8800,9 +8918,9 @@ function detectTodoList(input, opts, includeLegacySummary) {
8800
8918
  }
8801
8919
  const normalized = [];
8802
8920
  const usedIds = /* @__PURE__ */ new Set();
8803
- let truncated = entries.length > MAX_TODO_PREVIEW_ENTRIES;
8921
+ let truncated = entries.length > MAX_TOOL_PREVIEW_ENTRIES;
8804
8922
  let remainingText = MAX_TOOL_RESULT_PREVIEW_LENGTH;
8805
- let remainingDependencyInputs = MAX_TODO_PREVIEW_ENTRIES;
8923
+ let remainingDependencyInputs = MAX_TOOL_PREVIEW_ENTRIES;
8806
8924
  retainedEntries.forEach((entry, index) => {
8807
8925
  if (!isRecord2(entry)) {
8808
8926
  truncated = true;
@@ -9369,13 +9487,10 @@ function normalizeDaemonEvent(event, opts = {}) {
9369
9487
  }
9370
9488
  ];
9371
9489
  case "slow_client_warning":
9372
- return [
9373
- {
9374
- ...base,
9375
- type: "status",
9376
- text: "SSE stream is lagging"
9377
- }
9378
- ];
9490
+ if (typeof console !== "undefined") {
9491
+ console.warn?.("[daemon-ui] SSE stream is lagging", event.data);
9492
+ }
9493
+ return [];
9379
9494
  case "stream_error": {
9380
9495
  const errorKind = asDaemonErrorKind(getString2(event.data, "errorKind"));
9381
9496
  return [
@@ -10023,6 +10138,7 @@ function normalizeToolUpdate(update, base) {
10023
10138
  text: `Tool update missing toolCallId${title ? ` (${title})` : ""}`
10024
10139
  };
10025
10140
  }
10141
+ const subagentSessionReady = isRecord2(rawOutput) && typeof rawOutput["subagentSessionReady"] === "boolean" ? rawOutput["subagentSessionReady"] : metadata?.["subagentSessionReady"];
10026
10142
  const { provenance, serverId } = extractToolProvenance(update, toolName);
10027
10143
  const rawParentToolCallId = getString2(update, "parentToolCallId") ?? (metadata ? getString2(metadata, "parentToolCallId") : void 0);
10028
10144
  const parentToolCallId = rawParentToolCallId && rawParentToolCallId !== toolCallId ? rawParentToolCallId : void 0;
@@ -10041,6 +10157,7 @@ function normalizeToolUpdate(update, base) {
10041
10157
  ...serverId ? { serverId } : {},
10042
10158
  ...parentToolCallId ? { parentToolCallId } : {},
10043
10159
  ...subagentType ? { subagentType } : {},
10160
+ ...typeof subagentSessionReady === "boolean" ? { subagentSessionReady } : {},
10044
10161
  ...rawInput !== void 0 ? { rawInput } : {},
10045
10162
  ...rawOutput !== void 0 ? { rawOutput } : {},
10046
10163
  ...resultPreview ? { resultPreview } : {},
@@ -11390,6 +11507,9 @@ function upsertToolBlock(state, event) {
11390
11507
  const bytesBefore = retainedBefore ? estimateBlockBytes(retainedBefore) : 0;
11391
11508
  const existing = getWritableBlockById(state, existingId);
11392
11509
  if (existing?.kind === "tool") {
11510
+ if (event.subagentSessionReady !== void 0) {
11511
+ existing.subagentSessionReady = existing.subagentSessionReady === true || event.subagentSessionReady;
11512
+ }
11393
11513
  if (event.title !== void 0) existing.title = event.title;
11394
11514
  if (event.status !== void 0) existing.status = event.status;
11395
11515
  if (event.rawInput !== void 0) {
@@ -11498,6 +11618,7 @@ function upsertToolBlock(state, event) {
11498
11618
  }),
11499
11619
  ...resultPreview ? { resultPreview } : {},
11500
11620
  ...isBackgroundToolOutput(rawOutput) ? { background: true } : {},
11621
+ ...event.subagentSessionReady !== void 0 ? { subagentSessionReady: event.subagentSessionReady } : {},
11501
11622
  clientReceivedAt: state.now,
11502
11623
  createdAt: state.now,
11503
11624
  updatedAt: state.now,
@@ -11572,6 +11693,7 @@ function compactTaskExecutionOutput(rawOutput, retainSubagentBlocks) {
11572
11693
  "taskDescription",
11573
11694
  "status",
11574
11695
  "executionMode",
11696
+ "subagentSessionReady",
11575
11697
  "terminateReason",
11576
11698
  "tokenCount",
11577
11699
  "executionSummary",
@@ -28,7 +28,7 @@ import {
28
28
  createWorkerDiagnosticRedactor,
29
29
  normalizeWorkerDiagnostic,
30
30
  sanitizeWorkerDiagnostic
31
- } from "./chunk-5V4B3EWA.js";
31
+ } from "./chunk-DARWOZY6.js";
32
32
  import {
33
33
  CHANNEL_DAEMON_WORKER_SENTINEL,
34
34
  CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
@@ -50,14 +50,14 @@ import {
50
50
  import {
51
51
  EXTERNAL_TOOL_GUARD_TOKEN_ENV
52
52
  } from "./chunk-3VUENPWF.js";
53
- import {
54
- sanitizeLogText
55
- } from "./chunk-65GHQ4FX.js";
56
53
  import {
57
54
  CHANNEL_WORKER_KILL_GRACE_MS,
58
55
  CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
59
56
  CHANNEL_WORKER_STOP_GRACE_MS
60
- } from "./chunk-5HBA2Z7V.js";
57
+ } from "./chunk-TGNNLRC3.js";
58
+ import {
59
+ sanitizeLogText
60
+ } from "./chunk-WDVV3LRM.js";
61
61
  import {
62
62
  init_esbuild_shims
63
63
  } from "./chunk-5O2XNYP6.js";
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  BaseJsonOutputAdapter
5
- } from "./chunk-RRCNEW2A.js";
5
+ } from "./chunk-PWR6BQ3U.js";
6
6
  import {
7
7
  observeHeadlessJsonToolResultWire
8
- } from "./chunk-PMGWY6ZP.js";
8
+ } from "./chunk-HWLLUDIA.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";
@@ -20,6 +20,8 @@ var JsonOutputAdapter = class extends BaseJsonOutputAdapter {
20
20
  __name(this, "JsonOutputAdapter");
21
21
  }
22
22
  messages = [];
23
+ attemptMessageCheckpoint = 0;
24
+ lastAssistantMessageAtAttemptStart = null;
23
25
  constructor(config) {
24
26
  super(config);
25
27
  }
@@ -39,6 +41,42 @@ var JsonOutputAdapter = class extends BaseJsonOutputAdapter {
39
41
  shouldEmitStreamEvents() {
40
42
  return false;
41
43
  }
44
+ startAssistantMessage() {
45
+ this.attemptMessageCheckpoint = this.messages.length;
46
+ this.lastAssistantMessageAtAttemptStart = this.lastAssistantMessage;
47
+ super.startAssistantMessage();
48
+ }
49
+ restartAttempt(preserveText, discardedToolCalls) {
50
+ if (preserveText) {
51
+ const discardedIds = new Set(
52
+ discardedToolCalls.map((request) => request.callId)
53
+ );
54
+ if (discardedIds.size > 0) {
55
+ const retained = this.messages.slice(this.attemptMessageCheckpoint).filter(
56
+ (message) => message.type !== "assistant" || !message.message.content.some(
57
+ (block) => block.type === "tool_use" && discardedIds.has(block.id)
58
+ )
59
+ );
60
+ this.messages.splice(
61
+ this.attemptMessageCheckpoint,
62
+ this.messages.length - this.attemptMessageCheckpoint,
63
+ ...retained
64
+ );
65
+ this.lastAssistantMessage = this.messages.findLast(
66
+ (message) => message.type === "assistant"
67
+ ) ?? this.lastAssistantMessageAtAttemptStart;
68
+ }
69
+ } else {
70
+ const retained = this.messages.slice(this.attemptMessageCheckpoint).filter((message) => message.type !== "assistant");
71
+ this.messages.splice(
72
+ this.attemptMessageCheckpoint,
73
+ this.messages.length - this.attemptMessageCheckpoint,
74
+ ...retained
75
+ );
76
+ this.lastAssistantMessage = this.lastAssistantMessageAtAttemptStart;
77
+ }
78
+ super.restartAttempt(preserveText, discardedToolCalls);
79
+ }
42
80
  finalizeAssistantMessage() {
43
81
  return this.finalizeAssistantMessageInternal(
44
82
  this.mainAgentMessageState,
@@ -20,12 +20,12 @@ import {
20
20
  detectLineEnding,
21
21
  getDiffStat,
22
22
  needsUtf8Bom
23
- } from "./chunk-TSLRORQR.js";
23
+ } from "./chunk-BDAVT6K2.js";
24
24
  import {
25
25
  FileOperationEvent,
26
26
  getLanguageFromFilePath,
27
27
  logFileOperation
28
- } from "./chunk-WQBR7LN5.js";
28
+ } from "./chunk-FRS3P7MQ.js";
29
29
  import {
30
30
  fileExists,
31
31
  getSpecificMimeType
@@ -6,8 +6,8 @@ import {
6
6
 
7
7
  // packages/cli/src/generated/git-commit.ts
8
8
  init_esbuild_shims();
9
- var GIT_COMMIT_INFO = "4bfa3f93d3";
10
- var CLI_VERSION = "0.23.1-preview.2";
9
+ var GIT_COMMIT_INFO = "44e2b2ed25";
10
+ var CLI_VERSION = "0.23.2-nightly.20260909.2e212144d3";
11
11
 
12
12
  export {
13
13
  GIT_COMMIT_INFO,
@@ -10,11 +10,12 @@ import {
10
10
  DEFAULT_TOOL_OUTPUT_BATCH_BUDGET,
11
11
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
12
12
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
13
- DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD
14
- } from "./chunk-TSLRORQR.js";
13
+ DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
14
+ GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP
15
+ } from "./chunk-BDAVT6K2.js";
15
16
  import {
16
17
  REASONING_EFFORT_TIERS
17
- } from "./chunk-2LD5U7Q3.js";
18
+ } from "./chunk-F3M6P6IQ.js";
18
19
  import {
19
20
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
20
21
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
@@ -972,7 +973,7 @@ var SETTINGS_SCHEMA = {
972
973
  label: "Screen Reader Mode",
973
974
  category: "UI",
974
975
  requiresRestart: true,
975
- default: void 0,
976
+ default: false,
976
977
  description: "Render output in plain-text to be more screen reader accessible",
977
978
  showInDialog: false
978
979
  }
@@ -1249,6 +1250,11 @@ var SETTINGS_SCHEMA = {
1249
1250
  description: "Requires `telemetry.enabled: true`. Inject W3C `traceparent` on outbound `fetch` requests (LLM SDK calls, MCP StreamableHTTP, WebFetch, ...) AND as a `TRACEPARENT` environment variable in shell child processes (Bash tool, hooks, monitor). When enabled, any existing `TRACEPARENT` in the parent environment is overwritten with qwen-code's own trace context. Default: false \u2014 trace context stays internal to the operator's OTLP collector. Set true when you want cross-process trace stitching with an OTel-aware LLM provider (e.g. ARMS+DashScope) or need shell scripts / CLI tools to participate in distributed tracing.",
1250
1251
  type: "boolean",
1251
1252
  default: false
1253
+ },
1254
+ allowDynamicHeaderValues: {
1255
+ description: "SECURITY-RELEVANT. Allow `modelProviders[].generationConfig.customHeaders` values to contain runtime placeholders \u2014 currently `${session_id}` \u2014 expanded per request instead of frozen at client construction. Default false: a value containing a placeholder is dropped rather than sent. Enable when a gateway requires a stable per-conversation identifier (e.g. OpenCode Go requires `x-opencode-session`). Which hosts receive the value and what the header is called are decided by the provider entry you attach the header to; this switch only decides whether `${session_id}` may be expanded from live session state and does not identify which settings source supplied the header.",
1256
+ type: "boolean",
1257
+ default: false
1252
1258
  }
1253
1259
  },
1254
1260
  additionalProperties: false
@@ -1405,6 +1411,17 @@ var SETTINGS_SCHEMA = {
1405
1411
  description: "Autonomous spend window armed on each new Goal, in tokens as counted by the Goal meter (totalTokenCount summed over every model call the Goal makes in its own turns; side queries and checkpoint verification are not metered). When a Goal spends its window it gets one wind-down turn to hand off, then stops until you resume it, which arms another window. Unset uses the built-in default of 30,000,000; -1 means unlimited. Zero, values above 300,000,000 (10x the default, a typo guard), other negative, fractional, or non-number values are rejected at startup.",
1406
1412
  showInDialog: false
1407
1413
  },
1414
+ goalCheckpointTimeoutSeconds: {
1415
+ type: "integer",
1416
+ label: "Goal Checkpoint Timeout (seconds)",
1417
+ category: "Model",
1418
+ requiresRestart: false,
1419
+ default: void 0,
1420
+ minimum: 1,
1421
+ maximum: GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP,
1422
+ description: "Ceiling on one Goal evidence-checkpoint check, in seconds. A long Goal periodically compresses its evidence into checkpoint claims with a side model call. A check whose claims overrun the aggregate byte budget, or include a claim over the per-claim character limit, makes one corrective retry, and both calls share this ceiling. A check that does not finish in time is abandoned as inconclusive; it counts toward the checkpoint stall limit only when the evidence window has overflowed, while a non-overflowing check preserves the streak and retries on a later turn. Unset uses the built-in default of 180. Must be an integer between 1 and 900; other values are rejected at startup. The calls are streamed, so the per-request transport timeout (model.generationConfig.timeout, default 120 s) bounds only connect and first response, and values above 900 are rejected because past the default stream lifetime guard that guard, not this setting, ends the check. The 900 ceiling is fixed: raising QWEN_STREAM_MAX_LIFETIME_MS does not lift it.",
1423
+ showInDialog: false
1424
+ },
1408
1425
  maxToolCalls: {
1409
1426
  type: "number",
1410
1427
  label: "Max Tool Calls",
@@ -2274,7 +2291,7 @@ var SETTINGS_SCHEMA = {
2274
2291
  category: "Tools",
2275
2292
  requiresRestart: true,
2276
2293
  default: {},
2277
- description: "Settings for the built-in WebSearch tool (DashScope Responses API backend). Opt-in: requires enabled=true and a search model. Fully env-configurable for environments without settings.json: ENABLE_WEB_SEARCH, WEB_SEARCH_MODEL, WEB_SEARCH_BASE_URL, WEB_SEARCH_API_KEY (falls back to DASHSCOPE_API_KEY), WEB_SEARCH_EXTRACTOR. Note: baseUrl and API key are env-only (WEB_SEARCH_BASE_URL / WEB_SEARCH_API_KEY) and cannot be set in settings.json.",
2294
+ description: "Settings for the built-in WebSearch tool (DashScope Responses API backend). On by default at startup for Alibaba ModelStudio Standard API Key / Token Plan and OpenAI-compatible entries on recognized DashScope Responses hosts with a direct key; set enabled=false to turn it off. Which providers can activate the tool is decided at startup; once active, the search backend follows the currently selected model on the next search. Fully env-configurable for environments without settings.json: ENABLE_WEB_SEARCH, WEB_SEARCH_MODEL, WEB_SEARCH_BASE_URL, WEB_SEARCH_API_KEY (falls back to DASHSCOPE_API_KEY), WEB_SEARCH_EXTRACTOR. Note: baseUrl and API key are env-only (WEB_SEARCH_BASE_URL / WEB_SEARCH_API_KEY) and cannot be set in settings.json.",
2278
2295
  showInDialog: false,
2279
2296
  properties: {
2280
2297
  enabled: {
@@ -2282,8 +2299,8 @@ var SETTINGS_SCHEMA = {
2282
2299
  label: "Enable WebSearch",
2283
2300
  category: "Tools",
2284
2301
  requiresRestart: true,
2285
- default: false,
2286
- description: "Enable the built-in web_search tool. Also requires tools.webSearch.model. Env override: ENABLE_WEB_SEARCH.",
2302
+ default: void 0,
2303
+ description: "Set false to disable the built-in web_search tool. Automatic startup activation requires leaving enabled, model, and the env-only backend unset. Setting true permits automatic derivation only when the env-only backend is also unset; otherwise a model is required. Env override: ENABLE_WEB_SEARCH.",
2287
2304
  showInDialog: true
2288
2305
  },
2289
2306
  model: {
@@ -2292,7 +2309,7 @@ var SETTINGS_SCHEMA = {
2292
2309
  category: "Tools",
2293
2310
  requiresRestart: true,
2294
2311
  default: void 0,
2295
- description: 'Model selector for the search side request, resolved against modelProviders like fastModel ("modelId" or "authType:modelId"). Must resolve to a DashScope-compatible entry with an envKey. Recommended: qwen3.6-plus. Env override: WEB_SEARCH_MODEL.',
2312
+ description: 'Model selector for the explicit search path ("modelId" or "authType:modelId"). With WEB_SEARCH_BASE_URL it is the plain model id for that endpoint; otherwise it must match a DashScope-compatible modelProviders entry with an envKey. The automatic path uses qwen3.6-plus. Env override: WEB_SEARCH_MODEL.',
2296
2313
  showInDialog: true
2297
2314
  },
2298
2315
  webExtractor: {
@@ -2770,7 +2787,7 @@ var SETTINGS_SCHEMA = {
2770
2787
  label: "Use External Auth",
2771
2788
  category: "Security",
2772
2789
  requiresRestart: true,
2773
- default: void 0,
2790
+ default: false,
2774
2791
  description: "Whether to use an external authentication flow.",
2775
2792
  showInDialog: false
2776
2793
  },
@@ -11,11 +11,11 @@ import {
11
11
  } from "./chunk-HWVUSYSN.js";
12
12
  import {
13
13
  loadSettings
14
- } from "./chunk-RUMSY4ES.js";
14
+ } from "./chunk-Y7YHAY32.js";
15
15
  import {
16
16
  SkillManager,
17
17
  isSafeModeEnv
18
- } from "./chunk-TSLRORQR.js";
18
+ } from "./chunk-BDAVT6K2.js";
19
19
  import {
20
20
  writeStderrLine
21
21
  } from "./chunk-7FA2II6K.js";