@qwen-code/qwen-code 0.19.10 → 0.19.11-nightly.20260717.f8e6e8931

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 (275) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +7 -6
  2. package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
  3. package/bundled/qc-helper/docs/features/channels/dingtalk.md +30 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +53 -17
  5. package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
  6. package/bundled/qc-helper/docs/features/sandbox.md +2 -0
  7. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +42 -7
  8. package/bundled/qc-helper/docs/qwen-serve.md +53 -46
  9. package/bundled/review/SKILL.md +163 -403
  10. package/chunks/{MaxSizedBox-67ODZ4SZ.js → MaxSizedBox-JGTP7YJQ.js} +13 -13
  11. package/chunks/{StandaloneSessionPicker-SIPBQT5Z.js → StandaloneSessionPicker-2XQDOYZ5.js} +27 -27
  12. package/chunks/{acpAgent-VPZJXLFX.js → acpAgent-RXRJA7GD.js} +1135 -373
  13. package/chunks/{agent-Z7NWL6XL.js → agent-UQP53UWQ.js} +10 -10
  14. package/chunks/{agent-headless-73HZ6ROQ.js → agent-headless-I52OXDCK.js} +10 -10
  15. package/chunks/{anthropicContentGenerator-56U3YCP2.js → anthropicContentGenerator-HBRXJSP4.js} +76 -14
  16. package/chunks/{artifact-tool-BWZZJ42H.js → artifact-tool-MIZLXBLF.js} +1 -1
  17. package/chunks/{askUserQuestion-WU3S5A5T.js → askUserQuestion-XMJVPNWM.js} +1 -1
  18. package/chunks/{bridge-XFKW6S7Q.js → bridge-3DVRNBSF.js} +14 -16
  19. package/chunks/{ca-C2JTT2N5.js → ca-CODEN7TD.js} +5 -0
  20. package/chunks/channel-worker-group-SOUWTFHC.js +21 -0
  21. package/chunks/{channel-worker-manager-5RWKSGEU.js → channel-worker-manager-LOVSV3WW.js} +34 -10
  22. package/chunks/{channel-worker-supervisor-PCDAZN4D.js → channel-worker-supervisor-XW6MHJBQ.js} +6 -4
  23. package/chunks/{chunk-BBNVFRGD.js → chunk-3DWIFU7L.js} +1 -1
  24. package/chunks/{chunk-ZQTZXVHP.js → chunk-3KSHYS4T.js} +4 -18
  25. package/chunks/{chunk-ZKMGAFYV.js → chunk-3LS57JZI.js} +1 -1
  26. package/chunks/{chunk-B5I2IIWY.js → chunk-46Y6SSQ7.js} +5 -5
  27. package/chunks/{chunk-GDQQRV43.js → chunk-4BJVSIS3.js} +2 -2
  28. package/chunks/{chunk-L37RC7MQ.js → chunk-4HTHLSIH.js} +1 -1
  29. package/chunks/{chunk-DPFBNG72.js → chunk-4UBEB74N.js} +1 -1
  30. package/chunks/{chunk-AAR5SGMD.js → chunk-4YR7FSAM.js} +7 -5
  31. package/chunks/{chunk-OATTJGPJ.js → chunk-5CNYZ7TN.js} +7 -7
  32. package/chunks/{chunk-JSJFKYWT.js → chunk-5VWYKIMW.js} +1 -1
  33. package/chunks/{chunk-6GETGQWP.js → chunk-5WWYHNAH.js} +39 -10
  34. package/chunks/{chunk-65N2J6V2.js → chunk-6ANLV27M.js} +2 -2
  35. package/chunks/{chunk-L62SEJWY.js → chunk-6RV42SFP.js} +4 -4
  36. package/chunks/{chunk-XXJKGHZV.js → chunk-6VMOP2Z7.js} +4 -4
  37. package/chunks/{chunk-URU5UEK6.js → chunk-6WGZDD67.js} +135 -68
  38. package/chunks/{chunk-7NAWTFVY.js → chunk-6WPJRYLZ.js} +2 -2
  39. package/chunks/chunk-6WVLHULT.js +59 -0
  40. package/chunks/{chunk-N6FXRR6P.js → chunk-7ZFXHKKZ.js} +1 -1
  41. package/chunks/{chunk-E67NFMF4.js → chunk-A2HWMJVO.js} +35 -1
  42. package/chunks/{chunk-4FMG7EDJ.js → chunk-AEKHQ3E5.js} +77 -11
  43. package/chunks/{chunk-WIASPMLX.js → chunk-AH3YAJU6.js} +22 -33
  44. package/chunks/{chunk-6GKMJPOC.js → chunk-AHAH5H6D.js} +3 -3
  45. package/chunks/{chunk-3XJFUTNM.js → chunk-AVAU67KP.js} +57 -10
  46. package/chunks/{chunk-LNUXFLLJ.js → chunk-BDHYJ2MM.js} +53 -5
  47. package/chunks/{chunk-P6LART6G.js → chunk-BTSE2DUP.js} +957 -122
  48. package/chunks/{chunk-7MJAZMXK.js → chunk-BZ5D7OVV.js} +28 -77
  49. package/chunks/{chunk-WDWJ4OQJ.js → chunk-CC2UASQ4.js} +3 -3
  50. package/chunks/{chunk-WLXYAKV7.js → chunk-D7KYA6EY.js} +3 -3
  51. package/chunks/{chunk-5LROA5W4.js → chunk-DD45XVOQ.js} +3 -3
  52. package/chunks/{chunk-H3FQOPPS.js → chunk-DOPUYNXO.js} +2 -2
  53. package/chunks/{chunk-SPUYQB4T.js → chunk-DPXB3XRN.js} +1 -1
  54. package/chunks/{chunk-XLIRF7IK.js → chunk-E7ECGLZW.js} +1 -1
  55. package/chunks/{chunk-RDRVMDWV.js → chunk-EMJJBXS7.js} +10 -10
  56. package/chunks/{chunk-TXY2C3D2.js → chunk-F333XEAU.js} +1 -1
  57. package/chunks/chunk-FEOZBUMT.js +77 -0
  58. package/chunks/{chunk-YYPXHMWO.js → chunk-FEYHXPZG.js} +4 -4
  59. package/chunks/{chunk-ZRKBI3DP.js → chunk-FNX3LGAK.js} +1 -1
  60. package/chunks/chunk-FXK3QMRD.js +140 -0
  61. package/chunks/{chunk-422XAKCK.js → chunk-G5ZKRK2E.js} +2 -2
  62. package/chunks/{chunk-DK33QJ3V.js → chunk-GCRFH57X.js} +732 -13
  63. package/chunks/{chunk-EQY6POVO.js → chunk-GLEJW7T2.js} +1 -1
  64. package/chunks/{chunk-FXMC7SL2.js → chunk-I6NOSIVF.js} +1 -1
  65. package/chunks/{chunk-VBRRNQB7.js → chunk-IHJRUIWN.js} +109 -22
  66. package/chunks/{chunk-F7NXQH4Y.js → chunk-IIXEI2VE.js} +1 -1
  67. package/chunks/{chunk-2UUAIFQO.js → chunk-JGUT3LWZ.js} +5 -0
  68. package/chunks/{chunk-5EBKKSBX.js → chunk-JY74T7PW.js} +1 -1
  69. package/chunks/chunk-KSZKSE23.js +226 -0
  70. package/chunks/{chunk-MO7O5722.js → chunk-KW46DBFM.js} +35 -2
  71. package/chunks/{chunk-TISZXPAX.js → chunk-L263ROM6.js} +1 -1
  72. package/chunks/chunk-LXXMOYPL.js +22 -0
  73. package/chunks/{chunk-YX4LLZ3D.js → chunk-NABT4VOY.js} +109 -35
  74. package/chunks/{chunk-W34A5MJH.js → chunk-NROLDLP4.js} +1 -1
  75. package/chunks/{chunk-V7EQTZYR.js → chunk-O3WCEZEN.js} +191 -44
  76. package/chunks/{chunk-K4PZ5F5T.js → chunk-OWT2CAEQ.js} +1 -1
  77. package/chunks/{chunk-4YWLED2A.js → chunk-PNCWEDF6.js} +7 -4
  78. package/chunks/{chunk-WDW64OW3.js → chunk-PSDTLRAV.js} +5 -5
  79. package/chunks/{chunk-7R4DPSRA.js → chunk-R3VWUU2E.js} +1 -1
  80. package/chunks/{chunk-K7CRWKOE.js → chunk-R6AO7HBQ.js} +4617 -4012
  81. package/chunks/{chunk-6OATMEYN.js → chunk-RTV5TUYB.js} +12 -4
  82. package/chunks/{chunk-6W6DI34P.js → chunk-SE6GSFAO.js} +159 -2
  83. package/chunks/{chunk-WTSXKLG5.js → chunk-SUARMD4Q.js} +1 -1
  84. package/chunks/chunk-T4TZQJ7W.js +48 -0
  85. package/chunks/{chunk-LTNI523B.js → chunk-T7CZYIAU.js} +28 -5
  86. package/chunks/{chunk-3MX7D6QN.js → chunk-TIOE2OPE.js} +32 -4
  87. package/chunks/{chunk-TTUO4DNG.js → chunk-UF6ZTWU5.js} +75 -710
  88. package/chunks/{chunk-Q5GLXH5Q.js → chunk-UJG4VV2O.js} +5 -5
  89. package/chunks/{chunk-CJFNEBYB.js → chunk-VFEZWI6F.js} +1 -1
  90. package/chunks/{chunk-UFOKA4PR.js → chunk-VHCSIMTF.js} +114 -4
  91. package/chunks/{chunk-TQBODCFD.js → chunk-VRR65QYW.js} +250 -2
  92. package/chunks/{chunk-CUUXANEQ.js → chunk-W6J7RSCK.js} +6 -1
  93. package/chunks/{chunk-YHN5SUIJ.js → chunk-W7H223ZZ.js} +1 -1
  94. package/chunks/{chunk-WX6SD4IQ.js → chunk-WTNZ6DXB.js} +1 -1
  95. package/chunks/{chunk-GGJII3FM.js → chunk-WZJELXEU.js} +92 -3
  96. package/chunks/{chunk-OFEVHGVU.js → chunk-X5HZX4EP.js} +9 -11
  97. package/chunks/{chunk-KSO42X3Z.js → chunk-X6YQWCIJ.js} +21 -2
  98. package/chunks/{chunk-7L4XBYVW.js → chunk-XK42MWWO.js} +9 -2
  99. package/chunks/{chunk-X362TMXZ.js → chunk-XQDPCQ3A.js} +7 -5
  100. package/chunks/{chunk-YU56QGXX.js → chunk-Y3TNSHKF.js} +1 -1
  101. package/chunks/{chunk-HHEFI4RP.js → chunk-YOJGIRTD.js} +714 -109
  102. package/chunks/{chunk-CEW4HDPK.js → chunk-ZK4AMPKI.js} +2459 -350
  103. package/chunks/{chunk-SXU3KKNI.js → chunk-ZQIYGQCG.js} +251 -54
  104. package/chunks/{computer-use-IYTX45WA.js → computer-use-LTW3VB6L.js} +10 -10
  105. package/chunks/{config-utils-CFT33LTP.js → config-utils-IQQT3GCI.js} +3 -3
  106. package/chunks/{contextCommand-272V77WU.js → contextCommand-GLMC6CTP.js} +12 -12
  107. package/chunks/{create-sub-session-WNX2OQVX.js → create-sub-session-EAB2U5XW.js} +1 -1
  108. package/chunks/{create-sub-session-CBJMQLYP.js → create-sub-session-YMWQAWSN.js} +10 -10
  109. package/chunks/{cron-create-36TIFKRT.js → cron-create-GMVKSXZT.js} +1 -1
  110. package/chunks/{cron-delete-OQD3WULU.js → cron-delete-VDZKUAVK.js} +1 -1
  111. package/chunks/{cron-list-4533T2FH.js → cron-list-UG7C7RAR.js} +1 -1
  112. package/chunks/{daemon-RNGFPMAB.js → daemon-PRB64RP5.js} +303 -71
  113. package/chunks/{daemon-status-provider-L4STG5VO.js → daemon-status-provider-5OMM5JHF.js} +19 -20
  114. package/chunks/{de-2VCDRDGU.js → de-NOXPCSYN.js} +5 -0
  115. package/chunks/{dist-ERCPDVA6.js → dist-4WCQEZIN.js} +4 -51
  116. package/chunks/{dist-MOEC47TR.js → dist-DOPL5LSQ.js} +1 -1
  117. package/chunks/{dist-JZE7F6YR.js → dist-GXJVCOS7.js} +1 -1
  118. package/chunks/{dist-PHEPJLXD.js → dist-PX2ERZ6I.js} +2 -2
  119. package/chunks/{dist-HNN7DR2L.js → dist-V2YVLYOW.js} +58 -30
  120. package/chunks/{dist-3V3ZV6ML.js → dist-VYWUKURL.js} +1 -1
  121. package/chunks/{earlyInputCapture-EN4BRREQ.js → earlyInputCapture-A3WSRN4T.js} +10 -10
  122. package/chunks/{edit-OMAF2QDR.js → edit-7PG4AH27.js} +10 -10
  123. package/chunks/{en-NJCA3TAA.js → en-JFVULHTB.js} +6 -0
  124. package/chunks/{enter-worktree-BBZX52HG.js → enter-worktree-QUSB44RE.js} +10 -10
  125. package/chunks/{enterPlanMode-5NNFMBUY.js → enterPlanMode-NVSIEL7X.js} +10 -10
  126. package/chunks/{environment-7TEWMJYN.js → environment-AHHXHQTI.js} +12 -12
  127. package/chunks/{errors-I4VKVX3F.js → errors-NSWSRXC7.js} +12 -12
  128. package/chunks/{exit-worktree-FUWRJI33.js → exit-worktree-FXYEYHPL.js} +10 -10
  129. package/chunks/{exitPlanMode-IHCJ5EEI.js → exitPlanMode-JI5GK3F6.js} +10 -10
  130. package/chunks/{fast-path-ZA57TOH4.js → fast-path-X7EVDLKZ.js} +2 -2
  131. package/chunks/{fr-5F3E7WKD.js → fr-HVFNU42H.js} +5 -0
  132. package/chunks/{gemini-UOAKVXBG.js → gemini-YRLHY5KS.js} +162 -206
  133. package/chunks/{geminiContentGenerator-G6UCE6MW.js → geminiContentGenerator-SPLFPV5E.js} +1 -1
  134. package/chunks/{glob-4GJQ2UFF.js → glob-WASUBCSA.js} +10 -10
  135. package/chunks/{grep-5QSYXF2E.js → grep-DUVG3NGA.js} +10 -10
  136. package/chunks/{handleAutoUpdate-ULHNWL6R.js → handleAutoUpdate-NGE5AQ2N.js} +14 -14
  137. package/chunks/{i18n-CYDUTF6F.js → i18n-QNVR36NB.js} +11 -11
  138. package/chunks/{initializer-NRFKUGIO.js → initializer-ZY7ORPMH.js} +15 -15
  139. package/chunks/{installationInfo-WELKRHHE.js → installationInfo-4R75MFTB.js} +11 -11
  140. package/chunks/{ja-66J6B53L.js → ja-PY5AF544.js} +5 -0
  141. package/chunks/{list-JVDXEG2E.js → list-36JCMZRS.js} +18 -18
  142. package/chunks/{loadedSettingsAdapter-WAM4VUTG.js → loadedSettingsAdapter-PQIOJUSJ.js} +15 -15
  143. package/chunks/{loop-wakeup-MVUKDVCP.js → loop-wakeup-QXWZSCYM.js} +2 -2
  144. package/chunks/{ls-RXNIAQDE.js → ls-2OUTG3IZ.js} +1 -1
  145. package/chunks/{lsp-HB5LM5IL.js → lsp-4VMNXZW6.js} +1 -1
  146. package/chunks/{mcp-YHOZN3ZM.js → mcp-QXY6XA6H.js} +15 -15
  147. package/chunks/{monitor-R7XZPJHQ.js → monitor-AVEKRSY3.js} +12 -11
  148. package/chunks/{nonInteractiveCli-NSOB6D74.js → nonInteractiveCli-YWIBKX4M.js} +50 -50
  149. package/chunks/{notebook-edit-6RNKE2L2.js → notebook-edit-4SBTJX72.js} +10 -10
  150. package/chunks/{openaiContentGenerator-XNS5S64I.js → openaiContentGenerator-4EBAO7LR.js} +8 -8
  151. package/chunks/{pidfile-XE4RRR2P.js → pidfile-JMIUPXSU.js} +10 -10
  152. package/chunks/processUtils-EOINMEIH.js +29 -0
  153. package/chunks/{pt-TFZO5Y6T.js → pt-A3PRQXMU.js} +5 -0
  154. package/chunks/{qwenContentGenerator-APDPJ3VN.js → qwenContentGenerator-M7UBL3JS.js} +12 -12
  155. package/chunks/{read-file-XSUWXSR7.js → read-file-DXSEFHCV.js} +5 -5
  156. package/chunks/{read-mcp-resource-6LRTZKXI.js → read-mcp-resource-JUFHCKSC.js} +1 -1
  157. package/chunks/{record-artifact-PMDTY4OS.js → record-artifact-DWSMBXYY.js} +1 -1
  158. package/chunks/{ripGrep-APB3CDMU.js → ripGrep-VTRVFMDJ.js} +10 -10
  159. package/chunks/{ru-4L4LFHIT.js → ru-IBCWUTOC.js} +5 -0
  160. package/chunks/{run-qwen-serve-NWTGPERT.js → run-qwen-serve-P7WQDZAS.js} +59 -38
  161. package/chunks/{runtime-EIO3NQKR.js → runtime-UHYO6JGN.js} +19 -19
  162. package/chunks/{scheduler-JJDZBDRN.js → scheduler-WTK7ZLV5.js} +10 -10
  163. package/chunks/{send-message-SR4WSXP2.js → send-message-JZ752NWD.js} +2 -2
  164. package/chunks/{serve-WTIPB3EI.js → serve-AG2AOG56.js} +15 -15
  165. package/chunks/{server-NJPHQHLH.js → server-G5MM2BRI.js} +1157 -225
  166. package/chunks/{session-O4AO7FTS.js → session-NUAGEMVS.js} +51 -51
  167. package/chunks/{settings-HQNDK7TG.js → settings-VQA5PR2M.js} +14 -14
  168. package/chunks/{shell-UIXM6PWG.js → shell-X33RWGLP.js} +12 -10
  169. package/chunks/{skill-3XMB4ULV.js → skill-PHSU2OPP.js} +5 -5
  170. package/chunks/{spawnChannel-3R632QRM.js → spawnChannel-D6TZN4W7.js} +12 -13
  171. package/chunks/{src-USZKPUOC.js → src-6OJFUPTL.js} +95 -34
  172. package/chunks/{standalone-update-L5XW3D7K.js → standalone-update-ZARRW44Y.js} +12 -12
  173. package/chunks/{startInteractiveUI-CPZOL2WB.js → startInteractiveUI-C6IZRTF3.js} +176 -158
  174. package/chunks/{syntheticOutput-YKFNUQZD.js → syntheticOutput-LELY6HAI.js} +2 -2
  175. package/chunks/{task-create-NUFOHU53.js → task-create-QY3BIMNM.js} +3 -3
  176. package/chunks/{task-list-Z2IKQY3S.js → task-list-D2U47WBJ.js} +1 -1
  177. package/chunks/{task-stop-KQFIVQTJ.js → task-stop-N6E5IYLH.js} +1 -1
  178. package/chunks/{task-update-HKADXSTD.js → task-update-HJCQILLB.js} +3 -3
  179. package/chunks/{team-create-XXPRF3IQ.js → team-create-H434NQP2.js} +10 -10
  180. package/chunks/{team-delete-SDNTGZLG.js → team-delete-RCWYDRF4.js} +1 -1
  181. package/chunks/{team-plan-approval-EOTTKHDW.js → team-plan-approval-IIOHXZU6.js} +10 -10
  182. package/chunks/{theme-manager-P6UITO2L.js → theme-manager-IEOPHMX6.js} +10 -10
  183. package/chunks/{todoWrite-YNXB27GB.js → todoWrite-FKCGATPJ.js} +1 -1
  184. package/chunks/{tool-search-DDNGK2LR.js → tool-search-WIIEDALL.js} +6 -6
  185. package/chunks/{total-session-admission-PL5N7DNY.js → total-session-admission-WU3DORRW.js} +15 -17
  186. package/chunks/{trustedFolders-C5LMF3UR.js → trustedFolders-JVUTUAJ3.js} +11 -11
  187. package/chunks/update-relaunch-X5EQKCH5.js +87 -0
  188. package/chunks/{updateCheck-QTVVISH7.js → updateCheck-TGO2X735.js} +14 -12
  189. package/chunks/{validateNonInterActiveAuth-RY4RKBQG.js → validateNonInterActiveAuth-2MEUL2ME.js} +46 -46
  190. package/chunks/{version-U45RYOSD.js → version-KBGQKZWV.js} +1 -1
  191. package/chunks/{web-fetch-ZSPR3PRR.js → web-fetch-CFCWTCAP.js} +2 -3
  192. package/chunks/{workflow-TCIAQYOA.js → workflow-PAOSF4CG.js} +11 -11
  193. package/chunks/{workspace-providers-status-I3G2HYLY.js → workspace-providers-status-AYHJYSVO.js} +18 -18
  194. package/chunks/{workspace-registration-store-IH5GLZ6Y.js → workspace-registration-store-GZMR53QL.js} +1 -1
  195. package/chunks/{workspace-registry-QEKBELIX.js → workspace-registry-C2IXZWPF.js} +15 -17
  196. package/chunks/{workspace-service-ORKHGLP3.js → workspace-service-KDDAW33F.js} +20 -21
  197. package/chunks/{workspace-skills-status-D7QCNDYY.js → workspace-skills-status-WWEZBZXY.js} +16 -16
  198. package/chunks/{write-file-JGRQR5VM.js → write-file-ACN3TAIX.js} +10 -10
  199. package/chunks/{zh-FSAH32JB.js → zh-PAUNIMHQ.js} +6 -0
  200. package/chunks/{zh-TW-D2YIE2LO.js → zh-TW-GNEUIUFF.js} +6 -0
  201. package/cli-entry.js +92 -8
  202. package/cli.js +11 -11
  203. package/locales/ca.js +10 -0
  204. package/locales/de.js +10 -0
  205. package/locales/en.js +11 -0
  206. package/locales/fr.js +10 -0
  207. package/locales/ja.js +10 -0
  208. package/locales/pt.js +10 -0
  209. package/locales/ru.js +10 -0
  210. package/locales/zh-TW.js +11 -0
  211. package/locales/zh.js +11 -0
  212. package/package.json +3 -3
  213. package/web-shell/assets/{arc-CUeDlxvE.js → arc-Blc5_CnD.js} +1 -1
  214. package/web-shell/assets/{architectureDiagram-3BPJPVTR-PiUszkQA.js → architectureDiagram-3BPJPVTR-Dyv1BvGP.js} +1 -1
  215. package/web-shell/assets/{blockDiagram-GPEHLZMM-s2wYSO7e.js → blockDiagram-GPEHLZMM-CVAb8DyB.js} +1 -1
  216. package/web-shell/assets/{c4Diagram-AAUBKEIU-DyLxZoz9.js → c4Diagram-AAUBKEIU-ClHPb_6S.js} +1 -1
  217. package/web-shell/assets/channel-DkPTtnGS.js +1 -0
  218. package/web-shell/assets/{chunk-2J33WTMH-Dsdai7Tk.js → chunk-2J33WTMH-Dad9g3ZA.js} +1 -1
  219. package/web-shell/assets/{chunk-4BX2VUAB-DEosOjV7.js → chunk-4BX2VUAB-IJJSSdDs.js} +1 -1
  220. package/web-shell/assets/{chunk-55IACEB6-sNsRLTXf.js → chunk-55IACEB6-DRcc-Hl9.js} +1 -1
  221. package/web-shell/assets/{chunk-727SXJPM-DkRNZzmh.js → chunk-727SXJPM-DOCFB-6a.js} +1 -1
  222. package/web-shell/assets/{chunk-AQP2D5EJ-BrsRNpzd.js → chunk-AQP2D5EJ-CRZnSjHp.js} +1 -1
  223. package/web-shell/assets/{chunk-FMBD7UC4-CI039lpl.js → chunk-FMBD7UC4-BwUI4Yes.js} +1 -1
  224. package/web-shell/assets/{chunk-ND2GUHAM-M-pkeIfu.js → chunk-ND2GUHAM-DLy8doxd.js} +1 -1
  225. package/web-shell/assets/{chunk-QZHKN3VN-C4ckGNbH.js → chunk-QZHKN3VN-Bhz7iysj.js} +1 -1
  226. package/web-shell/assets/classDiagram-4FO5ZUOK-DBdPU8ix.js +1 -0
  227. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DBdPU8ix.js +1 -0
  228. package/web-shell/assets/{cose-bilkent-S5V4N54A-BciKUAFq.js → cose-bilkent-S5V4N54A-jT1e8KzN.js} +1 -1
  229. package/web-shell/assets/{dagre-BM42HDAG-C1nTSgU6.js → dagre-BM42HDAG-C1veApQk.js} +1 -1
  230. package/web-shell/assets/{diagram-2AECGRRQ-BDPNWr1m.js → diagram-2AECGRRQ-C_NOwKeT.js} +1 -1
  231. package/web-shell/assets/{diagram-5GNKFQAL-CNFhTszL.js → diagram-5GNKFQAL-Bigfuz1r.js} +1 -1
  232. package/web-shell/assets/{diagram-KO2AKTUF-CjPa4p5a.js → diagram-KO2AKTUF-CpXltPpU.js} +1 -1
  233. package/web-shell/assets/{diagram-LMA3HP47-ZzPykSyG.js → diagram-LMA3HP47-DYawbYbH.js} +1 -1
  234. package/web-shell/assets/{diagram-OG6HWLK6-0UVtZ9A4.js → diagram-OG6HWLK6-D2t-ttd1.js} +1 -1
  235. package/web-shell/assets/{erDiagram-TEJ5UH35-CajDZCat.js → erDiagram-TEJ5UH35-Buc53PB5.js} +1 -1
  236. package/web-shell/assets/{flowDiagram-I6XJVG4X-BRuFBIvL.js → flowDiagram-I6XJVG4X-DwdFsCN7.js} +1 -1
  237. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BevGmJqG.js → ganttDiagram-6RSMTGT7-XhiEKGoP.js} +1 -1
  238. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DvPMpBMb.js → gitGraphDiagram-PVQCEYII-D6We014a.js} +1 -1
  239. package/web-shell/assets/index-BctAmeF3.js +1143 -0
  240. package/web-shell/assets/{index-DzHwQkQq.js → index-CAWqS-bZ.js} +1 -1
  241. package/web-shell/assets/index-DLyhlZZO.css +5 -0
  242. package/web-shell/assets/{infoDiagram-5YYISTIA-Oixn7tA9.js → infoDiagram-5YYISTIA-C_iugRHQ.js} +1 -1
  243. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BgKpeg-j.js → ishikawaDiagram-YF4QCWOH-CAn9Kaix.js} +1 -1
  244. package/web-shell/assets/{journeyDiagram-JHISSGLW-74mwxIaA.js → journeyDiagram-JHISSGLW-BjDYOkEB.js} +1 -1
  245. package/web-shell/assets/{kanban-definition-UN3LZRKU-D4D6cEqA.js → kanban-definition-UN3LZRKU-Br_oI3Ob.js} +1 -1
  246. package/web-shell/assets/{linear-atZRE_L2.js → linear-BqnWHE9E.js} +1 -1
  247. package/web-shell/assets/{mermaid.core-KKudX-JC.js → mermaid.core-CT-sofSb.js} +5 -5
  248. package/web-shell/assets/{mindmap-definition-RKZ34NQL-CMCej9yG.js → mindmap-definition-RKZ34NQL-BbvrZR4B.js} +1 -1
  249. package/web-shell/assets/{pieDiagram-4H26LBE5-nhx40X7q.js → pieDiagram-4H26LBE5-gAwi3h_Q.js} +1 -1
  250. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CUmVcN3M.js → quadrantDiagram-W4KKPZXB-CONvBIuO.js} +1 -1
  251. package/web-shell/assets/{requirementDiagram-4Y6WPE33-C_vyEwyy.js → requirementDiagram-4Y6WPE33-lpkrcy1e.js} +1 -1
  252. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DU6G4VWR.js → sankeyDiagram-5OEKKPKP-Bk6FJHqb.js} +1 -1
  253. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DdeRR_KJ.js → sequenceDiagram-3UESZ5HK-B9b9bBzt.js} +1 -1
  254. package/web-shell/assets/{stateDiagram-AJRCARHV-C6iCI8ps.js → stateDiagram-AJRCARHV-JqBGC-S3.js} +1 -1
  255. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B_w4fDnm.js +1 -0
  256. package/web-shell/assets/{timeline-definition-PNZ67QCA-B_Ea8Cb7.js → timeline-definition-PNZ67QCA-CCCceXDP.js} +1 -1
  257. package/web-shell/assets/{vennDiagram-CIIHVFJN-BPUVZEJA.js → vennDiagram-CIIHVFJN-EHRnmZ09.js} +1 -1
  258. package/web-shell/assets/{wardley-L42UT6IY-BWEj0lKY.js → wardley-L42UT6IY-CYIcHx3_.js} +1 -1
  259. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BvDsdIQw.js → wardleyDiagram-YWT4CUSO-B81AuYRl.js} +1 -1
  260. package/web-shell/assets/{xychartDiagram-2RQKCTM6-crz0QhF_.js → xychartDiagram-2RQKCTM6-DOQ6E3z7.js} +1 -1
  261. package/web-shell/index.html +2 -2
  262. package/chunks/channel-worker-group-K7QKH6IG.js +0 -13
  263. package/chunks/chunk-B7NUUEXC.js +0 -311
  264. package/chunks/chunk-CARU2RR2.js +0 -24
  265. package/chunks/chunk-GYTKQYDB.js +0 -23
  266. package/chunks/chunk-LQU7EVFA.js +0 -30
  267. package/chunks/chunk-OCPBI7J5.js +0 -18
  268. package/chunks/chunk-OJAMDVF5.js +0 -66
  269. package/chunks/chunk-TEGEBB2I.js +0 -122
  270. package/web-shell/assets/channel-DkuJJ0qd.js +0 -1
  271. package/web-shell/assets/classDiagram-4FO5ZUOK-CwqHc0TB.js +0 -1
  272. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwqHc0TB.js +0 -1
  273. package/web-shell/assets/index-Cnvv4VcI.css +0 -5
  274. package/web-shell/assets/index-D1Uyklxa.js +0 -1088
  275. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C0_6nR6C.js +0 -1
