@qwen-code/qwen-code 0.23.2-preview.0 → 0.23.2

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 (282) hide show
  1. package/bundled/qc-helper/docs/configuration/auth.md +1 -1
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +19 -15
  3. package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
  4. package/bundled/qc-helper/docs/features/channels/github.md +1 -9
  5. package/bundled/qc-helper/docs/features/channels/overview.md +26 -51
  6. package/bundled/qc-helper/docs/features/channels/qqbot.md +1 -2
  7. package/bundled/qc-helper/docs/features/commands.md +48 -9
  8. package/bundled/qc-helper/docs/features/goals.md +2 -0
  9. package/bundled/qc-helper/docs/features/sub-agents.md +8 -0
  10. package/bundled/qc-helper/docs/qwen-serve.md +62 -48
  11. package/chunks/{MaxSizedBox-ZZJT3PJF.js → MaxSizedBox-4C3BKKKY.js} +17 -16
  12. package/chunks/{StandaloneSessionPicker-DIOSZTMX.js → StandaloneSessionPicker-TXVF65YW.js} +32 -31
  13. package/chunks/{acpAgent-62JUP5A7.js → acpAgent-H5XBKGB4.js} +301 -166
  14. package/chunks/{agent-NLPEQQDZ.js → agent-T5LEFJIU.js} +10 -10
  15. package/chunks/{agent-headless-Y2GR5F2Q.js → agent-headless-VZKSRH36.js} +10 -10
  16. package/chunks/{anthropicContentGenerator-I7LQZH26.js → anthropicContentGenerator-PRJWWVYJ.js} +2 -2
  17. package/chunks/{artifact-tool-P52OKKEF.js → artifact-tool-G5LHNECG.js} +1 -1
  18. package/chunks/{bridge-Q66BD62H.js → bridge-AOX5IY44.js} +18 -17
  19. package/chunks/{channel-management-service-TRTLQTSV.js → channel-management-service-MWQGHPAS.js} +4 -4
  20. package/chunks/{channel-settings-store-R5STFWUW.js → channel-settings-store-XZCGDGHW.js} +26 -25
  21. package/chunks/{channel-worker-group-PIYPVCTF.js → channel-worker-group-SQ5FRWOH.js} +5 -5
  22. package/chunks/{channel-worker-manager-FQHEDTD2.js → channel-worker-manager-TU4ZNWOE.js} +5 -5
  23. package/chunks/{channel-worker-supervisor-XJPZZ3VK.js → channel-worker-supervisor-EMITFMCP.js} +4 -4
  24. package/chunks/{chunk-3SH53ANB.js → chunk-22GORRNY.js} +12 -0
  25. package/chunks/{chunk-7L35FKPF.js → chunk-2BMXHB6N.js} +2 -2
  26. package/chunks/chunk-2WC3Y7YY.js +1033 -0
  27. package/chunks/{chunk-WZ4YULVF.js → chunk-3OAXF3UK.js} +210 -80
  28. package/chunks/{chunk-W673V2H3.js → chunk-46MMBZHI.js} +3 -3
  29. package/chunks/{chunk-6GRDHIVI.js → chunk-4I3WFI3U.js} +4 -4
  30. package/chunks/{chunk-QXXBW2G4.js → chunk-4JNHNVAZ.js} +3 -3
  31. package/chunks/{chunk-R2266LQ5.js → chunk-4WMGYG3F.js} +2 -2
  32. package/chunks/{chunk-Y6ZWXM44.js → chunk-5BH2AIEY.js} +1 -1
  33. package/chunks/{chunk-EA4NFWVG.js → chunk-5OZUKLL7.js} +3 -3
  34. package/chunks/{chunk-RX3FYFCN.js → chunk-67XTVRVB.js} +1 -1
  35. package/chunks/{chunk-MA5OUNN6.js → chunk-6G4V7SE4.js} +1 -1
  36. package/chunks/{chunk-B54PFQS5.js → chunk-7CLLH5TI.js} +1 -1
  37. package/chunks/{chunk-7GZCCHJL.js → chunk-7LTCFO6T.js} +3 -3
  38. package/chunks/{chunk-33MLFMCL.js → chunk-7NDZKE2M.js} +2 -2
  39. package/chunks/{chunk-5WC2ECUK.js → chunk-7PD7ZMX5.js} +17 -4
  40. package/chunks/{chunk-ZUNWKOAP.js → chunk-7SVM3RP2.js} +4 -24
  41. package/chunks/{chunk-5GD7LYOH.js → chunk-A7EFXK7P.js} +1 -1
  42. package/chunks/{chunk-RDV4NLI3.js → chunk-AO2VMS72.js} +2 -2
  43. package/chunks/{chunk-XAXTQURR.js → chunk-APXIW2TF.js} +3 -3
  44. package/chunks/{chunk-3BTHHXXE.js → chunk-AUTUFD5X.js} +1 -1
  45. package/chunks/{chunk-VH764G6B.js → chunk-B25JYXZE.js} +2 -2
  46. package/chunks/{chunk-MMMA36MN.js → chunk-BK7D2JR6.js} +3 -3
  47. package/chunks/{chunk-RPFJJ33Z.js → chunk-CALTQWTZ.js} +1 -1
  48. package/chunks/{chunk-EUXF6URV.js → chunk-CCBTNJB4.js} +16 -18
  49. package/chunks/{chunk-BF3RUIVP.js → chunk-CH2YDT6X.js} +36 -38
  50. package/chunks/{chunk-L6ZME3W7.js → chunk-CMWU6P4D.js} +1 -1
  51. package/chunks/{chunk-QJAFSFYA.js → chunk-CWVZBIZJ.js} +1 -1
  52. package/chunks/{chunk-JDPBJIKI.js → chunk-DAI65CMX.js} +1 -1
  53. package/chunks/{chunk-GM44O6F7.js → chunk-DARWOZY6.js} +1 -1
  54. package/chunks/{chunk-J4ECGDA3.js → chunk-ELD3OBPU.js} +3 -3
  55. package/chunks/{chunk-ZELCTN6Y.js → chunk-F23YN37B.js} +10 -0
  56. package/chunks/{chunk-OIPUQE3S.js → chunk-F2NYVASI.js} +14 -1
  57. package/chunks/{chunk-ODBNTMZW.js → chunk-FAJPLSYF.js} +36 -29
  58. package/chunks/{chunk-GXIHBIHC.js → chunk-FGHPZGOP.js} +29 -24
  59. package/chunks/{chunk-TK4XHPKW.js → chunk-G37O7YO6.js} +2 -2
  60. package/chunks/{chunk-4JKLPTV6.js → chunk-G3ZUMSFS.js} +12 -5
  61. package/chunks/{chunk-743XE7N7.js → chunk-G5VOXCRX.js} +1 -1
  62. package/chunks/{chunk-BL6B2QS2.js → chunk-GOEVQADN.js} +618 -1122
  63. package/chunks/{chunk-XI7RST4D.js → chunk-GOKAOSCN.js} +1 -1
  64. package/chunks/{chunk-FDOGGKAA.js → chunk-GSFV5RQW.js} +2 -0
  65. package/chunks/{chunk-43CI6YWJ.js → chunk-HJ5UJQQL.js} +1384 -1245
  66. package/chunks/{chunk-LUVXLLMS.js → chunk-IR6JKBAP.js} +1 -1
  67. package/chunks/{chunk-CPJRFFPH.js → chunk-IRGDIDGJ.js} +558 -158
  68. package/chunks/{chunk-DCPRCDSR.js → chunk-IWABUX6T.js} +1 -1
  69. package/chunks/{chunk-DTB5BXRG.js → chunk-JO77FGNZ.js} +16 -15
  70. package/chunks/{chunk-45ROPFQY.js → chunk-JYGIJA4W.js} +1 -1
  71. package/chunks/{chunk-M6YLOETP.js → chunk-KCF2436G.js} +1 -1
  72. package/chunks/{chunk-CABDNUJ4.js → chunk-KEPC5BOL.js} +5 -5
  73. package/chunks/{chunk-RN6V5HKE.js → chunk-KFECPHLV.js} +3 -3
  74. package/chunks/{chunk-WIRYFL2L.js → chunk-LEAOJ43M.js} +17 -15
  75. package/chunks/{chunk-IUJLW6ZI.js → chunk-LUNC5KCL.js} +3 -3
  76. package/chunks/{chunk-WZS3X663.js → chunk-LWX4WDFF.js} +2 -5
  77. package/chunks/{chunk-ISPBBKJN.js → chunk-MV5DTLJV.js} +7 -2
  78. package/chunks/chunk-NFXXBWSE.js +463 -0
  79. package/chunks/{chunk-PQSCGZT2.js → chunk-NPKCVSXX.js} +26 -2
  80. package/chunks/{chunk-7RXOEUFF.js → chunk-NX7ZTXFF.js} +1 -1
  81. package/chunks/{chunk-G5QLLD53.js → chunk-OXR34GCD.js} +14 -2
  82. package/chunks/{chunk-VHPG7BH6.js → chunk-PDN7FJZV.js} +1 -1
  83. package/chunks/{chunk-UHUT4IDM.js → chunk-PFKGV6PO.js} +9 -9
  84. package/chunks/{chunk-NFIDVZND.js → chunk-QB3KS3N3.js} +2 -21
  85. package/chunks/{chunk-QLM7D7W3.js → chunk-QFJZAY7W.js} +7 -7
  86. package/chunks/{chunk-NVS4Z6GT.js → chunk-QHLHE2OT.js} +1 -1
  87. package/chunks/{chunk-B44JBZBB.js → chunk-QQK4L3UU.js} +1 -1
  88. package/chunks/{chunk-63ACHB2H.js → chunk-QTB4VP4K.js} +50 -18
  89. package/chunks/{chunk-4BLTSTF6.js → chunk-R3JIDRUL.js} +4 -4
  90. package/chunks/{chunk-VEQBVJYH.js → chunk-R457KFV7.js} +3 -3
  91. package/chunks/{chunk-CG2PDIGD.js → chunk-RM244SCQ.js} +1 -1
  92. package/chunks/{chunk-W7PXLIZJ.js → chunk-RNAJVXUG.js} +5 -5
  93. package/chunks/{chunk-VF6D6EGV.js → chunk-S5QR6CB5.js} +52 -6
  94. package/chunks/{chunk-IRKQ4YYX.js → chunk-SVWWF5TZ.js} +29 -1
  95. package/chunks/{chunk-5HBA2Z7V.js → chunk-TGNNLRC3.js} +2 -3
  96. package/chunks/{chunk-ORREXWOM.js → chunk-TODNHE76.js} +3 -3
  97. package/chunks/{chunk-W3ONSAYO.js → chunk-TOOOLHVS.js} +2 -2
  98. package/chunks/{chunk-EHTKOO6W.js → chunk-TRQNRP2H.js} +2 -2
  99. package/chunks/{chunk-PQWM4SX2.js → chunk-U6REWGVR.js} +2 -2
  100. package/chunks/{chunk-UXDVUFKU.js → chunk-ULZECEIP.js} +2 -2
  101. package/chunks/{chunk-6YEOCHSE.js → chunk-VBLAI2HA.js} +101 -0
  102. package/chunks/{chunk-M73KHGNR.js → chunk-VJJXG73H.js} +404 -226
  103. package/chunks/{chunk-Q2F43WTJ.js → chunk-WBU2PIZ5.js} +23 -6
  104. package/chunks/{chunk-UULHYZ4W.js → chunk-WDN64MVT.js} +74 -15
  105. package/chunks/{chunk-XVTCSVBK.js → chunk-WDVV3LRM.js} +193 -169
  106. package/chunks/{chunk-LBKYQ33T.js → chunk-WK7P62DV.js} +16 -10
  107. package/chunks/{chunk-ULY4ISY2.js → chunk-WXD7INFV.js} +19 -4
  108. package/chunks/{chunk-ZIPYCXQP.js → chunk-WXPPUPHM.js} +1 -1
  109. package/chunks/{chunk-5Z4FCEPY.js → chunk-X7LFJF5D.js} +600 -46
  110. package/chunks/{chunk-YHDGABDC.js → chunk-XKBFYTCD.js} +1 -1
  111. package/chunks/{chunk-MWEF5MUK.js → chunk-XSOXPG2L.js} +8 -8
  112. package/chunks/{chunk-5VZFJTL2.js → chunk-YLOHCA6I.js} +2 -2
  113. package/chunks/{chunk-LN3WBOKU.js → chunk-YQGW3M6Z.js} +2 -2
  114. package/chunks/{chunk-2OR32P5M.js → chunk-ZN5TKAVR.js} +125 -10
  115. package/chunks/{chunk-XBLG564H.js → chunk-ZP5XDLSA.js} +10 -10
  116. package/chunks/{config-utils-37FHWPTP.js → config-utils-GPLIABL2.js} +21 -20
  117. package/chunks/{contextCommand-R4JUBV5N.js → contextCommand-NCUQUDBY.js} +18 -17
  118. package/chunks/{core-runtime-6U4OXU5C.js → core-runtime-WKYKWVYU.js} +23 -21
  119. package/chunks/{create-sub-session-LLUYAGZN.js → create-sub-session-PPLXB3JJ.js} +17 -16
  120. package/chunks/{daemon-UI6SQSBV.js → daemon-2CKIAO3I.js} +2 -2
  121. package/chunks/{daemon-git-worktree-guard-O2UTNFJC.js → daemon-git-worktree-guard-73ZWOLKL.js} +17 -16
  122. package/chunks/{daemon-status-provider-7GMAKSTX.js → daemon-status-provider-OK7VONJG.js} +22 -21
  123. package/chunks/{daemon-trust-policy-VNP76VMO.js → daemon-trust-policy-CAUCREG2.js} +22 -21
  124. package/chunks/{daemon-trust-policy-monitor-TD5O3BZA.js → daemon-trust-policy-monitor-3Y36OOEQ.js} +22 -21
  125. package/chunks/{deferred-core-runtime-NJM63YJS.js → deferred-core-runtime-Q7WFWYD3.js} +17 -16
  126. package/chunks/{dist-STAGIFNB.js → dist-6YDUH3BB.js} +388 -102
  127. package/chunks/{dist-XJ25G6OH.js → dist-BNQVF565.js} +2 -8
  128. package/chunks/{dist-NQ2636VT.js → dist-F34J4FZX.js} +1 -1
  129. package/chunks/{dist-OR2ZQTXZ.js → dist-F6JLAJLE.js} +1 -1
  130. package/chunks/{dist-WZTUKIDR.js → dist-NP7QKLVG.js} +2 -2
  131. package/chunks/{dist-M4CBX53H.js → dist-UFTFGI6I.js} +1 -1
  132. package/chunks/{dist-5I4HLUTO.js → dist-XLV33CLY.js} +1 -2
  133. package/chunks/{dist-24TCWK5H.js → dist-Y5KC3IHW.js} +1 -2
  134. package/chunks/{dist-FDISN4AK.js → dist-ZDNJK74R.js} +3 -7
  135. package/chunks/{edit-GL7OA6RV.js → edit-YJD6IETK.js} +10 -10
  136. package/chunks/{enterPlanMode-VC4BCSZE.js → enterPlanMode-EFPVTWIH.js} +10 -10
  137. package/chunks/{environment-BI6IBAZJ.js → environment-HP3AXFTB.js} +19 -18
  138. package/chunks/{errors-D6G2ZM2R.js → errors-22ON46G7.js} +19 -18
  139. package/chunks/{exitPlanMode-DX446CA6.js → exitPlanMode-MOQUNCBH.js} +10 -10
  140. package/chunks/{fast-path-MAYDLJIP.js → fast-path-2X7BPMXX.js} +3 -3
  141. package/chunks/{glob-TVKRFY36.js → glob-Y7ACIB3P.js} +10 -10
  142. package/chunks/{goal-tools-CA6YANRN.js → goal-tools-DABMICUC.js} +10 -10
  143. package/chunks/{handleAutoUpdate-AW4ZAHON.js → handleAutoUpdate-MCAMHYDI.js} +19 -18
  144. package/chunks/{i18n-IH5CRAY7.js → i18n-C3GDCALP.js} +17 -16
  145. package/chunks/{initializer-UBR37ZNM.js → initializer-4URDQL2G.js} +22 -21
  146. package/chunks/{installationInfo-Y52756EC.js → installationInfo-LBOL6SBV.js} +17 -16
  147. package/chunks/{list-7V5JDZPO.js → list-JOGBAC2R.js} +25 -24
  148. package/chunks/{list-agents-I5TRH3J7.js → list-agents-2CXPGJUE.js} +3 -3
  149. package/chunks/{llm-QDB6JVF5.js → llm-2KPNSAVY.js} +65 -59
  150. package/chunks/{llm-content-generator-EO6MZCEO.js → llm-content-generator-GR3FOHLB.js} +2 -2
  151. package/chunks/{loadedSettingsAdapter-I3YQKMC4.js → loadedSettingsAdapter-DVKROEJD.js} +22 -21
  152. package/chunks/{loggingContentGenerator-MNXYUGDG.js → loggingContentGenerator-P4K6K5W4.js} +12 -12
  153. package/chunks/{managed-npm-update-EA3EXPTO.js → managed-npm-update-VWBKHNIN.js} +17 -16
  154. package/chunks/{mcp-QTAJ544Y.js → mcp-6YYNSYLK.js} +22 -21
  155. package/chunks/{monitor-6FQKQOTP.js → monitor-A255TNZR.js} +10 -10
  156. package/chunks/{nonInteractiveCli-MRCTZL5X.js → nonInteractiveCli-LXGIKQAT.js} +55 -54
  157. package/chunks/{notebook-edit-BQQCKI7K.js → notebook-edit-5UYHS2DM.js} +10 -10
  158. package/chunks/{open-with-auth-D6JD6LDS.js → open-with-auth-6MVIHMXB.js} +1 -1
  159. package/chunks/{openaiContentGenerator-TTSKXNVH.js → openaiContentGenerator-A6MAMEO5.js} +7 -7
  160. package/chunks/{pidfile-KPIS6RIT.js → pidfile-B7DZC4TP.js} +20 -17
  161. package/chunks/{processUtils-ZCASPKK4.js → processUtils-BPZ2MCZS.js} +2 -2
  162. package/chunks/{prompt-terminal-ledger-D6HM6TV7.js → prompt-terminal-ledger-FYYTAOXS.js} +18 -17
  163. package/chunks/{qwenContentGenerator-GGZEFLBD.js → qwenContentGenerator-4IOJFD4S.js} +13 -13
  164. package/chunks/{read-file-VE5GDFLP.js → read-file-A4H4O3VQ.js} +2 -2
  165. package/chunks/{resumeHistoryUtils-HSSGMYDC.js → resumeHistoryUtils-YQQ43E4N.js} +19 -18
  166. package/chunks/{ripGrep-SEJE7AA6.js → ripGrep-W32NWFTA.js} +3 -3
  167. package/chunks/{run-qwen-serve-OJYVH7N6.js → run-qwen-serve-WBSWWIRV.js} +216 -64
  168. package/chunks/{runtime-KGMQQFJD.js → runtime-VRVBX2E5.js} +29 -26
  169. package/chunks/{scheduled-tasks-7H5HWHYD.js → scheduled-tasks-D65KJDA3.js} +20 -19
  170. package/chunks/{scheduler-BE42AKDG.js → scheduler-M2YPN7Z7.js} +19 -18
  171. package/chunks/{send-message-AWKUDJBH.js → send-message-76BKWKFZ.js} +3 -3
  172. package/chunks/{serve-KZVKYMSL.js → serve-BE3H2P6P.js} +22 -21
  173. package/chunks/{server-PJRALPJQ.js → server-FLY5JERG.js} +84 -148
  174. package/chunks/{session-IHITXU2S.js → session-JVN62R5K.js} +85 -57
  175. package/chunks/{session-attachments-root-GQ2TUI3Y.js → session-attachments-root-7ACGLHXA.js} +17 -16
  176. package/chunks/{session-pr-refresh-H43LULTE.js → session-pr-refresh-TQS57SDK.js} +19 -18
  177. package/chunks/{settings-RKEQQDFC.js → settings-D44YMZFT.js} +21 -20
  178. package/chunks/{shell-6PJ444U5.js → shell-3VE6I4V5.js} +10 -10
  179. package/chunks/{skill-Q3UP7B5V.js → skill-FHEGRRZU.js} +2 -2
  180. package/chunks/{skill-settings-LZR5YRRW.js → skill-settings-VHEJMBFL.js} +21 -20
  181. package/chunks/{spawnChannel-WM3DT2BF.js → spawnChannel-T6MX2ZDN.js} +17 -16
  182. package/chunks/{standalone-update-E5474IBI.js → standalone-update-QUGHFMCS.js} +18 -17
  183. package/chunks/{start-opentui-ui-WLWZNQ2I.js → start-opentui-ui-IHIIZ2LE.js} +438 -203
  184. package/chunks/{startInteractiveUI-FBQSGWGO.js → startInteractiveUI-LR7K2ARZ.js} +1171 -1234
  185. package/chunks/{task-create-PMAFST2T.js → task-create-MWXJFRRM.js} +3 -3
  186. package/chunks/{task-list-R2HSY2NC.js → task-list-EYO3FE57.js} +2 -2
  187. package/chunks/{task-update-JYC57USF.js → task-update-2JJJRHMT.js} +3 -3
  188. package/chunks/{team-create-VIGUFUT4.js → team-create-GY3VFY47.js} +10 -10
  189. package/chunks/{team-delete-CBHVBTPB.js → team-delete-IQZ6XGFI.js} +2 -2
  190. package/chunks/{team-plan-approval-HQVZA3MD.js → team-plan-approval-BQPGZOT5.js} +10 -10
  191. package/chunks/{terminal-image-renderer-LUKNCOVM.js → terminal-image-renderer-YNYW5CQG.js} +17 -16
  192. package/chunks/{theme-manager-LOENKYLY.js → theme-manager-U6CIK3GM.js} +17 -16
  193. package/chunks/{tool-search-ZIFAQCE2.js → tool-search-XI3QWD5I.js} +2 -2
  194. package/chunks/{total-session-admission-FUUJH3QH.js → total-session-admission-3SNSJJ32.js} +18 -17
  195. package/chunks/{trustedFolders-C76KYROP.js → trustedFolders-OVAQKNV5.js} +18 -17
  196. package/chunks/{update-relaunch-4G2SRXKX.js → update-relaunch-XV5O74E3.js} +5 -5
  197. package/chunks/{updateCheck-EIZIO7HI.js → updateCheck-CHUYWD6L.js} +17 -16
  198. package/chunks/{useAutoAcceptIndicator-EAA6KSY4.js → useAutoAcceptIndicator-VKSVIXZC.js} +23 -22
  199. package/chunks/{validateNonInterActiveAuth-BRX22QCN.js → validateNonInterActiveAuth-ZNUTD3E5.js} +53 -52
  200. package/chunks/{version-E56RU7PR.js → version-EK7VAGSI.js} +3 -1
  201. package/chunks/{web-fetch-AAUCD7RM.js → web-fetch-24KZO763.js} +2 -2
  202. package/chunks/{web-search-HFUQF44Q.js → web-search-CRNXKZ2X.js} +184 -7
  203. package/chunks/{web-shell-static-POZHGGXE.js → web-shell-static-BFDESDD4.js} +5 -4
  204. package/chunks/{workflow-3MABM53N.js → workflow-HD5NYMW5.js} +201 -65
  205. package/chunks/{workspace-providers-status-2FRLBZ5I.js → workspace-providers-status-MAM42IZS.js} +24 -23
  206. package/chunks/{workspace-registration-store-YL7HLYYI.js → workspace-registration-store-HKLJEDQX.js} +1 -2
  207. package/chunks/{workspace-registry-BNRP2ELW.js → workspace-registry-7RDDOBLN.js} +18 -17
  208. package/chunks/{workspace-runtime-coordinator-WKGF7VHS.js → workspace-runtime-coordinator-LEPDPXJO.js} +18 -17
  209. package/chunks/{workspace-service-4MYO72MM.js → workspace-service-5IFDCNN3.js} +23 -22
  210. package/chunks/{workspace-skills-status-SU66TJLZ.js → workspace-skills-status-FJ3HNH4H.js} +22 -21
  211. package/chunks/{workspace-trust-reconciler-D5QT7WQB.js → workspace-trust-reconciler-PQFHIWLR.js} +23 -22
  212. package/chunks/{write-file-NVPQE2AZ.js → write-file-ERG67ZFX.js} +11 -11
  213. package/chunks/{zoom-image-RJHC66WG.js → zoom-image-WQYEC3SR.js} +2 -2
  214. package/cli.js +12 -12
  215. package/export-transcript-document.js +82 -82
  216. package/package.json +4 -4
  217. package/web-shell/assets/{abnfDiagram-VCTEODGH-DHc6plZn.js → abnfDiagram-VCTEODGH-BRLgQbnT.js} +1 -1
  218. package/web-shell/assets/{arc-BQ9m8TDV.js → arc-qAF9_XsR.js} +1 -1
  219. package/web-shell/assets/{architectureDiagram-5GKGNRK7-D5ap3oVB.js → architectureDiagram-5GKGNRK7-BorUttEz.js} +1 -1
  220. package/web-shell/assets/{blockDiagram-NRAW4CY4-BIbnyNph.js → blockDiagram-NRAW4CY4-Bj0qZVxu.js} +1 -1
  221. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BRsdx_iG.js → c4Diagram-UCG6FXSJ-BTqJis32.js} +1 -1
  222. package/web-shell/assets/channel-COIuCrVH.js +1 -0
  223. package/web-shell/assets/{chunk-2Q5K7J3B-3lf1fNlx.js → chunk-2Q5K7J3B-RrQ5X8m-.js} +1 -1
  224. package/web-shell/assets/{chunk-5VM5RSS4-DP8VNRc4.js → chunk-5VM5RSS4-uUjDl8wO.js} +1 -1
  225. package/web-shell/assets/{chunk-F27PBJKO-DrohDmZ6.js → chunk-F27PBJKO-C3JhpyzI.js} +1 -1
  226. package/web-shell/assets/{chunk-G27WJ6UU-UZ2QhSx6.js → chunk-G27WJ6UU-C8ZNFs7F.js} +1 -1
  227. package/web-shell/assets/{chunk-JWPE2WC7-BIMHVcZK.js → chunk-JWPE2WC7-DNpXtEOs.js} +1 -1
  228. package/web-shell/assets/{chunk-LCL6LL3I-izRxdSDd.js → chunk-LCL6LL3I-DagA2ZLw.js} +1 -1
  229. package/web-shell/assets/{chunk-POPQ4Y6H-CXADD4PP.js → chunk-POPQ4Y6H-R23uH7Xm.js} +1 -1
  230. package/web-shell/assets/{chunk-SVP7TREG-B96d8Y_1.js → chunk-SVP7TREG-Qz9RN_BR.js} +1 -1
  231. package/web-shell/assets/{chunk-XXDRQBXY-CF2sVQpv.js → chunk-XXDRQBXY-jYb1_hni.js} +1 -1
  232. package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +1 -0
  233. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +1 -0
  234. package/web-shell/assets/{cose-bilkent-JH36ORCC-CT6tXVAS.js → cose-bilkent-JH36ORCC-Cv2OunpE.js} +1 -1
  235. package/web-shell/assets/{cynefin-OW5HDTMX-X1NS4vtV.js → cynefin-OW5HDTMX-LH42KFJx.js} +1 -1
  236. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DNsKNOT4.js → cynefinDiagram-5FMLGOSQ-Dha4_OoR.js} +1 -1
  237. package/web-shell/assets/{dagre-3AP2YEHR-9-AHKqsb.js → dagre-3AP2YEHR-Br5lnUKD.js} +1 -1
  238. package/web-shell/assets/{diagram-S7CK7UJ4-Bjgms7j6.js → diagram-S7CK7UJ4-dpKq2bBX.js} +1 -1
  239. package/web-shell/assets/{diagram-UQ7AKVKN-h6bCprbE.js → diagram-UQ7AKVKN-BAgHWpXr.js} +1 -1
  240. package/web-shell/assets/{diagram-VSXAHHWV-4SbQXVLt.js → diagram-VSXAHHWV-GRRzpyE2.js} +1 -1
  241. package/web-shell/assets/{diagram-VX7I27RA-B5gPCzzB.js → diagram-VX7I27RA-BNFiaYpG.js} +1 -1
  242. package/web-shell/assets/{diagram-Z3DM3KII-DFJXIA3A.js → diagram-Z3DM3KII-BisZzB_h.js} +1 -1
  243. package/web-shell/assets/{ebnfDiagram-PWID7BFC-FwyaU7VY.js → ebnfDiagram-PWID7BFC-B1xbwycf.js} +1 -1
  244. package/web-shell/assets/{erDiagram-SSCWMZ5O-8vJQh2te.js → erDiagram-SSCWMZ5O-CQMzbGE5.js} +1 -1
  245. package/web-shell/assets/{flowDiagram-A5DVABFB-BzA_1gMN.js → flowDiagram-A5DVABFB-CZ_Zondl.js} +1 -1
  246. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-Co-ABbVX.js → ganttDiagram-EL5Y4UJY-BTh2ShxS.js} +1 -1
  247. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DW_FcyrX.js → gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js} +1 -1
  248. package/web-shell/assets/{index-Bu-rZoJ-.js → index-CI1ysIEv.js} +478 -474
  249. package/web-shell/assets/index-CpxXGH-8.css +36 -0
  250. package/web-shell/assets/{index-BbMXfhNG.js → index-DWoFMu5x.js} +1 -1
  251. package/web-shell/assets/{infoDiagram-RXCK75RN-BEgfhUFN.js → infoDiagram-RXCK75RN-C0QpudbG.js} +1 -1
  252. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-DCsMxQmc.js → ishikawaDiagram-5VMMS53U-a6B741uT.js} +1 -1
  253. package/web-shell/assets/{journeyDiagram-EYS64GPL-DyIEYoHz.js → journeyDiagram-EYS64GPL-Dbht9ICp.js} +1 -1
  254. package/web-shell/assets/{kanban-definition-3QL26DDD-CkxjqCNr.js → kanban-definition-3QL26DDD-D4OFR8-h.js} +1 -1
  255. package/web-shell/assets/{layout-BEWc0Al9.js → layout-Dvdh5jRH.js} +1 -1
  256. package/web-shell/assets/{linear-CNuNxirL.js → linear-Dvc6KIW2.js} +1 -1
  257. package/web-shell/assets/{mermaid.core-DZBre674.js → mermaid.core-CB36RfIb.js} +6 -6
  258. package/web-shell/assets/{mindmap-definition-FBJOCRG2-CpafFz_F.js → mindmap-definition-FBJOCRG2-Fmqo1CjP.js} +1 -1
  259. package/web-shell/assets/{pegDiagram-XKGWAZYB-DfZqk_dq.js → pegDiagram-XKGWAZYB-CCxYBoA4.js} +1 -1
  260. package/web-shell/assets/{pieDiagram-E7YTZNPT-S0UWXlgC.js → pieDiagram-E7YTZNPT-BVHKQFzt.js} +1 -1
  261. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-dd37_Ohj.js → quadrantDiagram-AXDQQJYC-l95IznwR.js} +1 -1
  262. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CH8NJZ7u.js → railroadDiagram-O6MQD6OU-BlLdRdXp.js} +1 -1
  263. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CFdqWYih.js → requirementDiagram-EFPCY7ZU-BkDLBR5w.js} +1 -1
  264. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CsddcEGD.js → sankeyDiagram-P5KCCOFB-jAIqRp65.js} +1 -1
  265. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BZ270mGw.js → sequenceDiagram-WJ2MYXX4-f-soZYPr.js} +1 -1
  266. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CGaS4DBV.js → sizeCapture-X5ZJPWSS-BzOuAfB2.js} +1 -1
  267. package/web-shell/assets/{stateDiagram-HBIQ2CUA-COpIzMu6.js → stateDiagram-HBIQ2CUA-BPLSs12r.js} +1 -1
  268. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +1 -0
  269. package/web-shell/assets/{swimlanes-XN3QIQJK-CMF889m3.js → swimlanes-XN3QIQJK-D-9E_RIR.js} +1 -1
  270. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +8 -0
  271. package/web-shell/assets/{timeline-definition-24CTP7MA-BelnxYz5.js → timeline-definition-24CTP7MA-CT56K-gV.js} +1 -1
  272. package/web-shell/assets/{vennDiagram-4TSXK5OY-CU-NRqIB.js → vennDiagram-4TSXK5OY-B-vi4IyO.js} +1 -1
  273. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CDNKqWh-.js → wardleyDiagram-VM6X3IG4-C9O7Ju98.js} +1 -1
  274. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CLqguL5D.js → xychartDiagram-S5SC5T6Z-6d8w3jg2.js} +1 -1
  275. package/web-shell/index.html +2 -2
  276. package/chunks/chunk-X35VIWWJ.js +0 -276
  277. package/web-shell/assets/channel-uMMdTrYk.js +0 -1
  278. package/web-shell/assets/classDiagram-DTDB5LWJ-DcY-26Ig.js +0 -1
  279. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DcY-26Ig.js +0 -1
  280. package/web-shell/assets/index-CsPwZ1ut.css +0 -36
  281. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D6qEVAji.js +0 -1
  282. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-mem5Jj4m.js +0 -8