@@ -474,10 +474,106 @@ function composeAbortSignals(signals) {
474
474
  }
475
475
  __name(composeAbortSignals, "composeAbortSignals");
476
476
 
477
+ // packages/sdk-typescript/src/daemon/types.ts
478
+ init_esbuild_shims();
479
+ var DaemonCapabilityMissingError = class extends Error {
480
+ static {
481
+ __name(this, "DaemonCapabilityMissingError");
482
+ }
483
+ capability;
484
+ constructor(capability, hint) {
485
+ super(
486
+ `DaemonCapabilities.${capability} is missing \u2014 ${hint}. The daemon you are connected to likely predates the feature that added this field; upgrade the daemon or fall back to a different code path that doesn't require it.`
487
+ );
488
+ this.name = "DaemonCapabilityMissingError";
489
+ this.capability = capability;
490
+ }
491
+ };
492
+ function requireWorkspaceCwd(caps) {
493
+ if (typeof caps.workspaceCwd !== "string" || caps.workspaceCwd.length === 0) {
494
+ throw new DaemonCapabilityMissingError(
495
+ "workspaceCwd",
496
+ caps.workspaceCwd === "" ? "daemon returned an empty workspaceCwd (newer daemon with a bug)" : "daemon predates workspaceCwd support; upgrade it"
497
+ );
498
+ }
499
+ return caps.workspaceCwd;
500
+ }
501
+ __name(requireWorkspaceCwd, "requireWorkspaceCwd");
502
+ var DAEMON_ERROR_KINDS = [
503
+ "missing_binary",
504
+ "blocked_egress",
505
+ "auth_env_error",
506
+ "init_timeout",
507
+ "protocol_error",
508
+ "missing_file",
509
+ "parse_error",
510
+ // Budget refusal under `--mcp-budget-mode=enforce`.
511
+ "budget_exhausted",
512
+ // Runtime MCP mutation routes (POST/DELETE /workspace/mcp/servers).
513
+ "mcp_budget_would_exceed",
514
+ "mcp_server_spawn_failed",
515
+ "invalid_config",
516
+ // A prompt exceeded the daemon-configured wallclock cap (or the
517
+ // request's own `deadlineMs`, capped at the server flag).
518
+ "prompt_deadline_exceeded",
519
+ // An SSE writer's last successful flush was older than the daemon's
520
+ // writer-idle deadline.
521
+ "writer_idle_timeout",
522
+ // The model response stream ended before a complete turn could be read.
523
+ "model_stream_interrupted"
524
+ ];
525
+ var DAEMON_CONTENT_HASH_RE = /^sha256:[0-9a-f]{64}$/;
526
+ function isDaemonContentHash(value) {
527
+ return typeof value === "string" && DAEMON_CONTENT_HASH_RE.test(value);
528
+ }
529
+ __name(isDaemonContentHash, "isDaemonContentHash");
530
+ var DAEMON_APPROVAL_MODES = [
531
+ "plan",
532
+ "default",
533
+ "auto-edit",
534
+ "auto",
535
+ "yolo"
536
+ ];
537
+
477
538
  // packages/sdk-typescript/src/daemon/DaemonClient.ts