@@ -27,10 +27,10 @@ import {
27
27
  } from "./chunk-3VUENPWF.js";
28
28
  import {
29
29
  loadSettings
30
- } from "./chunk-Q2F43WTJ.js";
30
+ } from "./chunk-WBU2PIZ5.js";
31
31
  import {
32
32
  MCP_BUDGET_WARN_FRACTION
33
- } from "./chunk-43CI6YWJ.js";
33
+ } from "./chunk-HJ5UJQQL.js";
34
34
  import {
35
35
  parsePositiveIntegerEnv
36
36
  } from "./chunk-6PVPNMXU.js";
@@ -151,10 +151,10 @@ var serveCommand = {
151
151
  }).option("hostname", {
152
152
  type: "string",
153
153
  default: DEFAULT_SERVE_HOSTNAME,
154
- description: "Interface to bind. Loopback (127.0.0.0/8, localhost, ::1, [::1]) is auth-free; anything else requires a token."
154
+ description: "Interface to bind. Loopback (127.0.0.0/8, localhost, ::1, [::1]) is auth-free; anything else requires a token (one is generated and printed when neither --token nor QWEN_SERVER_TOKEN supplies one). A localhost bind that resolves off-loopback never generates, and still refuses when no token source resolved; an empty value is rejected as operator error."
155
155
  }).option("token", {
156
156
  type: "string",
157
- description: "Bearer token required on every request. Falls back to the QWEN_SERVER_TOKEN env var."
157
+ description: "Bearer token required on every request. Falls back to the QWEN_SERVER_TOKEN env var; a non-loopback bind with neither generates an ephemeral token at startup, while loopback keeps the trusted tokenless mode unless --require-auth is set."
158
158
  }).option("max-sessions", {
159
159
  type: "number",
160
160
  default: 32,
@@ -182,7 +182,7 @@ var serveCommand = {
182
182
  }).option("require-auth", {
183
183
  type: "boolean",
184
184
  default: false,
185
- description: "Refuse to start without a bearer token, even on loopback. Hardens the loopback developer default for shared dev hosts / CI runners / multi-tenant workstations where any local user can hit 127.0.0.1. Requires --token or QWEN_SERVER_TOKEN. /health also requires Authorization when enabled (no loopback exemption \u2014 k8s/Compose probes must pass the bearer too)."
185
+ description: "Refuse to start without a bearer token, even on loopback. Hardens the loopback developer default for shared dev hosts / CI runners / multi-tenant workstations where any local user can hit 127.0.0.1. Requires --token, QWEN_SERVER_TOKEN, or --open-with-auth (which installs its own generated loopback token); on non-loopback binds the generated ephemeral token also satisfies it, so the no-configured-secret fail-fast is loopback-only. /health also requires Authorization when enabled (no loopback exemption \u2014 k8s/Compose probes must pass the bearer too)."
186
186
  }).option("enable-session-shell", {
187
187
  type: "boolean",
188
188
  default: false,
@@ -447,7 +447,7 @@ var serveCommand = {
447
447
  delete process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV];
448
448
  const openWithAuth = argv["open-with-auth"];
449
449
  const open = argv.open || openWithAuth;
450
- const { runQwenServe } = await import("./run-qwen-serve-OJYVH7N6.js");
450
+ const { runQwenServe } = await import("./run-qwen-serve-WBSWWIRV.js");
451
451
  try {
452
452
  const serveOptions = {
453
453
  port: argv.port,
@@ -513,7 +513,7 @@ var serveCommand = {
513
513
  ...channelSelection !== void 0 ? { channelSelection } : {}
514
514
  };
515
515
  if (openWithAuth) {
516
- const { applyOpenWithAuth } = await import("./open-with-auth-D6JD6LDS.js");
516
+ const { applyOpenWithAuth } = await import("./open-with-auth-6MVIHMXB.js");
517
517
  applyOpenWithAuth(serveOptions);
518
518
  }
519
519
  const handle = await runQwenServe(serveOptions);
@@ -6,7 +6,7 @@ import {
6
6
  getNestedProperty,
7
7
  getPersistScopeForModelSelection,
8
8
  restoreSettingsFromBackup
9
- } from "./chunk-Q2F43WTJ.js";
9
+ } from "./chunk-WBU2PIZ5.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -5,7 +5,7 @@ import {
5
5
  readLocalBootId,
6
6
  readPidNamespaceId,
7
7
  readProcStartToken
8
- } from "./chunk-BF3RUIVP.js";
8
+ } from "./chunk-CH2YDT6X.js";
9
9
  import {
10
10
  atomicWriteJSON
11
11
  } from "./chunk-XFFRI3WM.js";
@@ -148,7 +148,7 @@ import {
148
148
  canonicalSessionPrUrl,
149
149
  normalizeTurnResultError,
150
150
  toSessionPrInfo
151
- } from "./chunk-43CI6YWJ.js";
151
+ } from "./chunk-HJ5UJQQL.js";
152
152
  import {
153
153
  isUnverifiableIdentityError,
154
154
  openNoFollow
@@ -165,7 +165,7 @@ import {
165
165
  metadataBudgetBytes,
166
166
  normalizeSnapshotPayload,
167
167
  stableSessionArtifactId
168
- } from "./chunk-FDOGGKAA.js";
168
+ } from "./chunk-GSFV5RQW.js";
169
169
  import {
170
170
  APPROVAL_MODES
171
171
  } from "./chunk-JX6XHPTX.js";
@@ -4702,6 +4702,8 @@ var BridgeClient = class {
4702
4702
  );
4703
4703
  return;
4704
4704
  }
4705
+ const selected = params["planExecutionMode"];
4706
+ const planExecutionMode = currentModeId === "plan" && typeof selected === "string" && selected !== "plan" && KNOWN_APPROVAL_MODES.has(selected) ? selected : void 0;
4705
4707
  const entry = this.resolveEntry(sessionId);
4706
4708
  if (!entry) {
4707
4709
  writeStderrLine(
@@ -4719,7 +4721,8 @@ var BridgeClient = class {
4719
4721
  this.onModePromoted(
4720
4722
  entry,
4721
4723
  currentModeId,
4722
- entry.activePromptOriginatorClientId
4724
+ entry.activePromptOriginatorClientId,
4725
+ planExecutionMode
4723
4726
  );
4724
4727
  } else {
4725
4728
  entry.events.publish({
@@ -4729,7 +4732,8 @@ var BridgeClient = class {
4729
4732
  sessionId,
4730
4733
  previous: "default",
4731
4734
  next: currentModeId,
4732
- persisted: false
4735
+ persisted: false,
4736
+ ...planExecutionMode ? { planExecutionMode } : {}
4733
4737
  },
4734
4738
  ...entry.activePromptOriginatorClientId ? { originatorClientId: entry.activePromptOriginatorClientId } : {}
4735
4739
  });
@@ -8241,14 +8245,19 @@ var MAX_DISPLAY_NAME_LENGTH = 256;
8241
8245
  var MAX_ECHO_CONTENT_BLOCKS = 256;
8242
8246
  function extractPermissionResponseMetadata(response) {
8243
8247
  if (response === null || typeof response !== "object") return void 0;
8248
+ const metadata = {};
8244
8249
  const answers = response.answers;
8245
8250
  if (answers !== null && typeof answers === "object" && !Array.isArray(answers)) {
8246
8251
  const entries = Object.entries(answers);
8247
8252
  if (entries.every(([, v]) => typeof v === "string")) {
8248
- return { answers };
8253
+ metadata["answers"] = answers;
8249
8254
  }
8250
8255
  }
8251
- return void 0;
8256
+ const expectedPlanExecutionMode = response.expectedPlanExecutionMode;
8257
+ if (typeof expectedPlanExecutionMode === "string") {
8258
+ metadata["expectedPlanExecutionMode"] = expectedPlanExecutionMode;
8259
+ }
8260
+ return Object.keys(metadata).length > 0 ? metadata : void 0;
8252
8261
  }
8253
8262
  __name(extractPermissionResponseMetadata, "extractPermissionResponseMetadata");
8254
8263
  function parseWorkspaceMemoryRememberResult(response) {
@@ -10001,14 +10010,15 @@ function createAcpSessionBridge(opts) {
10001
10010
  (entry, modelId, originator) => publishModelSwitched(entry, modelId, originator),
10002
10011
  // A2: centralised approval_mode_changed publish on in-session mode
10003
10012
  // promotion. `previous` is read from the bridge state cache.
10004
- (entry, modeId, originator) => {
10013
+ (entry, modeId, originator, planExecutionMode) => {
10005
10014
  const se = entry;
10006
10015
  publishApprovalModeChanged(
10007
10016
  se,
10008
10017
  {
10009
10018
  previous: se.currentApprovalMode ?? "default",
10010
10019
  next: modeId,
10011
- persisted: false
10020
+ persisted: false,
10021
+ planExecutionMode
10012
10022
  },
10013
10023
  originator
10014
10024
  );
@@ -10924,7 +10934,7 @@ function createAcpSessionBridge(opts) {
10924
10934
  return work;
10925
10935
  }
10926
10936
  __name(applyModelServiceId, "applyModelServiceId");
10927
- async function applyApprovalMode(entry, mode, persist, originatorClientId) {
10937
+ async function applyApprovalMode(entry, mode, persist, originatorClientId, planMode) {
10928
10938
  if (persist && !persistApprovalMode) {
10929
10939
  throw new Error(
10930
10940
  "setSessionApprovalMode called with `persist: true` but no `persistApprovalMode` callback wired in BridgeOptions. runQwenServe wires the production callback; direct embeds and tests must opt in or omit `persist`."
@@ -10938,7 +10948,11 @@ function createAcpSessionBridge(opts) {
10938
10948
  withTimeout(
10939
10949
  entry.connection.extMethod(
10940
10950
  SERVE_CONTROL_EXT_METHODS.sessionApprovalMode,
10941
- { sessionId: entry.sessionId, mode }
10951
+ {
10952
+ sessionId: entry.sessionId,
10953
+ mode,
10954
+ ...planMode !== void 0 ? { planMode } : {}
10955
+ }
10942
10956
  ),
10943
10957
  initTimeoutMs,
10944
10958
  SERVE_CONTROL_EXT_METHODS.sessionApprovalMode
@@ -10950,6 +10964,10 @@ function createAcpSessionBridge(opts) {
10950
10964
  `Agent returned unknown approval mode: ${JSON.stringify(response.current)}`
10951
10965
  );
10952
10966
  }
10967
+ if (response.planExecutionMode !== void 0 && (response.planExecutionMode === "plan" || !KNOWN_APPROVAL_MODES.has(response.planExecutionMode))) {
10968
+ throw new Error("Agent returned an invalid plan execution mode");
10969
+ }
10970
+ const planExecutionMode = response.current === "plan" ? response.planExecutionMode : void 0;
10953
10971
  let persisted = false;
10954
10972
  if (persist) {
10955
10973
  try {
@@ -10970,11 +10988,12 @@ function createAcpSessionBridge(opts) {
10970
10988
  {
10971
10989
  previous: response.previous,
10972
10990
  next: response.current,
10973
- persisted
10991
+ persisted,
10992
+ planExecutionMode
10974
10993
  },
10975
10994
  originatorClientId
10976
10995
  );
10977
- if (persisted) {
10996
+ if (persisted && planMode === void 0) {
10978
10997
  broadcastWorkspaceEvent(
10979
10998
  {
10980
10999
  type: "approval_mode_changed",
@@ -10993,6 +11012,7 @@ function createAcpSessionBridge(opts) {
10993
11012
  continue;
10994
11013
  }
10995
11014
  peer.currentApprovalMode = response.current;
11015
+ peer.planExecutionMode = void 0;
10996
11016
  }
10997
11017
  }
10998
11018
  succeeded = true;
@@ -11000,7 +11020,8 @@ function createAcpSessionBridge(opts) {
11000
11020
  sessionId: entry.sessionId,
11001
11021
  mode: response.current,
11002
11022
  previous: response.previous,
11003
- persisted
11023
+ persisted,
11024
+ ...planExecutionMode ? { planExecutionMode } : {}
11004
11025
  };
11005
11026
  } finally {
11006
11027
  entry.approvalModeRoundtripInFlight = false;
@@ -11552,6 +11573,7 @@ function createAcpSessionBridge(opts) {
11552
11573
  }, "publishModelSwitched");
11553
11574
  const publishApprovalModeChanged = /* @__PURE__ */ __name((entry, payload, originatorClientId) => {
11554
11575
  entry.currentApprovalMode = payload.next;
11576
+ entry.planExecutionMode = payload.next === "plan" ? payload.planExecutionMode : void 0;
11555
11577
  entry.approvalModePublishGeneration++;
11556
11578
  entry.events.publish({
11557
11579
  type: "approval_mode_changed",
@@ -11560,7 +11582,8 @@ function createAcpSessionBridge(opts) {
11560
11582
  sessionId: entry.sessionId,
11561
11583
  previous: payload.previous,
11562
11584
  next: payload.next,
11563
- persisted: payload.persisted
11585
+ persisted: payload.persisted,
11586
+ ...entry.planExecutionMode ? { planExecutionMode: entry.planExecutionMode } : {}
11564
11587
  },
11565
11588
  ...originatorClientId ? { originatorClientId } : {}
11566
11589
  });
@@ -11593,12 +11616,15 @@ function createAcpSessionBridge(opts) {
11593
11616
  publishModelSwitched(entry, actual, void 0);
11594
11617
  }
11595
11618
  } else {
11596
- const actual = status?.state?.modes?.currentModeId;
11619
+ const modes = status?.state?.modes;
11620
+ const actual = modes?.currentModeId;
11621
+ const selected = modes?._meta?.["planExecutionMode"];
11622
+ const planExecutionMode = actual === "plan" && typeof selected === "string" && selected !== "plan" && KNOWN_APPROVAL_MODES.has(selected) ? selected : void 0;
11597
11623
  if (actual && !KNOWN_APPROVAL_MODES.has(actual)) {
11598
11624
  writeStderrLine(
11599
11625
  `[reconcile] session=${entry.sessionId} target=approvalMode action=dropped reason=unknown_mode mode=${actual}`
11600
11626
  );
11601
- } else if (actual && actual !== entry.currentApprovalMode) {
11627
+ } else if (actual && (actual !== entry.currentApprovalMode || planExecutionMode !== entry.planExecutionMode)) {
11602
11628
  writeStderrLine(
11603
11629
  `[reconcile] session=${entry.sessionId} target=approvalMode action=corrected cached=${entry.currentApprovalMode ?? "<unset>"} actual=${actual}`
11604
11630
  );
@@ -11607,7 +11633,8 @@ function createAcpSessionBridge(opts) {
11607
11633
  {
11608
11634
  previous: entry.currentApprovalMode ?? "default",
11609
11635
  next: actual,
11610
- persisted: false
11636
+ persisted: false,
11637
+ planExecutionMode
11611
11638
  },
11612
11639
  void 0
11613
11640
  );
@@ -11886,6 +11913,8 @@ function createAcpSessionBridge(opts) {
11886
11913
  const mode = resp.modes?.currentModeId;
11887
11914
  if (typeof mode === "string" && KNOWN_APPROVAL_MODES.has(mode)) {
11888
11915
  entry.currentApprovalMode = mode;
11916
+ const selected = resp.modes?._meta?.["planExecutionMode"];
11917
+ entry.planExecutionMode = mode === "plan" && typeof selected === "string" && selected !== "plan" && KNOWN_APPROVAL_MODES.has(selected) ? selected : void 0;
11889
11918
  } else if (mode != null) {
11890
11919
  writeStderrLine(
11891
11920
  `[seed] session=${entry.sessionId} target=approvalMode action=dropped value=${JSON.stringify(mode)} reason=${typeof mode !== "string" ? "invalid_type" : "unknown_mode"}`
@@ -13320,6 +13349,7 @@ function createAcpSessionBridge(opts) {
13320
13349
  ...entry.sessionLastSeenAt !== void 0 ? { lastSeenAt: entry.sessionLastSeenAt } : {},
13321
13350
  ...entry.currentModelId ? { currentModelId: entry.currentModelId } : {},
13322
13351
  ...entry.currentApprovalMode ? { currentApprovalMode: entry.currentApprovalMode } : {},
13352
+ ...entry.planExecutionMode ? { planExecutionMode: entry.planExecutionMode } : {},
13323
13353
  maxJournalEvents: journalLimits?.maxEvents ?? maxJournalEvents,
13324
13354
  maxJournalBytes: journalLimits?.maxBytes ?? maxJournalBytes
13325
13355
  };
@@ -14252,6 +14282,7 @@ function createAcpSessionBridge(opts) {
14252
14282
  sessionId: entry.sessionId,
14253
14283
  currentModelId: entry.currentModelId ?? null,
14254
14284
  currentApprovalMode: entry.currentApprovalMode ?? null,
14285
+ ...entry.planExecutionMode ? { planExecutionMode: entry.planExecutionMode } : {},
14255
14286
  recordingDegraded: entry.recordingDegraded
14256
14287
  }
14257
14288
  }), "snapshotFrame");
@@ -15818,7 +15849,8 @@ function createAcpSessionBridge(opts) {
15818
15849
  entry,
15819
15850
  mode,
15820
15851
  opts2.persist,
15821
- originatorClientId
15852
+ originatorClientId,
15853
+ opts2.planMode
15822
15854
  );
15823
15855
  },
15824
15856
  async generateSessionRecap(sessionId, _context) {
@@ -2,21 +2,21 @@
2
2
  "use strict";
3
3
  import {
4
4
  functionResponsePartsToString
5
- } from "./chunk-ODBNTMZW.js";
5
+ } from "./chunk-FAJPLSYF.js";
6
6
  import {
7
7
  observeHeadlessToolResultProjection,
8
8
  observeHeadlessToolResultWire,
9
9
  projectJsonStringToByteBudget
10
- } from "./chunk-UULHYZ4W.js";
10
+ } from "./chunk-WDN64MVT.js";
11
11
  import {
12
12
  createNotStartedToolErrorResponse,
13
13
  parseAndFormatApiError,
14
14
  toolResultBoundaryArtifact
15
- } from "./chunk-43CI6YWJ.js";
15
+ } from "./chunk-HJ5UJQQL.js";
16
16
  import {
17
17
  formatVisionBridgeNoticeDisplay,
18
18
  isVisionBridgeNoticeDisplay
19
- } from "./chunk-OIPUQE3S.js";
19
+ } from "./chunk-F2NYVASI.js";
20
20
  import {
21
21
  init_esbuild_shims
22
22
  } from "./chunk-5O2XNYP6.js";
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  JsonFormatter
5
- } from "./chunk-BL6B2QS2.js";
5
+ } from "./chunk-GOEVQADN.js";
6
6
  import {
7
7
  parseAndFormatApiError
8
- } from "./chunk-43CI6YWJ.js";
8
+ } from "./chunk-HJ5UJQQL.js";
9
9
  import {
10
10
  FatalBudgetExceededError,
11
11
  FatalCancellationError,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-ZAFYHRVY.js";
15
15
  import {
16
16
  runExitCleanup
17
- } from "./chunk-JDPBJIKI.js";
17
+ } from "./chunk-DAI65CMX.js";
18
18
  import {
19
19
  writeStderrLine
20
20
  } from "./chunk-7FA2II6K.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  runExitCleanup
5
- } from "./chunk-JDPBJIKI.js";
5
+ } from "./chunk-DAI65CMX.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  loadSettings
5
- } from "./chunk-Q2F43WTJ.js";
5
+ } from "./chunk-WBU2PIZ5.js";
6
6
  import {
7
7
  getCurrentLanguage
8
8
  } from "./chunk-CRZBDVP2.js";
9
9
  import {
10
10
  isWorkspaceTrusted
11
- } from "./chunk-7RXOEUFF.js";
11
+ } from "./chunk-NX7ZTXFF.js";
12
12
  import {
13
13
  require_strip_json_comments
14
14
  } from "./chunk-NPQ5ZKRP.js";
15
15
  import {
16
16
  hashMcpServerConfig
17
- } from "./chunk-BL6B2QS2.js";
17
+ } from "./chunk-GOEVQADN.js";
18
18
  import {
19
19
  Config,
20
20
  ExtensionManager,
@@ -25,11 +25,11 @@ import {
25
25
  isGatedMcpScope,
26
26
  normalizeClaudeMcpServer,
27
27
  runWithTimeout
28
- } from "./chunk-43CI6YWJ.js";
28
+ } from "./chunk-HJ5UJQQL.js";
29
29
  import {
30
30
  getMCPServerLastError,
31
31
  getMCPServerStatus
32
- } from "./chunk-OIPUQE3S.js";
32
+ } from "./chunk-F2NYVASI.js";
33
33
  import {
34
34
  atomicWriteFile
35
35
  } from "./chunk-XFFRI3WM.js";
@@ -6,8 +6,11 @@ import {
6
6
  DEFAULT_MAX_RETRIES,
7
7
  REASONING_EFFORT_TIERS,
8
8
  clampReasoningEffort,
9
+ getGptReasoningCapabilities,
10
+ isReasoningEffortPlaceholder,
11
+ parseModelReasoningCapabilities,
9
12
  resolveRequestTimeout
10
- } from "./chunk-6YEOCHSE.js";
13
+ } from "./chunk-VBLAI2HA.js";
11
14
  import {
12
15
  buildSessionAwareFetch
13
16
  } from "./chunk-NOO4QFXM.js";
@@ -6886,6 +6889,22 @@ init_esbuild_shims();
6886
6889
 
6887
6890
  // packages/core/src/core/openaiContentGenerator/provider/default.ts
6888
6891
  init_esbuild_shims();
6892
+
6893
+ // packages/core/src/core/openaiContentGenerator/provider/openrouter.ts
6894
+ init_esbuild_shims();
6895
+ function isOpenRouterHostname(contentGeneratorConfig) {
6896
+ const baseUrl = contentGeneratorConfig.baseUrl ?? "";
6897
+ if (!baseUrl) return false;
6898
+ try {
6899
+ const hostname = new URL(baseUrl).hostname.toLowerCase();
6900
+ return hostname === "openrouter.ai" || hostname.endsWith(".openrouter.ai");
6901
+ } catch {
6902
+ return false;
6903
+ }
6904
+ }
6905
+ __name(isOpenRouterHostname, "isOpenRouterHostname");
6906
+
6907
+ // packages/core/src/core/openaiContentGenerator/provider/default.ts
6889
6908
  var debugLogger = createDebugLogger("DefaultOpenAICompatibleProvider");
6890
6909
  var OPENAI_COMPATIBLE_EFFORTS = [
6891
6910
  "low",
@@ -6971,8 +6990,14 @@ var DefaultOpenAICompatibleProvider = class {
6971
6990
  * clamp calls it through `this`, so a subclass answer applies even on the
6972
6991
  * `super.buildRequest` path.
6973
6992
  */
6974
- supportedReasoningEffortsFor(_model) {
6975
- return OPENAI_COMPATIBLE_EFFORTS;
6993
+ supportedReasoningEffortsFor(model) {
6994
+ const gpt = getGptReasoningCapabilities(model);
6995
+ if (!gpt) return OPENAI_COMPATIBLE_EFFORTS;
6996
+ const { authType, baseUrl } = this.contentGeneratorConfig;
6997
+ const configured = authType && model ? parseModelReasoningCapabilities(
6998
+ this.cliConfig.getResolvedModelConfig?.(authType, model, baseUrl)?.capabilities.reasoning
6999
+ ) : void 0;
7000
+ return configured && !configured.toggleOnly ? configured.efforts : gpt.efforts;
6976
7001
  }
6977
7002
  /**
6978
7003
  * Cap the pipeline-injected `reasoning.effort` at what this endpoint accepts.
@@ -6981,8 +7006,8 @@ var DefaultOpenAICompatibleProvider = class {
6981
7006
  * session too.
6982
7007
  *
6983
7008
  * Only the pipeline-injected tier is capped. A `reasoning` object the user
6984
- * put in `samplingParams` ships verbatim (the pipeline hands those keys
6985
- * straight to the wire and skips the injection entirely), and `extra_body`
7009
+ * put in `samplingParams` ships verbatim. Unrelated GPT sampling options
7010
+ * still receive the configured effort and need clamping. `extra_body`
6986
7011
  * merges after this, so both explicit overrides survive unchanged.
6987
7012
  */
6988
7013
  clampConfiguredReasoningEffort(request) {
@@ -7021,11 +7046,25 @@ var DefaultOpenAICompatibleProvider = class {
7021
7046
  this.applyOutputTokenLimit(request)
7022
7047
  );
7023
7048
  const messages = isQwen3Model(request.model) ? requestWithTokenLimits.messages.map(mirrorReasoningContentToReasoning) : requestWithTokenLimits.messages;
7024
- return {
7049
+ const result = {
7025
7050
  ...requestWithTokenLimits,
7026
7051
  messages,
7027
7052
  ...extraBody ? extraBody : {}
7028
7053
  };
7054
+ this.flattenGptReasoningEffort(result);
7055
+ return result;
7056
+ }
7057
+ flattenGptReasoningEffort(body) {
7058
+ if (!getGptReasoningCapabilities(body["model"]) || isOpenRouterHostname(this.contentGeneratorConfig) || this.contentGeneratorConfig.samplingParams?.["reasoning"] !== void 0 || this.contentGeneratorConfig.extra_body?.["reasoning"] !== void 0)
7059
+ return;
7060
+ const reasoning = body["reasoning"];
7061
+ if (typeof reasoning?.effort !== "string" || !reasoning.effort) return;
7062
+ if (isReasoningEffortPlaceholder(body["reasoning_effort"])) {
7063
+ body["reasoning_effort"] = reasoning.effort;
7064
+ }
7065
+ const { effort: _drop, ...rest } = reasoning;
7066
+ if (Object.keys(rest).length > 0) body["reasoning"] = rest;
7067
+ else delete body["reasoning"];
7029
7068
  }
7030
7069
  getDefaultGenerationConfig() {
7031
7070
  return {};
@@ -7405,6 +7444,7 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
7405
7444
  dropped.add(key);
7406
7445
  }
7407
7446
  this.warnConflictingKnobDrop(model, reasoningEffort, [...dropped]);
7447
+ this.flattenGptReasoningEffort(merged);
7408
7448
  return merged;
7409
7449
  }
7410
7450
  resolveWireModel(model) {
@@ -7719,8 +7759,14 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
7719
7759
 
7720
7760
  export {
7721
7761
  OpenAI,
7762
+ isOpenRouterHostname,
7722
7763
  DefaultOpenAICompatibleProvider,
7723
7764
  selectDashScopeThinkingKnob,
7724
7765
  DASHSCOPE_REGIONAL_HOSTS,
7725
7766
  DashScopeOpenAICompatibleProvider
7726
7767
  };
7768
+ /**
7769
+ * @license
7770
+ * Copyright 2025 Qwen
7771
+ * SPDX-License-Identifier: Apache-2.0
7772
+ */
@@ -15374,9 +15374,37 @@ var require_express2 = __commonJS({
15374
15374
  }
15375
15375
  });
15376
15376
 
15377
+ // packages/cli/src/serve/web-shell-preauth.ts
15378
+ init_esbuild_shims();
15379
+ function isDocumentNavigation(req) {
15380
+ const fetchMode = req.headers["sec-fetch-mode"];
15381
+ const fetchDest = req.headers["sec-fetch-dest"];
15382
+ const accept = req.headers.accept ?? "";
15383
+ return fetchMode === "navigate" || fetchDest === "document" || accept.trim().toLowerCase().startsWith("text/html");
15384
+ }
15385
+ __name(isDocumentNavigation, "isDocumentNavigation");
15386
+ var SESSION_DEEP_LINK_PATH = /^\/session\/[^/]+\/?$/u;
15387
+ function isPreAuthWebShellRequest(req) {
15388
+ if (req.method !== "GET" && req.method !== "HEAD") return false;
15389
+ const reqPath = req.path.toLowerCase();
15390
+ if (reqPath === "/" || // Express non-strict routing compiles `/` to `/^(?:\/)(?:\/$)?$/i`, so
15391
+ // a raw `//` also matches `app.get('/')` pre-auth (but `///` does not).
15392
+ reqPath === "//" || reqPath === "/assets" || reqPath.startsWith("/assets/") || reqPath === "/mcp-app-sandbox")
15393
+ return true;
15394
+ return SESSION_DEEP_LINK_PATH.test(reqPath) && isDocumentNavigation(req);
15395
+ }
15396
+ __name(isPreAuthWebShellRequest, "isPreAuthWebShellRequest");
15397
+
15377
15398
  export {
15378
- require_express2 as require_express
15399
+ require_express2 as require_express,
15400
+ isDocumentNavigation,
15401
+ isPreAuthWebShellRequest
15379
15402
  };
15403
+ /**
15404
+ * @license
15405
+ * Copyright 2025 Qwen Team
15406
+ * SPDX-License-Identifier: Apache-2.0
15407
+ */
15380
15408
  /*! Bundled license information:
15381
15409
 
15382
15410
  depd/index.js:
@@ -6,16 +6,15 @@ import {
6
6
 
7
7
  // packages/acp-bridge/dist/channel-control-timeouts.js
8
8
  init_esbuild_shims();
9
- var MAX_DAEMON_WORKSPACES = 25;
10
9
  var CHANNEL_WORKER_STARTUP_TIMEOUT_MS = 3e4;
11
10
  var CHANNEL_WORKER_STOP_GRACE_MS = 1e4;
12
11
  var CHANNEL_WORKER_KILL_GRACE_MS = 2e3;
13
12
  var CHANNEL_CONTROL_CLIENT_HEADROOM_MS = 3e4;
13
+ var MAX_CHANNEL_CONTROL_WORKSPACES = 25;
14
14
  var CHANNEL_WORKER_STOP_TIMEOUT_MS = CHANNEL_WORKER_STOP_GRACE_MS + CHANNEL_WORKER_KILL_GRACE_MS;
15
- var CHANNEL_CONTROL_DEFAULT_TIMEOUT_MS = 2 * MAX_DAEMON_WORKSPACES * (CHANNEL_WORKER_STOP_TIMEOUT_MS + CHANNEL_WORKER_STARTUP_TIMEOUT_MS) + CHANNEL_CONTROL_CLIENT_HEADROOM_MS;
15
+ var CHANNEL_CONTROL_DEFAULT_TIMEOUT_MS = 2 * MAX_CHANNEL_CONTROL_WORKSPACES * (CHANNEL_WORKER_STOP_TIMEOUT_MS + CHANNEL_WORKER_STARTUP_TIMEOUT_MS) + CHANNEL_CONTROL_CLIENT_HEADROOM_MS;
16
16
 
17
17
  export {
18
- MAX_DAEMON_WORKSPACES,
19
18
  CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
20
19
  CHANNEL_WORKER_STOP_GRACE_MS,
21
20
  CHANNEL_WORKER_KILL_GRACE_MS,
@@ -5,20 +5,20 @@ import {
5
5
  } from "./chunk-57OAHC2Y.js";
6
6
  import {
7
7
  loadSettings
8
- } from "./chunk-Q2F43WTJ.js";
8
+ } from "./chunk-WBU2PIZ5.js";
9
9
  import {
10
10
  getCurrentLanguage,
11
11
  t
12
12
  } from "./chunk-CRZBDVP2.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-7RXOEUFF.js";
15
+ } from "./chunk-NX7ZTXFF.js";
16
16
  import {
17
17
  ExtensionManager,
18
18
  getExtensionDescription,
19
19
  getExtensionDisplayName,
20
20
  require_prompts
21
- } from "./chunk-43CI6YWJ.js";
21
+ } from "./chunk-HJ5UJQQL.js";
22
22
  import {
23
23
  stripAnsi
24
24
  } from "./chunk-TWPJO254.js";
@@ -9,11 +9,11 @@ import {
9
9
  import {
10
10
  findProviderByCredentials,
11
11
  resolveMetadataKey
12
- } from "./chunk-BL6B2QS2.js";
12
+ } from "./chunk-2WC3Y7YY.js";
13
13
  import {
14
14
  fetchGitDiff,
15
15
  isCompressionFailureStatus
16
- } from "./chunk-43CI6YWJ.js";
16
+ } from "./chunk-HJ5UJQQL.js";
17
17
  import {
18
18
  init_esbuild_shims
19
19
  } from "./chunk-5O2XNYP6.js";
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-FAWTMDX7.js";
9
9
  import {
10
10
  ChannelWorkerStartupError
11
- } from "./chunk-CABDNUJ4.js";
11
+ } from "./chunk-KEPC5BOL.js";
12
12
  import {
13
13
  ChannelWebhookEnqueueError
14
14
  } from "./chunk-STUJ7IMZ.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-RKFGE7JH.js";
18
18
  import {
19
19
  CHANNEL_LOOP_MCP_SERVER_NAME
20
- } from "./chunk-XVTCSVBK.js";
20
+ } from "./chunk-WDVV3LRM.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-5O2XNYP6.js";
@@ -3,11 +3,11 @@
3
3
  import {
4
4
  TURN_INTERRUPTION_HISTORY_TAIL_COUNT,
5
5
  detectTurnInterruption
6
- } from "./chunk-BL6B2QS2.js";
6
+ } from "./chunk-GOEVQADN.js";
7
7
  import {
8
8
  SessionService,
9
9
  buildApiHistoryFromConversation
10
- } from "./chunk-43CI6YWJ.js";
10
+ } from "./chunk-HJ5UJQQL.js";
11
11
  import {
12
12
  init_esbuild_shims
13
13
  } from "./chunk-5O2XNYP6.js";
@@ -3,10 +3,10 @@
3
3
  import {
4
4
  getPlugin,
5
5
  supportedTypes
6
- } from "./chunk-UHUT4IDM.js";
6
+ } from "./chunk-PFKGV6PO.js";
7
7
  import {
8
8
  resolveChannelCwd
9
- } from "./chunk-3BTHHXXE.js";
9
+ } from "./chunk-AUTUFD5X.js";
10
10
  import {
11
11
  isInternalSecretEnvVar
12
12
  } from "./chunk-65I7S4Z3.js";