478
539
  var WORKSPACE_MEMORY_REMEMBER_PATH = "/workspace/memory/remember";
479
540
  var WORKSPACE_MEMORY_FORGET_PATH = "/workspace/memory/forget";
480
541
  var WORKSPACE_MEMORY_DREAM_PATH = "/workspace/memory/dream";
542
+ function parseSessionGenerationEvent(value) {
543
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
544
+ return void 0;
545
+ }
546
+ const event = value;
547
+ if (event["v"] !== 1 || typeof event["type"] !== "string") return void 0;
548
+ const requestId = event["requestId"];
549
+ const modelSource = event["modelSource"];
550
+ const validRequestId = typeof requestId === "string" && requestId.length > 0;
551
+ const validModelSource = modelSource === "fast" || modelSource === "main";
552
+ const validTokenCount = /* @__PURE__ */ __name((count) => count === void 0 || typeof count === "number" && Number.isSafeInteger(count) && count >= 0, "validTokenCount");
553
+ if (event["type"] === "started") {
554
+ if (!validRequestId || typeof event["model"] !== "string" || !validModelSource) {
555
+ return void 0;
556
+ }
557
+ } else if (event["type"] === "thinking") {
558
+ if (!validRequestId) return void 0;
559
+ } else if (event["type"] === "delta") {
560
+ if (!validRequestId || !Number.isSafeInteger(event["seq"]) || event["seq"] < 0 || typeof event["text"] !== "string" || event["text"].length === 0) {
561
+ return void 0;
562
+ }
563
+ } else if (event["type"] === "done") {
564
+ if (!validRequestId || typeof event["model"] !== "string" || !validModelSource || !validTokenCount(event["inputTokens"]) || !validTokenCount(event["outputTokens"])) {
565
+ return void 0;
566
+ }
567
+ } else if (event["type"] === "error") {
568
+ if (typeof event["code"] !== "string" || typeof event["message"] !== "string") {
569
+ return void 0;
570
+ }
571
+ } else {
572
+ return void 0;
573
+ }
574
+ return event;
575
+ }
576
+ __name(parseSessionGenerationEvent, "parseSessionGenerationEvent");
481
577
  var DEFAULT_SESSION_LIST_PAGE_SIZE = 20;
482
578
  var DEFAULT_FETCH_TIMEOUT_MS = 3e4;
483
579
  var VOICE_TRANSCRIPTION_DEFAULT_TIMEOUT_MS = 65e3;
@@ -783,6 +879,15 @@ var DaemonClient = class {
783
879
  }
784
880
  );
785
881
  }
882
+ async requireCapability(capability) {
883
+ const caps = await this.capabilities();
884
+ if (!caps.features.includes(capability)) {
885
+ throw new DaemonCapabilityMissingError(
886
+ capability,
887
+ `daemon does not advertise the ${capability} feature`
888
+ );
889
+ }
890
+ }
786
891
  /**
787
892
  * Consolidated daemon status report (`GET /daemon/status`). The default
788
893
  * `summary` detail reads cheap in-memory counters; `full` adds per-session,
@@ -824,6 +929,38 @@ var DaemonClient = class {
824
929
  }
825
930
  );
826
931
  }
932
+ async initializeWorkspaceMcp() {
933
+ return await this.fetchWithTimeout(
934
+ `${this.baseUrl}/workspace/mcp/initialize`,
935
+ {
936
+ method: "POST",
937
+ headers: this.headers({ "Content-Type": "application/json" }),
938
+ body: "{}"
939
+ },
940
+ async (res) => {
941
+ if (!res.ok) {
942
+ throw await this.failOnError(res, "POST /workspace/mcp/initialize");
943
+ }
944
+ return await res.json();
945
+ }
946
+ );
947
+ }
948
+ async reloadWorkspaceMcp() {
949
+ return await this.fetchWithTimeout(
950
+ `${this.baseUrl}/workspace/mcp/reload`,
951
+ {
952
+ method: "POST",
953
+ headers: this.headers({ "Content-Type": "application/json" }),
954
+ body: "{}"
955
+ },
956
+ async (res) => {
957
+ if (!res.ok) {
958
+ throw await this.failOnError(res, "POST /workspace/mcp/reload");
959
+ }
960
+ return await res.json();
961
+ }
962
+ );
963
+ }
827
964
  async workspaceGit() {
828
965
  return await this.jsonRequest(
829
966
  "/workspace/git",
@@ -951,6 +1088,20 @@ var DaemonClient = class {
951
1088
  { mode: "rest" }
952
1089
  );
953
1090
  }
1091
+ async activeExtensionOperations() {
1092
+ return await this.jsonRequest(
1093
+ "/workspace/extensions/operations",
1094
+ "GET /workspace/extensions/operations",
1095
+ { mode: "rest" }
1096
+ );
1097
+ }
1098
+ async respondToExtensionInteraction(operationId, interactionId, response, clientId) {
1099
+ return await this.jsonRequest(
1100
+ `/workspace/extensions/operations/${urlEncode(operationId)}/interactions/${urlEncode(interactionId)}`,
1101
+ "POST /workspace/extensions/operations/:operationId/interactions/:interactionId",
1102
+ { method: "POST", body: response, clientId, mode: "rest" }
1103
+ );
1104
+ }
954
1105
  async checkExtensionUpdates(clientId) {
955
1106
  return await this.jsonRequest(
956
1107
  "/workspace/extensions/check-updates",
@@ -1527,6 +1678,9 @@ var DaemonClient = class {
1527
1678
  }
1528
1679
  // -- Sessions ----------------------------------------------------------
1529
1680
  async createOrAttachSession(req, clientId) {
1681
+ if (req.sourceType !== void 0 || req.sourceId !== void 0) {
1682
+ await this.requireCapability("session_source_metadata");
1683
+ }
1530
1684
  return await this.fetchWithTimeout(
1531
1685
  `${this.baseUrl}/session`,
1532
1686
  {
@@ -1542,7 +1696,9 @@ var DaemonClient = class {
1542
1696
  // bridge's own validation uses (`httpAcpBridge.ts:
1543
1697
  // spawnOrAttach`); SDK should be a transparent layer here.
1544
1698
  ...req.sessionScope !== void 0 ? { sessionScope: req.sessionScope } : {},
1545
- ...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {}
1699
+ ...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {},
1700
+ ...req.sourceType !== void 0 ? { sourceType: req.sourceType } : {},
1701
+ ...req.sourceId !== void 0 ? { sourceId: req.sourceId } : {}
1546
1702
  })
1547
1703
  },
1548
1704
  async (res) => {
@@ -1560,6 +1716,9 @@ var DaemonClient = class {
1560
1716
  return page.sessions;
1561
1717
  }
1562
1718
  async listWorkspaceSessionsPage(workspaceCwd, options) {
1719
+ if (options?.sourceType !== void 0 || options?.sourceId !== void 0) {
1720
+ await this.requireCapability("session_source_metadata");
1721
+ }
1563
1722
  const requestedPageSize = options?.pageSize ?? DEFAULT_SESSION_LIST_PAGE_SIZE;
1564
1723
  const pageSize = Math.max(
1565
1724
  1,
@@ -1586,6 +1745,12 @@ var DaemonClient = class {
1586
1745
  if (options?.parentSessionId !== void 0) {
1587
1746
  query.set("parentSessionId", options.parentSessionId);
1588
1747
  }
1748
+ if (options?.sourceType !== void 0) {
1749
+ query.set("sourceType", options.sourceType);
1750
+ }
1751
+ if (options?.sourceId !== void 0) {
1752
+ query.set("sourceId", options.sourceId);
1753
+ }
1589
1754
  return await this.jsonRequest(
1590
1755
  `/workspace/${urlEncode(workspaceCwd)}/sessions?${query.toString()}`,
1591
1756
  "GET /workspace/sessions"
@@ -1960,6 +2125,31 @@ var DaemonClient = class {
1960
2125
  if (!res.ok) throw await this.failOnError(res, "POST /session/:id/recap");
1961
2126
  return await res.json();
1962
2127
  }
2128
+ async *generateSessionContent(sessionId, prompt, opts) {
2129
+ const res = await this.transport.fetch(
2130
+ `${this.baseUrl}/session/${urlEncode(sessionId)}/generate`,
2131
+ {
2132
+ method: "POST",
2133
+ headers: this.headers(
2134
+ {
2135
+ "Content-Type": "application/json",
2136
+ Accept: "text/event-stream"
2137
+ },
2138
+ opts?.clientId
2139
+ ),
2140
+ body: JSON.stringify({ prompt }),
2141
+ signal: opts?.signal
2142
+ }
2143
+ );
2144
+ if (!res.ok) {
2145
+ throw await this.failOnError(res, "POST /session/:id/generate");
2146
+ }
2147
+ if (!res.body) throw new Error("Generation response body is missing");
2148
+ for await (const event of parseSseStream(res.body, opts?.signal)) {
2149
+ const generationEvent = parseSessionGenerationEvent(event);
2150
+ if (generationEvent) yield generationEvent;
2151
+ }
2152
+ }
1963
2153
  async btwSession(sessionId, question, opts) {
1964
2154
  const res = await this.transport.fetch(
1965
2155
  `${this.baseUrl}/session/${urlEncode(sessionId)}/btw`,
@@ -2163,7 +2353,12 @@ var DaemonClient = class {
2163
2353
  { "Content-Type": "application/json" },
2164
2354
  opts?.clientId
2165
2355
  ),
2166
- body: JSON.stringify({ scope, key, value })
2356
+ body: JSON.stringify({
2357
+ scope,
2358
+ key,
2359
+ value,
2360
+ ...opts?.mcpServerMutation ? { mcpServerMutation: opts.mcpServerMutation } : {}
2361
+ })
2167
2362
  },
2168
2363
  async (res) => {
2169
2364
  if (!res.ok) {
@@ -3170,6 +3365,20 @@ var WorkspaceDaemonClient = class {
3170
3365
  workspaceMcp() {
3171
3366
  return this.get("/mcp", "GET /workspaces/:workspace/mcp");
3172
3367
  }
3368
+ initializeWorkspaceMcp() {
3369
+ return this.post(
3370
+ "/mcp/initialize",
3371
+ "POST /workspaces/:workspace/mcp/initialize",
3372
+ {}
3373
+ );
3374
+ }
3375
+ reloadWorkspaceMcp() {
3376
+ return this.post(
3377
+ "/mcp/reload",
3378
+ "POST /workspaces/:workspace/mcp/reload",
3379
+ {}
3380
+ );
3381
+ }
3173
3382
  workspaceVoice(clientId) {
3174
3383
  return this.client.workspaceJsonRequest(
3175
3384
  this.workspaceSelector,
@@ -3285,7 +3494,10 @@ var WorkspaceDaemonClient = class {
3285
3494
  }
3286
3495
  );
3287
3496
  }
3288
- listWorkspaceSessionsPage(options) {
3497
+ async listWorkspaceSessionsPage(options) {
3498
+ if (options?.sourceType !== void 0 || options?.sourceId !== void 0) {
3499
+ await this.client.requireCapability("session_source_metadata");
3500
+ }
3289
3501
  const requestedPageSize = options?.pageSize ?? DEFAULT_SESSION_LIST_PAGE_SIZE;
3290
3502
  const pageSize = Math.max(
3291
3503
  1,
@@ -3306,7 +3518,13 @@ var WorkspaceDaemonClient = class {
3306
3518
  if (options?.parentSessionId !== void 0) {
3307
3519
  query.set("parentSessionId", options.parentSessionId);
3308
3520
  }
3309
- return this.get(
3521
+ if (options?.sourceType !== void 0) {
3522
+ query.set("sourceType", options.sourceType);
3523
+ }
3524
+ if (options?.sourceId !== void 0) {
3525
+ query.set("sourceId", options.sourceId);
3526
+ }
3527
+ return await this.get(
3310
3528
  `/sessions?${query.toString()}`,
3311
3529
  "GET /workspaces/:workspace/sessions"
3312
3530
  );
@@ -3341,6 +3559,14 @@ var WorkspaceDaemonClient = class {
3341
3559
  opts
3342
3560
  );
3343
3561
  }
3562
+ /** Export an archived persisted session from this registered workspace. */
3563
+ exportArchivedSession(sessionId, opts = {}) {
3564
+ return this.client.sessionExportRequest(
3565
+ `/workspaces/${this.workspaceSelector}/session/${urlEncode(sessionId)}/archive/export`,
3566
+ "GET /workspaces/:workspace/session/:id/archive/export",
3567
+ opts
3568
+ );
3569
+ }
3344
3570
  listSessionGroups() {
3345
3571
  return this.get(
3346
3572
  "/session-groups",
@@ -3441,11 +3667,16 @@ var WorkspaceDaemonClient = class {
3441
3667
  "GET /workspaces/:workspace/list"
3442
3668
  );
3443
3669
  }
3444
- glob(pattern) {
3670
+ glob(pattern, opts = {}) {
3445
3671
  const query = new URLSearchParams({ pattern });
3446
- return this.get(
3672
+ if (opts.maxResults !== void 0) {
3673
+ query.set("maxResults", String(opts.maxResults));
3674
+ }
3675
+ return this.client.workspaceJsonRequest(
3676
+ this.workspaceSelector,
3447
3677
  `/glob?${query.toString()}`,
3448
- "GET /workspaces/:workspace/glob"
3678
+ "GET /workspaces/:workspace/glob",
3679
+ { signal: opts.signal }
3449
3680
  );
3450
3681
  }
3451
3682
  writeWorkspaceFile(req, clientId) {
@@ -3475,7 +3706,12 @@ var WorkspaceDaemonClient = class {
3475
3706
  return this.post(
3476
3707
  "/settings",
3477
3708
  "POST /workspaces/:workspace/settings",
3478
- { scope, key, value },
3709
+ {
3710
+ scope,
3711
+ key,
3712
+ value,
3713
+ ...opts?.mcpServerMutation ? { mcpServerMutation: opts.mcpServerMutation } : {}
3714
+ },
3479
3715
  opts?.clientId
3480
3716
  );
3481
3717
  }
@@ -3954,6 +4190,12 @@ var DaemonSessionClient = class _DaemonSessionClient {
3954
4190
  ...this.clientId ? { clientId: this.clientId } : {}
3955
4191
  });
3956
4192
  }
4193
+ generateContent(prompt, opts) {
4194
+ return this.client.generateSessionContent(this.sessionId, prompt, {
4195
+ ...opts?.signal ? { signal: opts.signal } : {},
4196
+ ...this.clientId ? { clientId: this.clientId } : {}
4197
+ });
4198
+ }
3957
4199
  async btw(question, opts) {
3958
4200
  return await this.client.btwSession(this.sessionId, question, {
3959
4201
  ...opts?.signal ? { signal: opts.signal } : {},
@@ -4249,6 +4491,7 @@ var DAEMON_KNOWN_EVENT_TYPE_VALUES = [
4249
4491
  "github_setup_completed",
4250
4492
  "mcp_server_restarted",
4251
4493
  "mcp_server_restart_refused",
4494
+ "mcp_server_changed",
4252
4495
  "settings_reloaded",
4253
4496
  // Runtime MCP server add/remove events. Fired by
4254
4497
  // `POST /workspace/mcp/servers` on success (including replace and
@@ -4477,6 +4720,8 @@ function asKnownDaemonEvent(event) {
4477
4720
  return isMcpServerRestartedData(event.data) ? event : void 0;
4478
4721
  case "mcp_server_restart_refused":
4479
4722
  return isMcpServerRestartRefusedData(event.data) ? event : void 0;
4723
+ case "mcp_server_changed":
4724
+ return isMcpServerChangedData(event.data) ? event : void 0;
4480
4725
  case "settings_reloaded":
4481
4726
  return event.data != null && typeof event.data === "object" ? event : void 0;
4482
4727
  case "followup_suggestion":
@@ -4786,6 +5031,7 @@ function reduceDaemonSessionEvent(state, rawEvent) {
4786
5031
  // reduced session-view state.
4787
5032
  case "mcp_server_added":
4788
5033
  case "mcp_server_removed":
5034
+ case "mcp_server_changed":
4789
5035
  case "settings_reloaded":
4790
5036
  case "extensions_changed":
4791
5037
  case "artifact_changed":
@@ -5199,6 +5445,7 @@ var MCP_RESTART_REFUSED_REASONS = /* @__PURE__ */ new Set([
5199
5445
  "in_flight",
5200
5446
  "disabled",
5201
5447
  "budget_would_exceed",
5448
+ "authentication_required",
5202
5449
  // Pool-mode hard restart failure (entry's `client.connect()` or
5203
5450
  // rediscover threw). Carried alongside the soft-skip reasons so
5204
5451
  // SDK reducers maintain a single union for narrowing the event's
@@ -5242,6 +5489,13 @@ function isMcpServerRemovedData(value) {
5242
5489
  return true;
5243
5490
  }
5244
5491
  __name(isMcpServerRemovedData, "isMcpServerRemovedData");
5492
+ function isMcpServerChangedData(value) {
5493
+ if (!isRecord(value) || !isNonEmptyString(value["serverName"])) {
5494
+ return false;
5495
+ }
5496
+ return value["action"] === "approve" || value["action"] === "enable" || value["action"] === "disable" || value["action"] === "authenticate" || value["action"] === "clear-auth";
5497
+ }
5498
+ __name(isMcpServerChangedData, "isMcpServerChangedData");
5245
5499
  function isExtensionsChangedData(value) {
5246
5500
  if (!isRecord(value)) return false;
5247
5501
  if (typeof value["refreshed"] !== "number") return false;
@@ -5349,67 +5603,6 @@ init_esbuild_shims();
5349
5603
  // packages/sdk-typescript/src/daemon/ui/normalizer.ts
5350
5604
  init_esbuild_shims();
5351
5605
 
5352
- // packages/sdk-typescript/src/daemon/types.ts
5353
- init_esbuild_shims();
5354
- var DaemonCapabilityMissingError = class extends Error {
5355
- static {
5356
- __name(this, "DaemonCapabilityMissingError");
5357
- }
5358
- capability;
5359
- constructor(capability, hint) {
5360
- super(
5361
- `DaemonCapabilities.${capability} is missing \u2014 ${hint}. The daemon you are connected to likely predates the feature that added this field; upgrade the daemon or fall back to a different code path that doesn't require it.`
5362
- );
5363
- this.name = "DaemonCapabilityMissingError";
5364
- this.capability = capability;
5365
- }
5366
- };
5367
- function requireWorkspaceCwd(caps) {
5368
- if (typeof caps.workspaceCwd !== "string" || caps.workspaceCwd.length === 0) {
5369
- throw new DaemonCapabilityMissingError(
5370
- "workspaceCwd",
5371
- caps.workspaceCwd === "" ? "daemon returned an empty workspaceCwd (newer daemon with a bug)" : "daemon predates workspaceCwd support (1 daemon = 1 workspace); upgrade it"
5372
- );
5373
- }
5374
- return caps.workspaceCwd;
5375
- }
5376
- __name(requireWorkspaceCwd, "requireWorkspaceCwd");
5377
- var DAEMON_ERROR_KINDS = [
5378
- "missing_binary",
5379
- "blocked_egress",
5380
- "auth_env_error",
5381
- "init_timeout",
5382
- "protocol_error",
5383
- "missing_file",
5384
- "parse_error",
5385
- // Budget refusal under `--mcp-budget-mode=enforce`.
5386
- "budget_exhausted",
5387
- // Runtime MCP mutation routes (POST/DELETE /workspace/mcp/servers).
5388
- "mcp_budget_would_exceed",
5389
- "mcp_server_spawn_failed",
5390
- "invalid_config",
5391
- // A prompt exceeded the daemon-configured wallclock cap (or the
5392
- // request's own `deadlineMs`, capped at the server flag).
5393
- "prompt_deadline_exceeded",
5394
- // An SSE writer's last successful flush was older than the daemon's
5395
- // writer-idle deadline.
5396
- "writer_idle_timeout",
5397
- // The model response stream ended before a complete turn could be read.
5398
- "model_stream_interrupted"
5399
- ];
5400
- var DAEMON_CONTENT_HASH_RE = /^sha256:[0-9a-f]{64}$/;
5401
- function isDaemonContentHash(value) {
5402
- return typeof value === "string" && DAEMON_CONTENT_HASH_RE.test(value);
5403
- }
5404
- __name(isDaemonContentHash, "isDaemonContentHash");
5405
- var DAEMON_APPROVAL_MODES = [
5406
- "plan",
5407
- "default",
5408
- "auto-edit",
5409
- "auto",
5410
- "yolo"
5411
- ];
5412
-
5413
5606
  // packages/sdk-typescript/src/daemon/ui/types.ts
5414
5607
  init_esbuild_shims();
5415
5608
  var DAEMON_PLAN_TOOL_CALL_ID = "daemon-plan";
@@ -5604,7 +5797,8 @@ var DEVICE_FLOW_PROVIDER_SET = /* @__PURE__ */ new Set(["qwen", "qwen-oauth"]);
5604
5797
  var MCP_RESTART_REFUSED_REASONS2 = /* @__PURE__ */ new Set([
5605
5798
  "in_flight",
5606
5799
  "disabled",
5607
- "budget_would_exceed"
5800
+ "budget_would_exceed",
5801
+ "authentication_required"
5608
5802
  ]);
5609
5803
  var MALFORMED_MEMORY_CHANGED = "malformed memory_changed payload";
5610
5804
  var MAX_DETAILS_LENGTH = 4096;
@@ -5836,6 +6030,12 @@ function normalizeDaemonEvent(event, opts = {}) {
5836
6030
  return normalizeMcpServerRestarted(event, base);
5837
6031
  case "mcp_server_restart_refused":
5838
6032
  return normalizeMcpServerRestartRefused(event, base);
6033
+ case "mcp_server_added":
6034
+ return normalizeMcpServerChanged(event, base, "added");
6035
+ case "mcp_server_removed":
6036
+ return normalizeMcpServerChanged(event, base, "removed");
6037
+ case "mcp_server_changed":
6038
+ return normalizeMcpServerChanged(event, base);
5839
6039
  case "extensions_changed":
5840
6040
  return normalizeExtensionsChanged(event, base);
5841
6041
  case "artifact_changed":
@@ -6119,8 +6319,13 @@ function normalizeSessionUpdate(event, base, opts) {
6119
6319
  ];
6120
6320
  }
6121
6321
  case "tool_call":
6122
- case "tool_call_update":
6322
+ case "tool_call_update": {
6323
+ const meta = isRecord2(update["_meta"]) ? update["_meta"] : void 0;
6324
+ if (getString2(update, "status") === "in_progress" && getString2(update, "kind") === void 0 && meta?.["shellProgress"] !== void 0) {
6325
+ return [];
6326
+ }
6123
6327
  return [normalizeToolUpdate(update, base)];
6328
+ }
6124
6329
  case "shell_output":
6125
6330
  case "tool_output": {
6126
6331
  const text = getOutputText(update);
@@ -6748,6 +6953,30 @@ function normalizeMcpServerRestartRefused(event, base) {
6748
6953
  ];
6749
6954
  }
6750
6955
  __name(normalizeMcpServerRestartRefused, "normalizeMcpServerRestartRefused");
6956
+ function normalizeMcpServerChanged(event, base, fixedAction) {
6957
+ const serverName = getString2(event.data, fixedAction ? "name" : "serverName");
6958
+ const action = fixedAction ?? getString2(event.data, "action");
6959
+ if (!serverName || !action || ![
6960
+ "added",
6961
+ "removed",
6962
+ "approve",
6963
+ "enable",
6964
+ "disable",
6965
+ "authenticate",
6966
+ "clear-auth"
6967
+ ].includes(action)) {
6968
+ return fallbackDebug(event, base, `malformed ${event.type} payload`);
6969
+ }
6970
+ return [
6971
+ {
6972
+ ...base,
6973
+ type: "workspace.mcp.server_changed",
6974
+ serverName,
6975
+ action
6976
+ }
6977
+ ];
6978
+ }
6979
+ __name(normalizeMcpServerChanged, "normalizeMcpServerChanged");
6751
6980
  function normalizeExtensionsChanged(event, base) {
6752
6981
  const refreshed = numberField(event.data, "refreshed");
6753
6982
  const failed = numberField(event.data, "failed");
@@ -7508,6 +7737,7 @@ function applyDaemonTranscriptEvent(next, event) {
7508
7737
  case "workspace.mcp.child_refused":
7509
7738
  case "workspace.mcp.server_restarted":
7510
7739
  case "workspace.mcp.server_restart_refused":
7740
+ case "workspace.mcp.server_changed":
7511
7741
  case "auth.device_flow.started":
7512
7742
  case "auth.device_flow.throttled":
7513
7743
  case "auth.device_flow.authorized":
@@ -8679,6 +8909,8 @@ function daemonUiEventToTerminalText(event) {
8679
8909
  `${event.serverName} restart refused: ${event.reason}`,
8680
8910
  "33"
8681
8911
  );
8912
+ case "workspace.mcp.server_changed":
8913
+ return terminalLine("mcp", `${event.serverName} ${event.action}`, "36");
8682
8914
  case "workspace.extensions.changed":
8683
8915
  if (event.status === "failed") {
8684
8916
  return terminalLine(
@@ -2,61 +2,60 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDaemonStatusProvider
5
- } from "./chunk-ZQTZXVHP.js";
6
- import "./chunk-WDWJ4OQJ.js";
5
+ } from "./chunk-3KSHYS4T.js";
6
+ import "./chunk-LXXMOYPL.js";
7
+ import "./chunk-CC2UASQ4.js";
7
8
  import "./chunk-E5Z2AVNV.js";
8
- import "./chunk-ZKMGAFYV.js";
9
- import "./chunk-HHEFI4RP.js";
9
+ import "./chunk-3LS57JZI.js";
10
+ import "./chunk-YOJGIRTD.js";
10
11
  import "./chunk-PZL23GTM.js";
11
12
  import "./chunk-6RLROE6G.js";
12
13
  import "./chunk-COH43MRJ.js";
13
- import "./chunk-OCPBI7J5.js";
14
- import "./chunk-KSO42X3Z.js";
15
- import "./chunk-UFOKA4PR.js";
16
- import "./chunk-TEGEBB2I.js";
17
- import "./chunk-CUUXANEQ.js";
14
+ import "./chunk-X6YQWCIJ.js";
15
+ import "./chunk-VHCSIMTF.js";
16
+ import "./chunk-W6J7RSCK.js";
18
17
  import "./chunk-W7FJ3N32.js";
19
18
  import "./chunk-M5GB774H.js";
20
19
  import "./chunk-UDXSXLER.js";
21
- import "./chunk-YU56QGXX.js";
20
+ import "./chunk-Y3TNSHKF.js";
22
21
  import "./chunk-VJNBRRZG.js";
23
- import "./chunk-K7CRWKOE.js";
22
+ import "./chunk-R6AO7HBQ.js";
23
+ import "./chunk-T4TZQJ7W.js";
24
24
  import "./chunk-H6XPXXMH.js";
25
25
  import "./chunk-5M6IDOMF.js";
26
- import "./chunk-E67NFMF4.js";
26
+ import "./chunk-A2HWMJVO.js";
27
27
  import "./chunk-RCEEXIOO.js";
28
28
  import "./chunk-KKRTYONM.js";
29
29
  import "./chunk-TV6K2FB4.js";
30
30
  import "./chunk-E2UVIFI2.js";
31
- import "./chunk-6OATMEYN.js";
32
31
  import "./chunk-XU457J4V.js";
33
32
  import "./chunk-VDDGDZMA.js";
34
33
  import "./chunk-SPJQO2CE.js";
35
34
  import "./chunk-SZRN75WQ.js";
36
35
  import "./chunk-HTO4JFDZ.js";
37
36
  import "./chunk-CPBF7KYF.js";
38
- import "./chunk-TXY2C3D2.js";
37
+ import "./chunk-F333XEAU.js";
39
38
  import "./chunk-6AM5D4ME.js";
40
39
  import "./chunk-2Z5UX4KI.js";
41
40
  import "./chunk-ARKANCNX.js";
42
41
  import "./chunk-L5U3ELZX.js";
43
42
  import "./chunk-TYLOFD2U.js";
44
- import "./chunk-P6LART6G.js";
43
+ import "./chunk-BTSE2DUP.js";
45
44
  import "./chunk-4WKAA4KS.js";
46
45
  import "./chunk-CR3C7WXL.js";
47
- import "./chunk-CARU2RR2.js";
46
+ import "./chunk-RTV5TUYB.js";
48
47
  import "./chunk-VGC4I5JJ.js";
49
48
  import "./chunk-FBU7WRZI.js";
50
49
  import "./chunk-Y66VOBRP.js";
51
- import "./chunk-WX6SD4IQ.js";
52
- import "./chunk-2UUAIFQO.js";
50
+ import "./chunk-WTNZ6DXB.js";
51
+ import "./chunk-JGUT3LWZ.js";
53
52
  import "./chunk-OKAIGAYW.js";
54
53
  import "./chunk-ZPAHLFZU.js";
55
54
  import "./chunk-JESCGQM3.js";
56
55
  import "./chunk-WIEO4CWB.js";
57
56
  import "./chunk-XVNQMZ2I.js";
58
- import "./chunk-B7NUUEXC.js";
59
- import "./chunk-TQBODCFD.js";
57
+ import "./chunk-FEOZBUMT.js";
58
+ import "./chunk-VRR65QYW.js";
60
59
  import "./chunk-A4UCTEB5.js";
61
60
  import "./chunk-XWRJCPHC.js";
62
61
  import "./chunk-4LD5APFL.js";
@@ -1617,6 +1617,11 @@ var de_default = {
1617
1617
  "Run the following to update:": "F\xFChren Sie Folgendes zum Aktualisieren aus:",
1618
1618
  "Unable to auto-update this standalone installation. Please reinstall from:": "Diese Standalone-Installation kann nicht automatisch aktualisiert werden. Bitte neu installieren von:",
1619
1619
  "Manual update required. Please reinstall Qwen Code.": "Manuelles Update erforderlich. Bitte installieren Sie Qwen Code neu.",
1620
+ "This session uses the custom sandbox image {{image}}. Update that image and restart Qwen Code.": "Diese Sitzung verwendet das benutzerdefinierte Sandbox-Image {{image}}. Aktualisieren Sie das Image und starten Sie Qwen Code neu.",
1621
+ "Update Qwen Code on the host, then restart the sandbox.": "Aktualisieren Sie Qwen Code auf dem Host und starten Sie anschlie\xDFend die Sandbox neu.",
1622
+ "The update will be installed after you exit this session.": "Das Update wird nach dem Beenden dieser Sitzung installiert.",
1623
+ "Run /update to install the update on the host.": "F\xFChren Sie /update aus, um das Update auf dem Host zu installieren.",
1624
+ "Run /update to install the update.": "F\xFChren Sie /update aus, um das Update zu installieren.",
1620
1625
  // ============================================================================
1621
1626
  // reload-plugins command
1622
1627
  // ============================================================================