@qwen-code/qwen-code 0.22.3 → 0.23.0

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 (497) hide show
  1. package/README.md +30 -0
  2. package/bundled/computer-use/SKILL.md +116 -180
  3. package/bundled/goal-draft/SKILL.md +5 -1
  4. package/bundled/qc-helper/docs/common-workflow.md +32 -0
  5. package/bundled/qc-helper/docs/configuration/auth.md +6 -6
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +8 -2
  7. package/bundled/qc-helper/docs/configuration/settings.md +63 -58
  8. package/bundled/qc-helper/docs/extension/introduction.md +1 -1
  9. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  10. package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
  11. package/bundled/qc-helper/docs/features/auto-mode.md +34 -17
  12. package/bundled/qc-helper/docs/features/channels/dingtalk.md +4 -2
  13. package/bundled/qc-helper/docs/features/channels/dws.md +6 -2
  14. package/bundled/qc-helper/docs/features/channels/overview.md +5 -2
  15. package/bundled/qc-helper/docs/features/code-review.md +2 -2
  16. package/bundled/qc-helper/docs/features/commands.md +79 -1
  17. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  18. package/bundled/qc-helper/docs/features/goals.md +9 -3
  19. package/bundled/qc-helper/docs/features/headless.md +16 -1
  20. package/bundled/qc-helper/docs/features/hooks.md +8 -3
  21. package/bundled/qc-helper/docs/features/memory.md +1 -0
  22. package/bundled/qc-helper/docs/features/output-styles.md +38 -0
  23. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +17 -7
  24. package/bundled/qc-helper/docs/qwen-serve.md +74 -55
  25. package/bundled/review/SKILL.md +16 -7
  26. package/bundled/review/references/posting.md +3 -3
  27. package/chunks/MaxSizedBox-B3D7545A.js +111 -0
  28. package/chunks/{StandaloneSessionPicker-2FJAOLGG.js → StandaloneSessionPicker-QUMO4LLQ.js} +88 -86
  29. package/chunks/{acp-startup-profiler-GNYAL6LI.js → acp-startup-profiler-M4X5F3VK.js} +2 -2
  30. package/chunks/{acpAgent-2ZMIJAFV.js → acpAgent-2GTFCIEP.js} +2041 -444
  31. package/chunks/{agent-X5WX3L2I.js → agent-XKF5SZWU.js} +46 -46
  32. package/chunks/agent-headless-OC2IB55D.js +85 -0
  33. package/chunks/{anthropicContentGenerator-YVTB6QX7.js → anthropicContentGenerator-L76MR5OR.js} +53 -20
  34. package/chunks/{artifact-tool-XSMPHZBT.js → artifact-tool-MYCL2QCS.js} +3 -4
  35. package/chunks/{askUserQuestion-4SWJY65V.js → askUserQuestion-THQZMG44.js} +45 -7
  36. package/chunks/bridge-IHSBI2YJ.js +118 -0
  37. package/chunks/{build-INBK7IXX.js → build-63BIOYWK.js} +1 -1
  38. package/chunks/{ca-7HPYOYSZ.js → ca-BNU7YNDE.js} +3 -0
  39. package/chunks/{channel-management-service-HQ6KDS7C.js → channel-management-service-4MTCEGJB.js} +4 -4
  40. package/chunks/channel-settings-store-BVKWAI2T.js +121 -0
  41. package/chunks/{channel-worker-group-6NA6BBZV.js → channel-worker-group-47F4ISUZ.js} +7 -7
  42. package/chunks/{channel-worker-manager-NEZ2J6RK.js → channel-worker-manager-I5Y44GYR.js} +51 -10
  43. package/chunks/{channel-worker-supervisor-FKU7DIHJ.js → channel-worker-supervisor-6VCLUXFE.js} +4 -4
  44. package/chunks/{chunk-PPKZ7JOE.js → chunk-22UH7VTP.js} +1 -1
  45. package/chunks/chunk-24FVUD5P.js +49 -0
  46. package/chunks/{chunk-MZCJWS5Y.js → chunk-2M3EWQNG.js} +20 -0
  47. package/chunks/{chunk-7T52W4SW.js → chunk-32LU3APX.js} +1 -1
  48. package/chunks/{chunk-42IDLQWS.js → chunk-373DQUVA.js} +48 -13
  49. package/chunks/{chunk-MSBO7X2W.js → chunk-37JFWFCD.js} +1 -1
  50. package/chunks/{chunk-3JXM2CVW.js → chunk-3AKCBZVW.js} +3 -3
  51. package/chunks/{chunk-TVC6HQ2U.js → chunk-3JQZVCBI.js} +2 -2
  52. package/chunks/{chunk-2LNNVAUV.js → chunk-3L724BJ5.js} +246 -15
  53. package/chunks/{chunk-E7REAOTN.js → chunk-47ECGEJC.js} +4 -0
  54. package/chunks/{chunk-WNPDGUJO.js → chunk-47RYEQW5.js} +2 -3
  55. package/chunks/{chunk-TZBSGJ6C.js → chunk-4BGDFKQE.js} +7 -7
  56. package/chunks/{chunk-PZ66FRIC.js → chunk-4F7GQGXB.js} +11772 -4773
  57. package/chunks/{chunk-DMLVSW7L.js → chunk-4HVH57J3.js} +713 -9
  58. package/chunks/{chunk-CMHFCLBU.js → chunk-4LIFGNI4.js} +1 -1
  59. package/chunks/{chunk-3SZC4VP4.js → chunk-4M24B5J5.js} +88 -49
  60. package/chunks/{chunk-BOWFGCEU.js → chunk-4PSDSCW3.js} +3 -3
  61. package/chunks/chunk-4UANMABT.js +1026 -0
  62. package/chunks/{chunk-M3QRM3DE.js → chunk-54C6PIGT.js} +5 -5
  63. package/chunks/{chunk-HP5LR5HL.js → chunk-5EIOJGCR.js} +4 -4
  64. package/chunks/{chunk-64REQJJ2.js → chunk-5H5S4UY5.js} +3 -3
  65. package/chunks/chunk-5IENVM7Z.js +35 -0
  66. package/chunks/{chunk-I6LYRJPB.js → chunk-5Q5RC2WE.js} +2 -2
  67. package/chunks/{chunk-WGY3AVGM.js → chunk-5RTTI4GE.js} +79 -5
  68. package/chunks/{chunk-KID24ZFN.js → chunk-64QH2UC6.js} +13 -1
  69. package/chunks/{chunk-MF7HCQWZ.js → chunk-65HWLGA7.js} +3 -3
  70. package/chunks/{chunk-OU5APVWO.js → chunk-6A2D4QSO.js} +13 -7
  71. package/chunks/chunk-6HUXPLB5.js +110 -0
  72. package/chunks/{chunk-VQUGEVGR.js → chunk-7IKXTGZT.js} +1 -1
  73. package/chunks/{chunk-UTLCH2FK.js → chunk-7JMGTOH7.js} +437 -136
  74. package/chunks/{chunk-7LOELM2I.js → chunk-7RB56BRJ.js} +3 -3
  75. package/chunks/{chunk-NIFYWDYN.js → chunk-7TBU7PU2.js} +1 -1
  76. package/chunks/{chunk-V2NDP3I4.js → chunk-7XL4WRXM.js} +2 -2
  77. package/chunks/chunk-ADJD4LZF.js +210 -0
  78. package/chunks/{chunk-T7KMERIX.js → chunk-ADYN7P2Y.js} +2 -2
  79. package/chunks/{chunk-TPI7O7HR.js → chunk-AHYTURFB.js} +1 -1
  80. package/chunks/{chunk-LUEHOUHM.js → chunk-AI35S34R.js} +3 -3
  81. package/chunks/{chunk-CIZCL2MW.js → chunk-ALUYNJPM.js} +1486 -2172
  82. package/chunks/{chunk-ABS25QER.js → chunk-ANVG3BVV.js} +1 -1
  83. package/chunks/{chunk-6ZPDLGHN.js → chunk-AZJLY2XZ.js} +5 -5
  84. package/chunks/{chunk-A3LWD5MK.js → chunk-BA4WJC4L.js} +1 -1
  85. package/chunks/{chunk-W3JH33JE.js → chunk-BFY33IB4.js} +18 -10
  86. package/chunks/{chunk-N4X7G4J2.js → chunk-BHTYRHJF.js} +1 -1
  87. package/chunks/{chunk-TEBDFQBZ.js → chunk-BJXCYUGM.js} +11 -6
  88. package/chunks/{chunk-7VMIMAVB.js → chunk-C2VWOXHS.js} +8 -8
  89. package/chunks/{chunk-XHF7WQ6B.js → chunk-C4TIXFDZ.js} +16 -5
  90. package/chunks/chunk-CHEIIBT3.js +40 -0
  91. package/chunks/chunk-CVX63TFJ.js +348 -0
  92. package/chunks/{chunk-RXFQM6FQ.js → chunk-DMEUXLSS.js} +16 -1
  93. package/chunks/{chunk-EKSCLBBF.js → chunk-DQCKVAF5.js} +23 -5
  94. package/chunks/{chunk-734C6JGI.js → chunk-DSX7KQPM.js} +5195 -666
  95. package/chunks/{chunk-4CMJKUND.js → chunk-DTVQSSNM.js} +67 -2
  96. package/chunks/{chunk-BKWNKLZB.js → chunk-DYTW3QVG.js} +24 -9
  97. package/chunks/{chunk-C2X7KY45.js → chunk-E4JNFXNI.js} +3 -3
  98. package/chunks/{chunk-UHQFIS7N.js → chunk-EAHOJF6V.js} +28 -4
  99. package/chunks/{chunk-YLSQLSH7.js → chunk-EBDGRBZX.js} +24 -16
  100. package/chunks/{chunk-DJBQCO2E.js → chunk-EFTPIZIC.js} +412 -3
  101. package/chunks/{chunk-6DIGWMGT.js → chunk-EIJT2PQ6.js} +2 -2
  102. package/chunks/{chunk-4TT3IVGA.js → chunk-EIY7SUPZ.js} +1 -1
  103. package/chunks/{chunk-XQFT3QUF.js → chunk-ENYUKMFK.js} +1 -1
  104. package/chunks/{chunk-ZWJDJ6RU.js → chunk-EVFDRBUM.js} +157 -153
  105. package/chunks/{chunk-4VPCTGH6.js → chunk-EWRW2WQC.js} +15 -9
  106. package/chunks/{chunk-VBCPNIQD.js → chunk-F33GFWPR.js} +47 -184
  107. package/chunks/{chunk-ERFDKH32.js → chunk-F47DITLZ.js} +19 -8
  108. package/chunks/{chunk-73RM4POK.js → chunk-F7NF2IOE.js} +7 -7
  109. package/chunks/{chunk-EB6QRGHM.js → chunk-FD5SJOWT.js} +10 -7
  110. package/chunks/{chunk-SS5SDCD3.js → chunk-FRICLXCZ.js} +7 -7
  111. package/chunks/{chunk-NU7RKEZR.js → chunk-FUO5V5KI.js} +14 -7
  112. package/chunks/{chunk-G6FECKTJ.js → chunk-G5PBOQWI.js} +9 -6
  113. package/chunks/{chunk-CAJTKR6W.js → chunk-G7HBEEX7.js} +15 -9
  114. package/chunks/{chunk-4QHPPXK2.js → chunk-GB4UKWY5.js} +2 -2
  115. package/chunks/{chunk-QYMAKPY5.js → chunk-GH2S4GD5.js} +350 -12
  116. package/chunks/{chunk-LHBUKJG2.js → chunk-GXUTFQXK.js} +28 -25
  117. package/chunks/{chunk-KJO2LBUK.js → chunk-H43PSPYS.js} +5 -5
  118. package/chunks/{chunk-XSG6G3G6.js → chunk-HJBHMANB.js} +12 -14
  119. package/chunks/chunk-HRPFBHW7.js +336 -0
  120. package/chunks/{chunk-6PJOTWAN.js → chunk-HT5S5TRQ.js} +1 -1
  121. package/chunks/{chunk-HCOBAG2L.js → chunk-HWVUSYSN.js} +3 -8
  122. package/chunks/{chunk-2OUD5T67.js → chunk-I2TMJPCV.js} +213 -185
  123. package/chunks/{chunk-CLWO3B77.js → chunk-I4NRYS6A.js} +11 -11
  124. package/chunks/{chunk-V7EESTJV.js → chunk-I5N4EAS6.js} +1 -1
  125. package/chunks/{chunk-K5KXUXWC.js → chunk-IG4W5SJR.js} +3 -3
  126. package/chunks/{chunk-FROAFEFB.js → chunk-IPATA3T2.js} +3 -3
  127. package/chunks/{chunk-NKLP3DCK.js → chunk-IQAFKVXS.js} +1 -1
  128. package/chunks/{chunk-AYHQZBJ4.js → chunk-IRKQ4YYX.js} +3 -3
  129. package/chunks/{chunk-J3NNHTV6.js → chunk-J5TTWBZK.js} +6 -0
  130. package/chunks/{chunk-QFCDF5PL.js → chunk-JHN7UIDW.js} +1 -1
  131. package/chunks/{chunk-AVNATYLY.js → chunk-JJKNYRFY.js} +1 -1
  132. package/chunks/{chunk-CQH5KTKC.js → chunk-JR42V4UY.js} +1 -1
  133. package/chunks/chunk-JS73NNWF.js +30 -0
  134. package/chunks/{chunk-NV55WWD6.js → chunk-JUARRUMA.js} +802 -2011
  135. package/chunks/chunk-JX6XHPTX.js +26 -0
  136. package/chunks/{chunk-5JTIYALA.js → chunk-JZWOCUZ3.js} +1 -1
  137. package/chunks/{chunk-P2G476QN.js → chunk-KEVYJSI4.js} +13 -13
  138. package/chunks/{chunk-B466ZSHZ.js → chunk-KFN2IZYR.js} +3 -3
  139. package/chunks/{chunk-JWALNCLT.js → chunk-KGV55H53.js} +1 -1
  140. package/chunks/{chunk-23RFD54N.js → chunk-KHP66DFN.js} +1 -1
  141. package/chunks/{chunk-2SXSLSQE.js → chunk-KM3XVTMO.js} +12 -6
  142. package/chunks/{chunk-GPGU4S2N.js → chunk-KMU3ZHH4.js} +3 -3
  143. package/chunks/chunk-KOGW3YWJ.js +2054 -0
  144. package/chunks/{chunk-NMOD2FXQ.js → chunk-L26ONV2Y.js} +8 -8
  145. package/chunks/chunk-L34XSHIZ.js +28 -0
  146. package/chunks/{chunk-SEONHUS3.js → chunk-LAUEEBDL.js} +2 -0
  147. package/chunks/{chunk-3WK3QDNV.js → chunk-LB3WQQJK.js} +2 -2
  148. package/chunks/{chunk-URE3QBBB.js → chunk-LEPCWS5A.js} +3 -3
  149. package/chunks/{chunk-36GSQ3MM.js → chunk-LHBNR6EU.js} +2 -2
  150. package/chunks/{chunk-V4264FEG.js → chunk-LKODFJRD.js} +1 -1
  151. package/chunks/{chunk-PADPMMYM.js → chunk-LOBDDFYK.js} +5 -29
  152. package/chunks/{chunk-BXDAPVQU.js → chunk-LU77UT4D.js} +28 -4
  153. package/chunks/{chunk-RFIDDFAL.js → chunk-M4KFODIP.js} +1 -1
  154. package/chunks/{chunk-CFJY4DGX.js → chunk-M4LBBSVP.js} +4 -2
  155. package/chunks/{chunk-KYWTPLBJ.js → chunk-MOF6VZN2.js} +2 -2
  156. package/chunks/{chunk-DJPASAUV.js → chunk-MP6YZ4RK.js} +4829 -3638
  157. package/chunks/{chunk-T26EAKDL.js → chunk-N2TNM3QB.js} +2 -6
  158. package/chunks/{chunk-2TNL5KPM.js → chunk-N4QWUPDM.js} +7 -0
  159. package/chunks/{chunk-7S226YTK.js → chunk-NFIDVZND.js} +11 -1
  160. package/chunks/{chunk-ZEYFMJQA.js → chunk-NQ4L2CMD.js} +83 -18
  161. package/chunks/{chunk-ZZUKP7HV.js → chunk-NRL5CUZT.js} +1 -1
  162. package/chunks/{chunk-WXEA74YB.js → chunk-NSUKQ4DN.js} +9 -3
  163. package/chunks/chunk-NUHOLAQ6.js +59 -0
  164. package/chunks/{chunk-DJEZ55D4.js → chunk-NVVJTUSL.js} +336 -140
  165. package/chunks/{chunk-3XKLXHGK.js → chunk-NXKOVOM5.js} +9 -9
  166. package/chunks/{chunk-5Q372OFJ.js → chunk-O4KNCAX4.js} +57 -10
  167. package/chunks/{chunk-GOXKNSDZ.js → chunk-O5CD7T4T.js} +40 -9
  168. package/chunks/{chunk-XIQ5HQ2F.js → chunk-OBTWL6ZW.js} +1 -1
  169. package/chunks/{chunk-PDQGMSZK.js → chunk-ODZF64DM.js} +1 -1
  170. package/chunks/{chunk-5MK45KZ3.js → chunk-OHOO527W.js} +1 -1
  171. package/chunks/{chunk-36LGBEM6.js → chunk-OHU2H5CS.js} +1 -1
  172. package/chunks/{chunk-JB4JIVTJ.js → chunk-OKTNXDVO.js} +1 -1
  173. package/chunks/{chunk-CETB5XY4.js → chunk-ORFIYTI2.js} +1 -1
  174. package/chunks/{chunk-7E7UCJHS.js → chunk-OSHQMOBS.js} +18 -17
  175. package/chunks/chunk-OSSTATJF.js +1310 -0
  176. package/chunks/chunk-P6UIF2OW.js +400 -0
  177. package/chunks/{chunk-U54AYGEC.js → chunk-PB7JBAHF.js} +15 -49
  178. package/chunks/{chunk-Y5S7LBOZ.js → chunk-PCRBLMIN.js} +17 -3
  179. package/chunks/{chunk-WAOIHTJS.js → chunk-PDAKFU7M.js} +1 -1
  180. package/chunks/{chunk-YTDVNSUQ.js → chunk-QAK5475D.js} +1 -1
  181. package/chunks/{chunk-ST5MDGH3.js → chunk-QI27MKNQ.js} +27 -19
  182. package/chunks/{chunk-MK2GIB46.js → chunk-QJGYU5PG.js} +1 -1
  183. package/chunks/{chunk-SMPR7SPO.js → chunk-QJNDUTOL.js} +45 -239
  184. package/chunks/{chunk-MQM5PJML.js → chunk-QJVZLILI.js} +1 -1
  185. package/chunks/{chunk-B5PHIJGI.js → chunk-QKDNS6FU.js} +2 -2
  186. package/chunks/{chunk-ZU4UDIWX.js → chunk-QQD2GART.js} +15 -9
  187. package/chunks/{chunk-62GQFYID.js → chunk-RAFQIHN2.js} +3 -3
  188. package/chunks/{chunk-MO3FC2WT.js → chunk-RJUVTJEZ.js} +1 -1
  189. package/chunks/{chunk-M6FOJXW3.js → chunk-RKW36UWC.js} +1 -1
  190. package/chunks/{chunk-GBJBJ4HX.js → chunk-RM4WT2XB.js} +4 -26
  191. package/chunks/{chunk-VGIFXISB.js → chunk-RN3YGDCA.js} +7 -5
  192. package/chunks/{chunk-DYXFD5RO.js → chunk-S2T7H5MI.js} +1 -1
  193. package/chunks/{chunk-FTF2YIZ5.js → chunk-S6H3ELPG.js} +1 -1
  194. package/chunks/{chunk-4NDLQAY2.js → chunk-SI7WDR3U.js} +524 -16
  195. package/chunks/{chunk-2YOHKHYR.js → chunk-SRF4KTAG.js} +6 -6
  196. package/chunks/{chunk-ZZMSC3RG.js → chunk-STCVJXQB.js} +24 -24
  197. package/chunks/{chunk-ST5V3ZOC.js → chunk-SULZPKTA.js} +3 -3
  198. package/chunks/{chunk-6X7EU5TI.js → chunk-SX2QIMJV.js} +9 -7
  199. package/chunks/{chunk-V5J4J5TP.js → chunk-TJYRTS4S.js} +2 -20
  200. package/chunks/{chunk-C3PEFRKD.js → chunk-TMKTOTMQ.js} +5 -5
  201. package/chunks/{chunk-ISKH4QX3.js → chunk-TQHPVKO6.js} +4 -4
  202. package/chunks/{chunk-HVC3PNVC.js → chunk-TSZSGQ3N.js} +1 -1
  203. package/chunks/{chunk-ICURCKIU.js → chunk-U4DJ5XB3.js} +594 -91
  204. package/chunks/{chunk-TTX2JUE6.js → chunk-U6D2PPMN.js} +1 -1
  205. package/chunks/{chunk-GVIVASYK.js → chunk-UAKRDON5.js} +4 -4
  206. package/chunks/{chunk-D5LUXLUH.js → chunk-UJ4DUYIH.js} +18 -4
  207. package/chunks/{chunk-VTHREBQM.js → chunk-UKYXYWI2.js} +2 -2
  208. package/chunks/{chunk-ZYMLPEZQ.js → chunk-UM2FFKXN.js} +3 -3
  209. package/chunks/{chunk-2OBKDPZZ.js → chunk-UPFRILIL.js} +2 -2
  210. package/chunks/{chunk-2HYKTO7V.js → chunk-UUASLXHW.js} +55 -6
  211. package/chunks/chunk-V5U2NZNJ.js +29 -0
  212. package/chunks/{chunk-P5Y23G2L.js → chunk-V7RNNPGC.js} +1 -18
  213. package/chunks/{chunk-Q2MSPKIJ.js → chunk-VBWD6C27.js} +1 -1
  214. package/chunks/chunk-VGHZT6JR.js +51 -0
  215. package/chunks/{chunk-MPNBVAEU.js → chunk-VNAYZAFX.js} +4 -4
  216. package/chunks/chunk-VPSIC437.js +780 -0
  217. package/chunks/{chunk-AIAOIFY4.js → chunk-VWTSRH6C.js} +92 -17
  218. package/chunks/{chunk-4K7KNVWH.js → chunk-VYIUNFEA.js} +3 -3
  219. package/chunks/{chunk-EQSBPBZ3.js → chunk-WP4AX3XD.js} +5 -7
  220. package/chunks/{chunk-BFPESSTR.js → chunk-XEAAO654.js} +1 -1
  221. package/chunks/{chunk-RU7BK6B3.js → chunk-XLXAZLDR.js} +3 -3
  222. package/chunks/{chunk-EFWRMA2I.js → chunk-YPWZTR7F.js} +3 -3
  223. package/chunks/{chunk-XF63PKEN.js → chunk-ZDFQGHZH.js} +1 -1
  224. package/chunks/{chunk-OZ6KS6KW.js → chunk-ZGCKTAL5.js} +6 -1
  225. package/chunks/chunk-ZHO2CW6D.js +205 -0
  226. package/chunks/chunk-ZJ2LM2SI.js +198 -0
  227. package/chunks/{chunk-AYFA7MZV.js → chunk-ZKFTS3OV.js} +6 -6
  228. package/chunks/{chunk-HMJ2P3SV.js → chunk-ZL4HFSL6.js} +91 -29
  229. package/chunks/{chunk-DJECZIJX.js → chunk-ZTPGUFQV.js} +30 -8
  230. package/chunks/{chunk-7EQQR46F.js → chunk-ZVP4PWBU.js} +1 -1
  231. package/chunks/chunk-bdqvmfwv-ZTSOWAFE.js +17446 -0
  232. package/chunks/config-utils-LVSYDLHZ.js +114 -0
  233. package/chunks/contextCommand-TZD7UAJK.js +107 -0
  234. package/chunks/{core-runtime-AXB6SK5D.js → core-runtime-B4UKKIAQ.js} +63 -62
  235. package/chunks/{create-sub-session-23ITIELI.js → create-sub-session-LUPWEUHR.js} +3 -3
  236. package/chunks/{create-sub-session-4QNE64MR.js → create-sub-session-NJ24B4US.js} +94 -66
  237. package/chunks/{cron-create-KJ4IY6PP.js → cron-create-CRSPET3H.js} +4 -4
  238. package/chunks/{cron-delete-MBLQCAYY.js → cron-delete-DB77SZTU.js} +4 -4
  239. package/chunks/{cron-list-DWH2PQ47.js → cron-list-U2JNYWV6.js} +4 -4
  240. package/chunks/{daemon-3GNHB3M2.js → daemon-RKDGBFLK.js} +613 -102
  241. package/chunks/{daemon-git-worktree-guard-IVAJJWYK.js → daemon-git-worktree-guard-O2HPOBAB.js} +62 -61
  242. package/chunks/daemon-status-provider-GRRVCJFW.js +117 -0
  243. package/chunks/daemon-trust-policy-YJL442BK.js +113 -0
  244. package/chunks/{daemon-trust-policy-monitor-KGGROSIV.js → daemon-trust-policy-monitor-JL7F4Y4Q.js} +68 -67
  245. package/chunks/{de-X6HLSIFE.js → de-T4BLOKEC.js} +3 -0
  246. package/chunks/deferred-core-runtime-S32AYVZI.js +115 -0
  247. package/chunks/{devtools-JCG4K2NZ.js → devtools-VDRJYPZF.js} +1 -1
  248. package/chunks/{discovery-X2NV535U.js → discovery-TUM3ZQ6U.js} +2 -2
  249. package/chunks/{display-image-BE7I6ZB6.js → display-image-73C7XNRK.js} +5 -5
  250. package/chunks/{dist-LVZCXVPF.js → dist-62OZ7QXB.js} +44 -26
  251. package/chunks/{dist-GFN5DCBX.js → dist-EDHQIBYD.js} +152 -63
  252. package/chunks/{dist-N6W6E753.js → dist-GT64AAUR.js} +135 -26
  253. package/chunks/{dist-6BPYWHVD.js → dist-JVXT4VUJ.js} +14 -7
  254. package/chunks/{dist-4WXLCBDR.js → dist-L6URO6CK.js} +12 -5
  255. package/chunks/{dist-5VXFRTWU.js → dist-LXFYIJNG.js} +866 -172
  256. package/chunks/{dist-SWQMYP2Q.js → dist-PDGNRVPY.js} +27 -8
  257. package/chunks/{dist-NSV4NBPK.js → dist-QAF5DO3Y.js} +380 -83
  258. package/chunks/{dist-HZNT6GQS.js → dist-ZCJLKQSP.js} +28 -14
  259. package/chunks/earlyInputCapture-BBPCIVZG.js +108 -0
  260. package/chunks/{edit-LEQLAGPZ.js → edit-SUGXY63Y.js} +47 -47
  261. package/chunks/{en-YLXBXM4Z.js → en-2RATMNX7.js} +5 -0
  262. package/chunks/{enter-worktree-35QCAAFP.js → enter-worktree-B6USKSIK.js} +7 -7
  263. package/chunks/{enterPlanMode-ONQN3WHE.js → enterPlanMode-MDX4RVVL.js} +48 -48
  264. package/chunks/{environment-UANTR7A4.js → environment-VN6RXDVN.js} +63 -62
  265. package/chunks/errors-UEY36PIT.js +114 -0
  266. package/chunks/{exit-worktree-XQD6D543.js → exit-worktree-DLQ73SJH.js} +10 -8
  267. package/chunks/exitPlanMode-EPHIEDAA.js +83 -0
  268. package/chunks/{fast-path-WUL7UZ6H.js → fast-path-Y73R42LV.js} +8 -7
  269. package/chunks/{fast-path-settings-XH426LUU.js → fast-path-settings-MFUR3IWK.js} +3 -3
  270. package/chunks/{fr-FTZWF462.js → fr-BGHGYX6A.js} +3 -0
  271. package/chunks/{glob-Y54QUWDY.js → glob-DMGH7EZN.js} +47 -47
  272. package/chunks/goal-tools-3RF3PXCL.js +99 -0
  273. package/chunks/{grep-5GPICQBU.js → grep-AJVLCVXC.js} +9 -7
  274. package/chunks/handleAutoUpdate-HVWQT2AU.js +110 -0
  275. package/chunks/i18n-5OR7NTRZ.js +125 -0
  276. package/chunks/{image-gen-J6FDGUZP.js → image-gen-VOIDOHOB.js} +8 -8
  277. package/chunks/initializer-JE5RQSOE.js +114 -0
  278. package/chunks/installationInfo-KO3CCSCK.js +108 -0
  279. package/chunks/{ja-2GL5FKYJ.js → ja-G3FTD5XE.js} +3 -0
  280. package/chunks/{keychain-token-storage-37XPR34V.js → keychain-token-storage-REZVMJA6.js} +2 -2
  281. package/chunks/list-3IORSFIY.js +117 -0
  282. package/chunks/list-agents-SBMONIUK.js +128 -0
  283. package/chunks/{llm-NSAVK5V3.js → llm-K26SUDVK.js} +223 -140
  284. package/chunks/{llm-content-generator-AY2QKXHE.js → llm-content-generator-TT6EAUD4.js} +11 -12
  285. package/chunks/loadedSettingsAdapter-KLLFZF3M.js +111 -0
  286. package/chunks/{loggingContentGenerator-DSFQHXIF.js → loggingContentGenerator-EYQBA4M4.js} +66 -65
  287. package/chunks/{loop-wakeup-XJFONSQ7.js → loop-wakeup-QA6SHCZT.js} +5 -5
  288. package/chunks/{ls-3VAT2J7A.js → ls-HEJNCEYO.js} +4 -4
  289. package/chunks/{lsp-5W7IRUBH.js → lsp-WOQKNZP6.js} +2 -2
  290. package/chunks/{managed-npm-update-TSWENTK5.js → managed-npm-update-HIJTODQT.js} +61 -60
  291. package/chunks/mcp-A2UEHETW.js +111 -0
  292. package/chunks/{monitor-RW4GWJHB.js → monitor-DKNZQAB2.js} +46 -46
  293. package/chunks/{node-QKLNSZMX.js → node-UETAYMMO.js} +3 -3
  294. package/chunks/nonInteractiveCli-YA47F2F4.js +190 -0
  295. package/chunks/{notebook-edit-CQNYS5OR.js → notebook-edit-MGHTRL2D.js} +47 -47
  296. package/chunks/{open-with-auth-YN3QZHVM.js → open-with-auth-D6JD6LDS.js} +3 -3
  297. package/chunks/{openaiContentGenerator-J6QIF7EX.js → openaiContentGenerator-ZJIEQ3ZJ.js} +26 -28
  298. package/chunks/pidfile-ETHAZNMY.js +112 -0
  299. package/chunks/{processUtils-GPHNANKZ.js → processUtils-UY3SAJJZ.js} +2 -2
  300. package/chunks/prompt-terminal-ledger-GZ747VYE.js +106 -0
  301. package/chunks/{pt-XN2YWJVM.js → pt-D73IFYT7.js} +3 -0
  302. package/chunks/{qwenContentGenerator-WWDXPYQI.js → qwenContentGenerator-VI4KATRY.js} +58 -58
  303. package/chunks/{qwenOAuth2-OF5WRBQT.js → qwenOAuth2-7AOCKSOQ.js} +7 -7
  304. package/chunks/{read-file-FQUQHC6N.js → read-file-P7F4P7LV.js} +11 -13
  305. package/chunks/{read-mcp-resource-XD257PGJ.js → read-mcp-resource-GLAGB6R7.js} +2 -2
  306. package/chunks/{record-artifact-VW23GS4F.js → record-artifact-SWVR7NSU.js} +4 -4
  307. package/chunks/renderer-selection-M4UN63VJ.js +99 -0
  308. package/chunks/{report-findings-AO5VYFLR.js → report-findings-AL5YW3KI.js} +5 -5
  309. package/chunks/{request-shutdown-BCLA3JV2.js → request-shutdown-5YK4IZ54.js} +8 -7
  310. package/chunks/resumeHistoryUtils-DPZKFW24.js +119 -0
  311. package/chunks/ripGrep-C7LJKUPZ.js +37 -0
  312. package/chunks/{ru-OLTMFJEW.js → ru-QMISLKRH.js} +3 -0
  313. package/chunks/{run-qwen-serve-5X6IDZER.js → run-qwen-serve-OGTEEUR2.js} +589 -251
  314. package/chunks/{runtime-HK27GMPF.js → runtime-LNBLEMZS.js} +73 -72
  315. package/chunks/scheduled-tasks-FLDYZQOF.js +128 -0
  316. package/chunks/{scheduler-WD4MHMO5.js → scheduler-73YXGUGW.js} +62 -61
  317. package/chunks/{sdk-exporters-grpc-G5IT4XS4.js → sdk-exporters-grpc-MXTVSE3C.js} +2 -2
  318. package/chunks/{sdk-exporters-http-TTU2CHBU.js → sdk-exporters-http-3JO5TJNU.js} +4 -4
  319. package/chunks/{sdk-impl-UUMVYMAL.js → sdk-impl-HZAUUTHJ.js} +6 -6
  320. package/chunks/{send-message-AJ4OCUBV.js → send-message-JC7NJTY6.js} +166 -35
  321. package/chunks/serve-3UR2H4CV.js +119 -0
  322. package/chunks/{server-GO2N5DH7.js → server-AOYZVVOM.js} +2904 -860
  323. package/chunks/{session-IFNHTUBT.js → session-UAWFNFGI.js} +119 -114
  324. package/chunks/session-attachments-root-ZCGXQQTR.js +104 -0
  325. package/chunks/{session-pr-refresh-I3UBWMVP.js → session-pr-refresh-CT2INROL.js} +157 -88
  326. package/chunks/{settings-L6N54CU6.js → settings-BHRGDASJ.js} +67 -66
  327. package/chunks/{shell-4Y5LLW6N.js → shell-YHOGC7TO.js} +46 -46
  328. package/chunks/{skill-YOWTRAKQ.js → skill-ZGBKNCHQ.js} +131 -97
  329. package/chunks/skill-settings-AKSP665O.js +119 -0
  330. package/chunks/spawnChannel-N25MBB6F.js +112 -0
  331. package/chunks/standalone-update-XGPWJDRN.js +119 -0
  332. package/chunks/start-opentui-ui-FZ4USOU7.js +55342 -0
  333. package/chunks/{startInteractiveUI-XDFSHBZD.js → startInteractiveUI-E2WQJUOA.js} +3509 -4706
  334. package/chunks/{syntheticOutput-ML43GEFN.js → syntheticOutput-HJNZSEHN.js} +3 -3
  335. package/chunks/{task-create-QN4LYRSE.js → task-create-6RSD54S5.js} +12 -12
  336. package/chunks/{task-list-JPLGK45U.js → task-list-IQSACPOM.js} +34 -11
  337. package/chunks/{task-stop-CXEH5L2D.js → task-stop-HE2LRQNW.js} +2 -2
  338. package/chunks/{task-update-IWEOJFV2.js → task-update-XAJ2NYOA.js} +13 -14
  339. package/chunks/{team-create-OOPXCDBA.js → team-create-SOKMYSQU.js} +54 -55
  340. package/chunks/{team-delete-RZVVSGCY.js → team-delete-NGNNKGMG.js} +25 -8
  341. package/chunks/{team-plan-approval-DSX5EWAT.js → team-plan-approval-U7ZWXYAY.js} +46 -46
  342. package/chunks/terminal-image-renderer-KKM4OBLO.js +117 -0
  343. package/chunks/theme-manager-GQHF3A7T.js +103 -0
  344. package/chunks/{todoWrite-WDJNQEMW.js → todoWrite-5UTVUXHA.js} +39 -9
  345. package/chunks/{tool-search-J5Q6U7DN.js → tool-search-IAI2RVWT.js} +21 -19
  346. package/chunks/total-session-admission-G4CGCSTG.js +113 -0
  347. package/chunks/trustedFolders-D2I3FDPB.js +123 -0
  348. package/chunks/{update-relaunch-SIKHLHVR.js → update-relaunch-5RWKZAL3.js} +5 -5
  349. package/chunks/updateCheck-ZXOQDFEI.js +119 -0
  350. package/chunks/useAutoAcceptIndicator-6EK4QGAH.js +121 -0
  351. package/chunks/{validateNonInterActiveAuth-JUDQP6V4.js → validateNonInterActiveAuth-QPFEKATS.js} +113 -109
  352. package/chunks/{version-C63GDDWN.js → version-JKNG7YDH.js} +1 -1
  353. package/chunks/{web-fetch-FOQZMNSC.js → web-fetch-X3AHIIHW.js} +16 -19
  354. package/chunks/{web-search-PUJTBFUC.js → web-search-K2FMOGS5.js} +10 -11
  355. package/chunks/{web-shell-static-HNB4FDOE.js → web-shell-static-POZHGGXE.js} +5 -4
  356. package/chunks/{workflow-Y5IPINVH.js → workflow-TOLPAK5G.js} +213 -119
  357. package/chunks/workspace-providers-status-PCJK3RC7.js +115 -0
  358. package/chunks/{workspace-registration-store-SMJWI2AI.js → workspace-registration-store-KQWVVW4Y.js} +2 -1
  359. package/chunks/workspace-registry-YNIOB6HJ.js +122 -0
  360. package/chunks/workspace-runtime-coordinator-WG2RNEN7.js +123 -0
  361. package/chunks/workspace-service-G4ZNBOFH.js +127 -0
  362. package/chunks/workspace-skills-status-FMTPPMWC.js +114 -0
  363. package/chunks/{workspace-trust-reconciler-PLIDLJZX.js → workspace-trust-reconciler-IBDFQBQS.js} +76 -77
  364. package/chunks/wrapper-JH3IFHT2.js +35 -0
  365. package/chunks/write-file-YTLFY2S5.js +88 -0
  366. package/chunks/{zh-UNY63FR3.js → zh-25DF7OGK.js} +5 -0
  367. package/chunks/{zh-TW-RPTMRTHG.js → zh-TW-5EDMZVGK.js} +5 -0
  368. package/chunks/{zoom-image-LYQD7BQA.js → zoom-image-IFXSN74N.js} +11 -13
  369. package/cli.js +131 -90
  370. package/locales/ca.js +6 -0
  371. package/locales/de.js +6 -0
  372. package/locales/en.js +9 -0
  373. package/locales/fr.js +6 -0
  374. package/locales/ja.js +6 -0
  375. package/locales/pt.js +6 -0
  376. package/locales/ru.js +6 -0
  377. package/locales/zh-TW.js +9 -0
  378. package/locales/zh.js +9 -0
  379. package/package.json +3 -3
  380. package/web-shell/assets/{abnfDiagram-VCTEODGH-TRCMSA_6.js → abnfDiagram-VCTEODGH-Cxf7xE_Z.js} +1 -1
  381. package/web-shell/assets/{arc-D9Uls5b3.js → arc-ESi1eNkE.js} +1 -1
  382. package/web-shell/assets/{architectureDiagram-5GKGNRK7-Bwb8jPXg.js → architectureDiagram-5GKGNRK7-D9l7-bDo.js} +1 -1
  383. package/web-shell/assets/{blockDiagram-NRAW4CY4-DHj71TSX.js → blockDiagram-NRAW4CY4-Bc8DEasw.js} +1 -1
  384. package/web-shell/assets/{c4Diagram-UCG6FXSJ-uKBBdbyr.js → c4Diagram-UCG6FXSJ-Dimb2Hmh.js} +1 -1
  385. package/web-shell/assets/channel-B7ohGDil.js +1 -0
  386. package/web-shell/assets/{chunk-2Q5K7J3B-BZd0Phrl.js → chunk-2Q5K7J3B-jVDmOpAQ.js} +1 -1
  387. package/web-shell/assets/{chunk-5VM5RSS4-7KNeNBqN.js → chunk-5VM5RSS4-DbG_SwdB.js} +1 -1
  388. package/web-shell/assets/{chunk-F27PBJKO-BeboS7Fi.js → chunk-F27PBJKO-QEc4cY1v.js} +1 -1
  389. package/web-shell/assets/{chunk-G27WJ6UU-RV3JONoj.js → chunk-G27WJ6UU-iJ36lQ3X.js} +1 -1
  390. package/web-shell/assets/{chunk-JWPE2WC7-Yw9FCFsP.js → chunk-JWPE2WC7-DuArnVtF.js} +1 -1
  391. package/web-shell/assets/{chunk-LCL6LL3I-GIMnydDe.js → chunk-LCL6LL3I-DxOf1zwL.js} +1 -1
  392. package/web-shell/assets/{chunk-POPQ4Y6H-Cfrux7bL.js → chunk-POPQ4Y6H-lVLu9Ild.js} +1 -1
  393. package/web-shell/assets/{chunk-SVP7TREG-BlvIN0CO.js → chunk-SVP7TREG-C6XYlIer.js} +1 -1
  394. package/web-shell/assets/{chunk-XXDRQBXY-DMs7Rr4t.js → chunk-XXDRQBXY-CiG2j2Ji.js} +1 -1
  395. package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +1 -0
  396. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +1 -0
  397. package/web-shell/assets/{cose-bilkent-JH36ORCC-DNGqTNwI.js → cose-bilkent-JH36ORCC-DGVHMMVm.js} +1 -1
  398. package/web-shell/assets/{cynefin-OW5HDTMX-CojMpaoH.js → cynefin-OW5HDTMX-D6cgpCnH.js} +1 -1
  399. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DF07YXGo.js → cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js} +1 -1
  400. package/web-shell/assets/{dagre-3AP2YEHR-17-4WtCH.js → dagre-3AP2YEHR-B4ABMIG-.js} +1 -1
  401. package/web-shell/assets/{diagram-S7CK7UJ4-G3Wuyz9m.js → diagram-S7CK7UJ4-DgCkp_Lm.js} +1 -1
  402. package/web-shell/assets/{diagram-UQ7AKVKN-nyWIKZ8P.js → diagram-UQ7AKVKN-FG0FNokz.js} +1 -1
  403. package/web-shell/assets/{diagram-VSXAHHWV-tKHhmYSC.js → diagram-VSXAHHWV-JgkP9qg-.js} +1 -1
  404. package/web-shell/assets/{diagram-VX7I27RA-CpDf1hYk.js → diagram-VX7I27RA-ADh2x83l.js} +1 -1
  405. package/web-shell/assets/{diagram-Z3DM3KII-Cah2IFXG.js → diagram-Z3DM3KII-yXqoYF1J.js} +1 -1
  406. package/web-shell/assets/{ebnfDiagram-PWID7BFC-DNaCkgxy.js → ebnfDiagram-PWID7BFC-Duk83Ek_.js} +1 -1
  407. package/web-shell/assets/{erDiagram-SSCWMZ5O-CAdRgcf1.js → erDiagram-SSCWMZ5O-DMdvxySG.js} +1 -1
  408. package/web-shell/assets/{flowDiagram-A5DVABFB-CMUJAShL.js → flowDiagram-A5DVABFB-DHjVgSji.js} +1 -1
  409. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-o-_MUNey.js → ganttDiagram-EL5Y4UJY-DMM9DkCE.js} +1 -1
  410. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js → gitGraphDiagram-WWUBYQGX-t_ug9vO8.js} +1 -1
  411. package/web-shell/assets/index-BGZRqbRo.css +36 -0
  412. package/web-shell/assets/index-DRri_6_x.js +2067 -0
  413. package/web-shell/assets/{index-BK_NKxiJ.js → index-zqvnpGHv.js} +1 -1
  414. package/web-shell/assets/{infoDiagram-RXCK75RN-qJPeZbGP.js → infoDiagram-RXCK75RN-eT1fANNm.js} +1 -1
  415. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-7Om4vNo1.js → ishikawaDiagram-5VMMS53U-k3evzZNn.js} +1 -1
  416. package/web-shell/assets/{journeyDiagram-EYS64GPL-BNtXqmBW.js → journeyDiagram-EYS64GPL-CGim3EAi.js} +1 -1
  417. package/web-shell/assets/{kanban-definition-3QL26DDD-COgFec8P.js → kanban-definition-3QL26DDD-WHfJo-22.js} +1 -1
  418. package/web-shell/assets/{layout-B9n81PC9.js → layout-DkqIaFlJ.js} +1 -1
  419. package/web-shell/assets/{linear-Bb6nXZQq.js → linear-Bdkd3mCz.js} +1 -1
  420. package/web-shell/assets/{mermaid.core-Cgrm3JVT.js → mermaid.core-CGw0LkT_.js} +6 -6
  421. package/web-shell/assets/{mindmap-definition-FBJOCRG2-TKwLTjnG.js → mindmap-definition-FBJOCRG2-C9V4rBvo.js} +1 -1
  422. package/web-shell/assets/{pegDiagram-XKGWAZYB-BJPuvlpi.js → pegDiagram-XKGWAZYB-CwoI2T5G.js} +1 -1
  423. package/web-shell/assets/{pieDiagram-E7YTZNPT-D01VkNsW.js → pieDiagram-E7YTZNPT-DaTmBmPG.js} +1 -1
  424. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-C4hHsiv-.js → quadrantDiagram-AXDQQJYC-plh6MyGI.js} +1 -1
  425. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CuEO4xK2.js → railroadDiagram-O6MQD6OU-D_b-S0iK.js} +1 -1
  426. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D5J_vIo5.js → requirementDiagram-EFPCY7ZU-zUzTN7VE.js} +1 -1
  427. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-DQKY223V.js → sankeyDiagram-P5KCCOFB-m6AhoD0l.js} +1 -1
  428. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D27YV_cm.js → sequenceDiagram-WJ2MYXX4-Cwhzsine.js} +1 -1
  429. package/web-shell/assets/{sizeCapture-X5ZJPWSS-TJg8UcwV.js → sizeCapture-X5ZJPWSS-CcZuKIae.js} +1 -1
  430. package/web-shell/assets/{stateDiagram-HBIQ2CUA-CmnPzUIx.js → stateDiagram-HBIQ2CUA-CFoiJwD_.js} +1 -1
  431. package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +1 -0
  432. package/web-shell/assets/{swimlanes-XN3QIQJK-ByeP3_Nu.js → swimlanes-XN3QIQJK-CgS9hcaV.js} +1 -1
  433. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +8 -0
  434. package/web-shell/assets/{timeline-definition-24CTP7MA-BsFA5juR.js → timeline-definition-24CTP7MA-Dzzc05t9.js} +1 -1
  435. package/web-shell/assets/{vennDiagram-4TSXK5OY-DREP2ECo.js → vennDiagram-4TSXK5OY-DemK0f7Y.js} +1 -1
  436. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-iyd9lKi2.js → wardleyDiagram-VM6X3IG4-CquLxtMr.js} +1 -1
  437. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CVr1_j9q.js → xychartDiagram-S5SC5T6Z-BTBKTM5g.js} +1 -1
  438. package/web-shell/index.html +196 -2
  439. package/chunks/MaxSizedBox-X42SXBJH.js +0 -110
  440. package/chunks/agent-headless-IZM25LJA.js +0 -85
  441. package/chunks/bridge-ME6QXZNA.js +0 -119
  442. package/chunks/channel-settings-store-PEOI7XCG.js +0 -120
  443. package/chunks/chunk-7J6OTNGO.js +0 -424
  444. package/chunks/chunk-BWORX6FA.js +0 -135
  445. package/chunks/chunk-CPBF7KYF.js +0 -51
  446. package/chunks/chunk-H72BQNM3.js +0 -645
  447. package/chunks/chunk-JHYH6PYQ.js +0 -3096
  448. package/chunks/chunk-SS4MRMKE.js +0 -3525
  449. package/chunks/chunk-T4EFG2P5.js +0 -113
  450. package/chunks/chunk-XZA32HII.js +0 -19
  451. package/chunks/chunk-ZYNTSXWK.js +0 -32
  452. package/chunks/config-utils-R6M3TA34.js +0 -113
  453. package/chunks/contextCommand-ZCAP23J6.js +0 -106
  454. package/chunks/daemon-status-provider-K3SJ5C2U.js +0 -117
  455. package/chunks/daemon-trust-policy-DOR3YG62.js +0 -112
  456. package/chunks/deferred-core-runtime-WOYLUQQ7.js +0 -114
  457. package/chunks/earlyInputCapture-OHBEVO4K.js +0 -107
  458. package/chunks/errors-WAK6KFBC.js +0 -113
  459. package/chunks/exitPlanMode-UEYBG6P5.js +0 -83
  460. package/chunks/goal-tools-PTD3MBA7.js +0 -411
  461. package/chunks/handleAutoUpdate-FP3NWNSG.js +0 -109
  462. package/chunks/i18n-INIU5X7A.js +0 -124
  463. package/chunks/initializer-TYODV6GE.js +0 -113
  464. package/chunks/installationInfo-AAPKYDSZ.js +0 -107
  465. package/chunks/list-TUODDN6J.js +0 -116
  466. package/chunks/list-agents-DI3YFTDT.js +0 -80
  467. package/chunks/loadedSettingsAdapter-KJCLZ3C4.js +0 -110
  468. package/chunks/mcp-MWSAPFOL.js +0 -110
  469. package/chunks/nonInteractiveCli-JXKL343Q.js +0 -185
  470. package/chunks/pidfile-QOIQZFT2.js +0 -111
  471. package/chunks/prompt-terminal-ledger-FOMFTYOM.js +0 -105
  472. package/chunks/resumeHistoryUtils-NSGF3UCB.js +0 -118
  473. package/chunks/ripGrep-4CAT6SKV.js +0 -39
  474. package/chunks/scheduled-tasks-MN2ZZ5P6.js +0 -127
  475. package/chunks/serve-2XCHPPGG.js +0 -118
  476. package/chunks/skill-settings-ZL4JY5UE.js +0 -118
  477. package/chunks/spawnChannel-ZST6XJVJ.js +0 -112
  478. package/chunks/standalone-update-THVU3OKY.js +0 -118
  479. package/chunks/terminal-image-renderer-KS25G33E.js +0 -114
  480. package/chunks/theme-manager-YMZNG45F.js +0 -102
  481. package/chunks/total-session-admission-PVN64JVV.js +0 -114
  482. package/chunks/trustedFolders-FATSC4YI.js +0 -122
  483. package/chunks/updateCheck-D3YG2WCD.js +0 -118
  484. package/chunks/useAutoAcceptIndicator-ILINOSAS.js +0 -120
  485. package/chunks/workspace-providers-status-IJ4VHFMB.js +0 -114
  486. package/chunks/workspace-registry-BTGZIMPK.js +0 -123
  487. package/chunks/workspace-service-SIN67ITC.js +0 -126
  488. package/chunks/workspace-skills-status-F3RKCUIX.js +0 -113
  489. package/chunks/write-file-PAIGB33C.js +0 -88
  490. package/web-shell/assets/channel-CXjVLaBa.js +0 -1
  491. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +0 -1
  492. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +0 -1
  493. package/web-shell/assets/index-Ci-z4zWY.js +0 -1913
  494. package/web-shell/assets/index-LDlXZRHA.css +0 -36
  495. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +0 -1
  496. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +0 -8
  497. /package/chunks/{chunk-FOGQO4FG.js → chunk-JA5CBKRP.js} +0 -0
@@ -23,6 +23,47 @@ var MCP_RESTART_CLIENT_HEADROOM_MS = 3e4;
23
23
 
24
24
  // packages/sdk-typescript/src/daemon/DaemonAuthFlow.ts
25
25
  init_esbuild_shims();
26
+
27
+ // packages/sdk-typescript/src/daemon/DaemonHttpError.ts
28
+ init_esbuild_shims();
29
+ var DaemonHttpError = class extends Error {
30
+ static {
31
+ __name(this, "DaemonHttpError");
32
+ }
33
+ status;
34
+ body;
35
+ constructor(status, body, message) {
36
+ super(message);
37
+ this.name = "DaemonHttpError";
38
+ this.status = status;
39
+ this.body = body;
40
+ }
41
+ };
42
+ function getErrorBodyRecord(body) {
43
+ return typeof body === "object" && body !== null && !Array.isArray(body) ? body : void 0;
44
+ }
45
+ __name(getErrorBodyRecord, "getErrorBodyRecord");
46
+ function isSubagentSessionNotFound(error, toolCallId) {
47
+ if (!(error instanceof DaemonHttpError) || error.status !== 404) {
48
+ return false;
49
+ }
50
+ const body = getErrorBodyRecord(error.body);
51
+ if (body?.["code"] !== "session_not_found") return false;
52
+ return toolCallId === void 0 || body["toolCallId"] === toolCallId;
53
+ }
54
+ __name(isSubagentSessionNotFound, "isSubagentSessionNotFound");
55
+ function isSessionLevelNotFound(error) {
56
+ if (!(error instanceof DaemonHttpError) || error.status !== 404) {
57
+ return false;
58
+ }
59
+ const body = getErrorBodyRecord(error.body);
60
+ if (body?.["code"] !== "session_not_found") return false;
61
+ const toolCallId = body["toolCallId"];
62
+ return toolCallId === void 0 || toolCallId === null;
63
+ }
64
+ __name(isSessionLevelNotFound, "isSessionLevelNotFound");
65
+
66
+ // packages/sdk-typescript/src/daemon/DaemonAuthFlow.ts
26
67
  var DEVICE_FLOW_EXPIRY_GRACE_MS = 3e4;
27
68
  var TERMINAL_STATUSES = /* @__PURE__ */ new Set(
28
69
  ["authorized", "expired", "error", "cancelled"]
@@ -169,6 +210,7 @@ __name(signalAbortError, "signalAbortError");
169
210
  // packages/sdk-typescript/src/daemon/session-pr.ts
170
211
  init_esbuild_shims();
171
212
  var MAX_SESSION_PR_URL_LENGTH = 2048;
213
+ var MAX_SESSION_PR_ISSUES = 10;
172
214
  function hasControlCharacter(value) {
173
215
  return Array.from(value).some((character) => {
174
216
  const code = character.charCodeAt(0);
@@ -176,54 +218,23 @@ function hasControlCharacter(value) {
176
218
  });
177
219
  }
178
220
  __name(hasControlCharacter, "hasControlCharacter");
221
+ function isBindingUrl(value) {
222
+ return typeof value === "string" && value.length <= MAX_SESSION_PR_URL_LENGTH && /^https?:\/\//i.test(value) && !hasControlCharacter(value);
223
+ }
224
+ __name(isBindingUrl, "isBindingUrl");
225
+ function isDaemonSessionIssueInfo(value) {
226
+ if (typeof value !== "object" || value === null) return false;
227
+ const v = value;
228
+ return typeof v["number"] === "number" && Number.isInteger(v["number"]) && v["number"] > 0 && isBindingUrl(v["url"]) && (v["state"] === void 0 || v["state"] === "open" || v["state"] === "completed" || v["state"] === "not_planned");
229
+ }
230
+ __name(isDaemonSessionIssueInfo, "isDaemonSessionIssueInfo");
179
231
  function isDaemonSessionPrInfo(value) {
180
232
  if (typeof value !== "object" || value === null) return false;
181
233
  const v = value;
182
- return typeof v["number"] === "number" && Number.isInteger(v["number"]) && v["number"] > 0 && typeof v["url"] === "string" && v["url"].length <= MAX_SESSION_PR_URL_LENGTH && /^https?:\/\//i.test(v["url"]) && // The daemon interpolates the url into a stderr audit line — control
183
- // characters would forge log lines downstream of this gate.
184
- !hasControlCharacter(v["url"]) && (v["state"] === void 0 || v["state"] === "open" || v["state"] === "merged" || v["state"] === "closed");
234
+ return typeof v["number"] === "number" && Number.isInteger(v["number"]) && v["number"] > 0 && isBindingUrl(v["url"]) && (v["state"] === void 0 || v["state"] === "open" || v["state"] === "merged" || v["state"] === "closed") && (v["issues"] === void 0 || Array.isArray(v["issues"]) && v["issues"].length <= MAX_SESSION_PR_ISSUES && v["issues"].every(isDaemonSessionIssueInfo));
185
235
  }
186
236
  __name(isDaemonSessionPrInfo, "isDaemonSessionPrInfo");
187
237
 
188
- // packages/sdk-typescript/src/daemon/DaemonHttpError.ts
189
- init_esbuild_shims();
190
- var DaemonHttpError = class extends Error {
191
- static {
192
- __name(this, "DaemonHttpError");
193
- }
194
- status;
195
- body;
196
- constructor(status, body, message) {
197
- super(message);
198
- this.name = "DaemonHttpError";
199
- this.status = status;
200
- this.body = body;
201
- }
202
- };
203
- function getErrorBodyRecord(body) {
204
- return typeof body === "object" && body !== null && !Array.isArray(body) ? body : void 0;
205
- }
206
- __name(getErrorBodyRecord, "getErrorBodyRecord");
207
- function isSubagentSessionNotFound(error, toolCallId) {
208
- if (!(error instanceof DaemonHttpError) || error.status !== 404) {
209
- return false;
210
- }
211
- const body = getErrorBodyRecord(error.body);
212
- if (body?.["code"] !== "session_not_found") return false;
213
- return toolCallId === void 0 || body["toolCallId"] === toolCallId;
214
- }
215
- __name(isSubagentSessionNotFound, "isSubagentSessionNotFound");
216
- function isSessionLevelNotFound(error) {
217
- if (!(error instanceof DaemonHttpError) || error.status !== 404) {
218
- return false;
219
- }
220
- const body = getErrorBodyRecord(error.body);
221
- if (body?.["code"] !== "session_not_found") return false;
222
- const toolCallId = body["toolCallId"];
223
- return toolCallId === void 0 || toolCallId === null;
224
- }
225
- __name(isSessionLevelNotFound, "isSessionLevelNotFound");
226
-
227
238
  // packages/sdk-typescript/src/daemon/RestSseTransport.ts
228
239
  init_esbuild_shims();
229
240
 
@@ -627,6 +638,7 @@ var DAEMON_APPROVAL_MODES = PERMISSION_MODES;
627
638
  // packages/sdk-typescript/src/daemon/standalone-sessions.ts
628
639
  init_esbuild_shims();
629
640
  var STANDALONE_SESSIONS_CAPABILITY = "standalone_sessions_v1";
641
+ var STANDALONE_SESSION_OPTIONS_CAPABILITY = "standalone_session_options_v1";
630
642
  var DaemonStandaloneProtocolError = class extends Error {
631
643
  constructor(route, detail) {
632
644
  super(`${route}: malformed standalone-session response (${detail})`);
@@ -718,6 +730,138 @@ function validateStandaloneFields(value, route) {
718
730
  validateWorkingDirectory(value["workingDirectory"], route);
719
731
  }
720
732
  __name(validateStandaloneFields, "validateStandaloneFields");
733
+ function validateOptionalString(value, field, route) {
734
+ if (value[field] !== void 0 && typeof value[field] !== "string") {
735
+ throw new DaemonStandaloneProtocolError(route, `expected ${field} string`);
736
+ }
737
+ }
738
+ __name(validateOptionalString, "validateOptionalString");
739
+ function validateStatusCell(value, route) {
740
+ requireString(value, "kind", route);
741
+ if (!["ok", "warning", "error", "disabled", "not_started", "unknown"].includes(
742
+ String(value["status"])
743
+ )) {
744
+ throw new DaemonStandaloneProtocolError(route, "invalid status");
745
+ }
746
+ for (const field of ["error", "hint"]) {
747
+ validateOptionalString(value, field, route);
748
+ }
749
+ if (value["errorKind"] !== void 0 && !DAEMON_ERROR_KINDS.includes(
750
+ value["errorKind"]
751
+ )) {
752
+ throw new DaemonStandaloneProtocolError(route, "invalid errorKind");
753
+ }
754
+ }
755
+ __name(validateStatusCell, "validateStatusCell");
756
+ function validateProviderModel(value, route) {
757
+ const model = asRecord(value, route, "provider model");
758
+ requireString(model, "modelId", route);
759
+ requireString(model, "baseModelId", route);
760
+ requireString(model, "name", route, true);
761
+ if (model["description"] !== void 0 && model["description"] !== null && typeof model["description"] !== "string") {
762
+ throw new DaemonStandaloneProtocolError(route, "invalid description");
763
+ }
764
+ if (model["contextLimit"] !== void 0 && (typeof model["contextLimit"] !== "number" || !Number.isFinite(model["contextLimit"]) || model["contextLimit"] <= 0)) {
765
+ throw new DaemonStandaloneProtocolError(route, "invalid contextLimit");
766
+ }
767
+ for (const field of ["baseUrl", "envKey"]) {
768
+ validateOptionalString(model, field, route);
769
+ }
770
+ for (const field of ["isCurrent", "isRuntime"]) {
771
+ if (typeof model[field] !== "boolean") {
772
+ throw new DaemonStandaloneProtocolError(
773
+ route,
774
+ `expected ${field} boolean`
775
+ );
776
+ }
777
+ }
778
+ if (model["modalities"] !== void 0) {
779
+ const modalities = asRecord(model["modalities"], route, "modalities");
780
+ for (const field of ["image", "pdf", "audio", "video"]) {
781
+ if (modalities[field] !== void 0 && typeof modalities[field] !== "boolean") {
782
+ throw new DaemonStandaloneProtocolError(
783
+ route,
784
+ `expected modalities.${field} boolean`
785
+ );
786
+ }
787
+ }
788
+ }
789
+ if (model["configOptions"] !== void 0 && !Array.isArray(model["configOptions"])) {
790
+ throw new DaemonStandaloneProtocolError(route, "expected configOptions[]");
791
+ }
792
+ }
793
+ __name(validateProviderModel, "validateProviderModel");
794
+ function parseStandaloneSessionOptions(value, route) {
795
+ const options = asRecord(value, route);
796
+ if (options["workspaceCwd"] !== void 0 || options["acpChannelLive"] !== void 0) {
797
+ throw new DaemonStandaloneProtocolError(
798
+ route,
799
+ "standalone options exposed workspace internals"
800
+ );
801
+ }
802
+ if (options["v"] !== 1) {
803
+ throw new DaemonStandaloneProtocolError(route, "expected v=1");
804
+ }
805
+ if (typeof options["initialized"] !== "boolean") {
806
+ throw new DaemonStandaloneProtocolError(
807
+ route,
808
+ "expected initialized boolean"
809
+ );
810
+ }
811
+ if (options["current"] !== void 0) {
812
+ const current = asRecord(options["current"], route, "current");
813
+ for (const field of [
814
+ "authType",
815
+ "modelId",
816
+ "baseUrl",
817
+ "fastModelId",
818
+ "visionModelId"
819
+ ]) {
820
+ validateOptionalString(current, field, route);
821
+ }
822
+ }
823
+ if (options["approvalMode"] !== void 0 && !DAEMON_APPROVAL_MODES.includes(
824
+ options["approvalMode"]
825
+ )) {
826
+ throw new DaemonStandaloneProtocolError(route, "invalid approvalMode");
827
+ }
828
+ if (!Array.isArray(options["providers"])) {
829
+ throw new DaemonStandaloneProtocolError(route, "expected providers[]");
830
+ }
831
+ for (const value2 of options["providers"]) {
832
+ const provider = asRecord(value2, route, "provider");
833
+ validateStatusCell(provider, route);
834
+ if (provider["kind"] !== "model_provider") {
835
+ throw new DaemonStandaloneProtocolError(
836
+ route,
837
+ "expected model_provider kind"
838
+ );
839
+ }
840
+ requireString(provider, "authType", route);
841
+ if (typeof provider["current"] !== "boolean") {
842
+ throw new DaemonStandaloneProtocolError(
843
+ route,
844
+ "expected provider current boolean"
845
+ );
846
+ }
847
+ if (!Array.isArray(provider["models"])) {
848
+ throw new DaemonStandaloneProtocolError(route, "expected models[]");
849
+ }
850
+ for (const model of provider["models"]) {
851
+ validateProviderModel(model, route);
852
+ }
853
+ }
854
+ if (options["errors"] !== void 0) {
855
+ if (!Array.isArray(options["errors"])) {
856
+ throw new DaemonStandaloneProtocolError(route, "expected errors[]");
857
+ }
858
+ for (const value2 of options["errors"]) {
859
+ validateStatusCell(asRecord(value2, route, "error"), route);
860
+ }
861
+ }
862
+ return options;
863
+ }
864
+ __name(parseStandaloneSessionOptions, "parseStandaloneSessionOptions");
721
865
  function parseStandaloneSession(value, route, expectedSessionId) {
722
866
  const session = asRecord(value, route);
723
867
  requireSessionId(session, route, expectedSessionId);
@@ -725,6 +869,12 @@ function parseStandaloneSession(value, route, expectedSessionId) {
725
869
  if (typeof session["attached"] !== "boolean") {
726
870
  throw new DaemonStandaloneProtocolError(route, "expected attached boolean");
727
871
  }
872
+ if (session["modelApplied"] !== void 0 && typeof session["modelApplied"] !== "boolean") {
873
+ throw new DaemonStandaloneProtocolError(
874
+ route,
875
+ "expected modelApplied boolean"
876
+ );
877
+ }
728
878
  validateStandaloneFields(session, route);
729
879
  return session;
730
880
  }
@@ -891,11 +1041,15 @@ function parseSessionGenerationEvent(value) {
891
1041
  __name(parseSessionGenerationEvent, "parseSessionGenerationEvent");
892
1042
  var DEFAULT_SESSION_LIST_PAGE_SIZE = 20;
893
1043
  var DEFAULT_FETCH_TIMEOUT_MS = 3e4;
1044
+ var DEFAULT_PROVIDER_MUTATION_TIMEOUT_MS = 0;
894
1045
  var DEFAULT_SESSION_RESTORE_TIMEOUT_MS = 7e4;
895
1046
  var SESSION_RESTORE_TIMEOUT_HEADROOM_MS = 1e4;
896
1047
  var VOICE_TRANSCRIPTION_DEFAULT_TIMEOUT_MS = 65e3;
897
1048
  var GITHUB_SETUP_DEFAULT_TIMEOUT_MS = 9e4;
898
1049
  var CHANNEL_NOTIFY_DEFAULT_TIMEOUT_MS = 35e3;
1050
+ var WORKSPACE_RUNTIME_ENSURE_SERVER_DEADLINE_MS = 6e4;
1051
+ var WORKSPACE_RUNTIME_ENSURE_CLIENT_HEADROOM_MS = 2e3;
1052
+ var WORKSPACE_RUNTIME_ENSURE_TIMEOUT_MS = WORKSPACE_RUNTIME_ENSURE_SERVER_DEADLINE_MS + WORKSPACE_RUNTIME_ENSURE_CLIENT_HEADROOM_MS;
899
1053
  var MAX_TIMER_DELAY_MS = 2147483647;
900
1054
  var DEFAULT_MAX_PENDING_PROMPTS_PER_SESSION = 5;
901
1055
  var MCP_RESTART_DEFAULT_TIMEOUT_MS = MCP_RESTART_SERVER_DEADLINE_MS + MCP_RESTART_CLIENT_HEADROOM_MS;
@@ -1106,7 +1260,23 @@ var DaemonClient = class {
1106
1260
  }
1107
1261
  } catch {
1108
1262
  }
1109
- const detail = body && typeof body === "object" && "error" in body ? String(body.error) : `HTTP ${res.status}`;
1263
+ const errorBody = body && typeof body === "object" && !Array.isArray(body) ? body : void 0;
1264
+ let detail = errorBody && "error" in errorBody ? String(errorBody["error"]) : `HTTP ${res.status}`;
1265
+ if (res.status >= 500 && errorBody?.["error"] === "Internal error" && typeof errorBody["code"] === "number") {
1266
+ const data = errorBody["data"];
1267
+ if (typeof data === "string" && data.length > 0) {
1268
+ detail = data;
1269
+ } else if (data && typeof data === "object" && !Array.isArray(data)) {
1270
+ const record = data;
1271
+ const details = record["details"];
1272
+ const message = record["message"];
1273
+ if (typeof details === "string" && details.length > 0) {
1274
+ detail = details;
1275
+ } else if (typeof message === "string" && message.length > 0) {
1276
+ detail = message;
1277
+ }
1278
+ }
1279
+ }
1110
1280
  if (sessionId && res.status === 503 && body && typeof body === "object") {
1111
1281
  const data = body;
1112
1282
  if (data.code === "prompt_queue_full") {
@@ -1301,6 +1471,31 @@ var DaemonClient = class {
1301
1471
  }
1302
1472
  );
1303
1473
  }
1474
+ async setUserMcpServer(name, config) {
1475
+ return await this.jsonRequest(
1476
+ `/workspace/config/mcp/servers/${urlEncode(name)}`,
1477
+ "PUT /workspace/config/mcp/servers/:name",
1478
+ {
1479
+ method: "PUT",
1480
+ body: { scope: "user", config },
1481
+ mode: "rest"
1482
+ }
1483
+ );
1484
+ }
1485
+ async removeUserMcpServer(name) {
1486
+ return await this.jsonRequest(
1487
+ `/workspace/config/mcp/servers/${urlEncode(name)}?scope=user`,
1488
+ "DELETE /workspace/config/mcp/servers/:name",
1489
+ { method: "DELETE", mode: "rest" }
1490
+ );
1491
+ }
1492
+ async setUserMcpServerEnabled(name, enabled) {
1493
+ return await this.jsonRequest(
1494
+ `/workspace/config/mcp/${urlEncode(name)}/${enabled ? "enable" : "disable"}`,
1495
+ "POST /workspace/config/mcp/:server/:action",
1496
+ { method: "POST", body: {}, mode: "rest" }
1497
+ );
1498
+ }
1304
1499
  async initializeWorkspaceMcp() {
1305
1500
  return await this.fetchWithTimeout(
1306
1501
  `${this.baseUrl}/workspace/mcp/initialize`,
@@ -1402,11 +1597,11 @@ var DaemonClient = class {
1402
1597
  { method: "POST", body: opts ?? {}, mode: "rest" }
1403
1598
  );
1404
1599
  }
1405
- async workspaceGitPull(opts) {
1600
+ async workspaceGitPull(opts, timeoutMs) {
1406
1601
  return await this.jsonRequest(
1407
1602
  "/workspace/git/pull",
1408
1603
  "POST /workspace/git/pull",
1409
- { method: "POST", body: opts ?? {}, mode: "rest" }
1604
+ { method: "POST", body: opts ?? {}, mode: "rest", timeoutMs }
1410
1605
  );
1411
1606
  }
1412
1607
  async workspaceGitCommit(message, opts) {
@@ -1475,6 +1670,24 @@ var DaemonClient = class {
1475
1670
  { mode: "rest" }
1476
1671
  );
1477
1672
  }
1673
+ async ensureWorkspaceRuntime() {
1674
+ return await this.jsonRequest(
1675
+ "/workspace/runtime/ensure",
1676
+ "POST /workspace/runtime/ensure",
1677
+ {
1678
+ method: "POST",
1679
+ timeoutMs: WORKSPACE_RUNTIME_ENSURE_TIMEOUT_MS,
1680
+ mode: "rest"
1681
+ }
1682
+ );
1683
+ }
1684
+ async workspaceRuntimeStatus() {
1685
+ return await this.jsonRequest(
1686
+ "/workspace/runtime/status",
1687
+ "GET /workspace/runtime/status",
1688
+ { mode: "rest" }
1689
+ );
1690
+ }
1478
1691
  async workspaceProviders() {
1479
1692
  return await this.fetchWithTimeout(
1480
1693
  `${this.baseUrl}/workspace/providers`,
@@ -1777,22 +1990,21 @@ var DaemonClient = class {
1777
1990
  }
1778
1991
  // -- Workspace files (workspace files) -------------------------------
1779
1992
  async readWorkspaceFile(filePath, opts = {}, clientId) {
1780
- const url = new URL(`${this.baseUrl}/file`);
1781
- url.searchParams.set("path", filePath);
1993
+ const query = new URLSearchParams({ path: filePath });
1782
1994
  if (opts.maxBytes !== void 0) {
1783
- url.searchParams.set("maxBytes", String(opts.maxBytes));
1995
+ query.set("maxBytes", String(opts.maxBytes));
1784
1996
  }
1785
1997
  if (opts.line !== void 0) {
1786
- url.searchParams.set("line", String(opts.line));
1998
+ query.set("line", String(opts.line));
1787
1999
  }
1788
2000
  if (opts.limit !== void 0) {
1789
- url.searchParams.set("limit", String(opts.limit));
2001
+ query.set("limit", String(opts.limit));
1790
2002
  }
1791
2003
  if (opts.cursor !== void 0) {
1792
- url.searchParams.set("cursor", opts.cursor);
2004
+ query.set("cursor", opts.cursor);
1793
2005
  }
1794
2006
  return await this.fetchWithTimeout(
1795
- url.toString(),
2007
+ `${this.baseUrl}/file?${query.toString()}`,
1796
2008
  { headers: this.headers({}, clientId) },
1797
2009
  async (res) => {
1798
2010
  if (!res.ok) throw await this.failOnError(res, "GET /file");
@@ -1818,10 +2030,9 @@ var DaemonClient = class {
1818
2030
  );
1819
2031
  }
1820
2032
  async fileStat(filePath) {
1821
- const url = new URL(`${this.baseUrl}/stat`);
1822
- url.searchParams.set("path", filePath);
2033
+ const query = new URLSearchParams({ path: filePath });
1823
2034
  return await this.fetchWithTimeout(
1824
- url.toString(),
2035
+ `${this.baseUrl}/stat?${query.toString()}`,
1825
2036
  { headers: this.headers() },
1826
2037
  async (res) => {
1827
2038
  if (!res.ok) throw await this.failOnError(res, "GET /stat");
@@ -1830,10 +2041,9 @@ var DaemonClient = class {
1830
2041
  );
1831
2042
  }
1832
2043
  async dirList(dirPath) {
1833
- const url = new URL(`${this.baseUrl}/list`);
1834
- url.searchParams.set("path", dirPath);
2044
+ const query = new URLSearchParams({ path: dirPath });
1835
2045
  return await this.fetchWithTimeout(
1836
- url.toString(),
2046
+ `${this.baseUrl}/list?${query.toString()}`,
1837
2047
  { headers: this.headers() },
1838
2048
  async (res) => {
1839
2049
  if (!res.ok) throw await this.failOnError(res, "GET /list");
@@ -1846,10 +2056,9 @@ var DaemonClient = class {
1846
2056
  * pick a path outside any registered workspace (e.g. "Add workspace").
1847
2057
  */
1848
2058
  async workspacePathSuggestions(prefix) {
1849
- const url = new URL(`${this.baseUrl}/workspace-path-suggestions`);
1850
- url.searchParams.set("prefix", prefix);
2059
+ const query = new URLSearchParams({ prefix });
1851
2060
  return await this.fetchWithTimeout(
1852
- url.toString(),
2061
+ `${this.baseUrl}/workspace-path-suggestions?${query.toString()}`,
1853
2062
  { headers: this.headers() },
1854
2063
  async (res) => {
1855
2064
  if (!res.ok) {
@@ -1872,10 +2081,9 @@ var DaemonClient = class {
1872
2081
  );
1873
2082
  }
1874
2083
  async glob(pattern) {
1875
- const url = new URL(`${this.baseUrl}/glob`);
1876
- url.searchParams.set("pattern", pattern);
2084
+ const query = new URLSearchParams({ pattern });
1877
2085
  return await this.fetchWithTimeout(
1878
- url.toString(),
2086
+ `${this.baseUrl}/glob?${query.toString()}`,
1879
2087
  { headers: this.headers() },
1880
2088
  async (res) => {
1881
2089
  if (!res.ok) throw await this.failOnError(res, "GET /glob");
@@ -1925,9 +2133,8 @@ var DaemonClient = class {
1925
2133
  * @internal
1926
2134
  */
1927
2135
  async uploadFileToPath(uploadPath, label, req, clientId) {
1928
- const target = new URL(`${this.baseUrl}${uploadPath}`);
1929
- target.searchParams.set("path", req.path);
1930
- const url = target.toString();
2136
+ const query = new URLSearchParams({ path: req.path });
2137
+ const url = `${this.baseUrl}${uploadPath}?${query.toString()}`;
1931
2138
  const headers = this.headers(
1932
2139
  { "Content-Type": "application/octet-stream" },
1933
2140
  clientId
@@ -2080,10 +2287,11 @@ var DaemonClient = class {
2080
2287
  }
2081
2288
  /**
2082
2289
  * Append to or replace `QWEN.md` at workspace or global scope.
2083
- * Strict mutation gate (`token_required` on no-token loopback
2084
- * defaults). When the daemon advertises `workspace_memory`, expect
2085
- * 200 with `{ ok, filePath, bytesWritten, mode }`; older daemons
2086
- * without the capability return 404.
2290
+ * The strict mutation gate accepts trusted-loopback callers without a token;
2291
+ * older daemons and non-trusted embeds can still return `token_required`.
2292
+ * When the daemon advertises `workspace_memory`, expect 200 with
2293
+ * `{ ok, filePath, bytesWritten, mode }`; older daemons without the
2294
+ * capability return 404.
2087
2295
  */
2088
2296
  async writeWorkspaceMemory(req, clientId) {
2089
2297
  return await this.fetchWithTimeout(
@@ -2107,6 +2315,11 @@ var DaemonClient = class {
2107
2315
  * poll `getWorkspaceMemoryRememberTask()` until the task is terminal.
2108
2316
  */
2109
2317
  async rememberWorkspaceMemory(content, opts = {}) {
2318
+ if (opts.scope) {
2319
+ await this.requireCapability(
2320
+ opts.scope === "project" ? "workspace_memory_remember_project_scope" : "workspace_memory_remember_user_scope"
2321
+ );
2322
+ }
2110
2323
  return await this.jsonRequest(
2111
2324
  WORKSPACE_MEMORY_REMEMBER_PATH,
2112
2325
  `POST ${WORKSPACE_MEMORY_REMEMBER_PATH}`,
@@ -2114,7 +2327,8 @@ var DaemonClient = class {
2114
2327
  method: "POST",
2115
2328
  body: {
2116
2329
  content,
2117
- contextMode: opts.contextMode ?? "workspace"
2330
+ contextMode: opts.contextMode ?? "workspace",
2331
+ ...opts.scope ? { scope: opts.scope } : {}
2118
2332
  },
2119
2333
  clientId: opts.clientId
2120
2334
  }
@@ -2128,12 +2342,18 @@ var DaemonClient = class {
2128
2342
  );
2129
2343
  }
2130
2344
  async forgetWorkspaceMemory(query, opts = {}) {
2345
+ if (opts.scope) {
2346
+ await this.requireCapability("workspace_memory_forget_scope");
2347
+ }
2131
2348
  return await this.jsonRequest(
2132
2349
  WORKSPACE_MEMORY_FORGET_PATH,
2133
2350
  `POST ${WORKSPACE_MEMORY_FORGET_PATH}`,
2134
2351
  {
2135
2352
  method: "POST",
2136
- body: { query },
2353
+ body: {
2354
+ query,
2355
+ ...opts.scope ? { scope: opts.scope } : {}
2356
+ },
2137
2357
  clientId: opts.clientId
2138
2358
  }
2139
2359
  );
@@ -2368,6 +2588,16 @@ var DaemonClient = class {
2368
2588
  );
2369
2589
  }
2370
2590
  // -- Sessions ----------------------------------------------------------
2591
+ async getStandaloneSessionOptions() {
2592
+ await this.requireCapability(STANDALONE_SESSION_OPTIONS_CAPABILITY);
2593
+ const route = "GET /standalone/session-options";
2594
+ const response = await this.jsonRequest(
2595
+ "/standalone/session-options",
2596
+ route,
2597
+ { mode: "rest" }
2598
+ );
2599
+ return parseStandaloneSessionOptions(response, route);
2600
+ }
2371
2601
  async createStandaloneSession(options = {}) {
2372
2602
  await this.requireCapability(STANDALONE_SESSIONS_CAPABILITY);
2373
2603
  const { sessionId: requestedSessionId, ...request } = options;
@@ -2639,6 +2869,23 @@ var DaemonClient = class {
2639
2869
  "GET /workspace/sessions"
2640
2870
  );
2641
2871
  }
2872
+ /**
2873
+ * Search user/assistant message content across a workspace's persisted
2874
+ * sessions via `GET /workspace/:id/sessions/search`. Returns one summary +
2875
+ * snippet per matching session, most recently modified first. Requires a
2876
+ * daemon new enough to serve the route — older daemons answer 404.
2877
+ */
2878
+ async searchWorkspaceSessions(workspaceCwd, queryText, options = {}) {
2879
+ const query = new URLSearchParams({ q: queryText });
2880
+ if (options.maxResults !== void 0) {
2881
+ query.set("maxResults", String(options.maxResults));
2882
+ }
2883
+ return await this.jsonRequest(
2884
+ `/workspace/${urlEncode(workspaceCwd)}/sessions/search?${query.toString()}`,
2885
+ "GET /workspace/sessions/search",
2886
+ { ...options.signal ? { signal: options.signal } : {} }
2887
+ );
2888
+ }
2642
2889
  /**
2643
2890
  * Read the memory-only live-state snapshot for a workspace via
2644
2891
  * `GET /workspaces/:workspace/sessions/live-state`: the complete set of
@@ -2851,6 +3098,18 @@ var DaemonClient = class {
2851
3098
  }
2852
3099
  );
2853
3100
  }
3101
+ async sessionWorkflowTasks(sessionId, clientId) {
3102
+ return await this.fetchWithTimeout(
3103
+ `${this.baseUrl}/session/${urlEncode(sessionId)}/tasks?includeWorkflows=true`,
3104
+ { headers: this.headers({}, clientId) },
3105
+ async (res) => {
3106
+ if (!res.ok) {
3107
+ throw await this.failOnError(res, "GET /session/:id/tasks");
3108
+ }
3109
+ return await res.json();
3110
+ }
3111
+ );
3112
+ }
2854
3113
  async sessionLspStatus(sessionId, clientId) {
2855
3114
  return await this.fetchWithTimeout(
2856
3115
  `${this.baseUrl}/session/${urlEncode(sessionId)}/lsp`,
@@ -2864,18 +3123,30 @@ var DaemonClient = class {
2864
3123
  );
2865
3124
  }
2866
3125
  async sessionTaskCancel(sessionId, taskId, kind, clientId) {
3126
+ return await this.sessionTaskMutation(
3127
+ sessionId,
3128
+ taskId,
3129
+ "cancel",
3130
+ { kind },
3131
+ clientId
3132
+ );
3133
+ }
3134
+ async sessionWorkflowTaskAction(sessionId, taskId, action, clientId) {
3135
+ return await this.sessionTaskMutation(sessionId, taskId, "workflow-action", { action }, clientId);
3136
+ }
3137
+ async sessionTaskMutation(sessionId, taskId, route, body, clientId) {
2867
3138
  return await this.fetchWithTimeout(
2868
- `${this.baseUrl}/session/${urlEncode(sessionId)}/tasks/${urlEncode(taskId)}/cancel`,
3139
+ `${this.baseUrl}/session/${urlEncode(sessionId)}/tasks/${urlEncode(taskId)}/${route}`,
2869
3140
  {
2870
3141
  method: "POST",
2871
3142
  headers: this.headers({ "Content-Type": "application/json" }, clientId),
2872
- body: JSON.stringify({ kind })
3143
+ body: JSON.stringify(body)
2873
3144
  },
2874
3145
  async (res) => {
2875
3146
  if (!res.ok) {
2876
3147
  throw await this.failOnError(
2877
3148
  res,
2878
- "POST /session/:id/tasks/:taskId/cancel"
3149
+ `POST /session/:id/tasks/:taskId/${route}`
2879
3150
  );
2880
3151
  }
2881
3152
  return await res.json();
@@ -2923,6 +3194,19 @@ var DaemonClient = class {
2923
3194
  * differs in the URL suffix and the route name reported on errors.
2924
3195
  */
2925
3196
  async restoreSession(action, sessionId, req, clientId) {
3197
+ let sourceType = req.sourceType;
3198
+ let sourceId = req.sourceId;
3199
+ if (req.sourceType !== void 0 || req.sourceId !== void 0) {
3200
+ try {
3201
+ await this.requireCapability("session_source_metadata");
3202
+ } catch (error) {
3203
+ if (!(error instanceof DaemonCapabilityMissingError)) {
3204
+ throw error;
3205
+ }
3206
+ sourceType = void 0;
3207
+ sourceId = void 0;
3208
+ }
3209
+ }
2926
3210
  const timeoutMs = this.resolveRestoreTimeoutMs(req.timeoutMs);
2927
3211
  return await this.fetchWithTimeout(
2928
3212
  `${this.baseUrl}/session/${urlEncode(sessionId)}/${action}`,
@@ -2933,7 +3217,9 @@ var DaemonClient = class {
2933
3217
  cwd: req.workspaceCwd,
2934
3218
  ...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {},
2935
3219
  ...action === "load" && req.historyPageSize !== void 0 ? { historyPageSize: req.historyPageSize } : {},
2936
- ...action === "load" && req.liveReplayMode !== void 0 ? { liveReplayMode: req.liveReplayMode } : {}
3220
+ ...action === "load" && req.liveReplayMode !== void 0 ? { liveReplayMode: req.liveReplayMode } : {},
3221
+ ...sourceType !== void 0 ? { sourceType } : {},
3222
+ ...sourceId !== void 0 ? { sourceId } : {}
2937
3223
  })
2938
3224
  },
2939
3225
  async (res) => {
@@ -3299,8 +3585,9 @@ var DaemonClient = class {
3299
3585
  }
3300
3586
  /**
3301
3587
  * Execute a direct daemon-side shell command for a session. The daemon must
3302
- * be started with direct session shell enabled and bearer auth configured;
3303
- * callers must also provide a client id already bound to this session.
3588
+ * be started with direct session shell enabled and either bearer auth or
3589
+ * trusted-loopback operator authority; callers must also provide a client id
3590
+ * already bound to this session.
3304
3591
  * Prefer `DaemonSessionClient.shellCommand()` when available because it
3305
3592
  * forwards the session-bound client id automatically.
3306
3593
  */
@@ -3322,9 +3609,9 @@ var DaemonClient = class {
3322
3609
  }
3323
3610
  /**
3324
3611
  * Toggle a tool name in the workspace's
3325
- * `tools.disabled` settings list. Strict-gated mutation route — the
3326
- * daemon must be configured with a bearer token. The daemon writes
3327
- * the settings file directly and fan-outs a `tool_toggled` event to
3612
+ * `tools.disabled` settings list. The strict mutation gate accepts
3613
+ * trusted-loopback operator authority or listener credentials. The daemon
3614
+ * writes the settings file directly and fan-outs a `tool_toggled` event to
3328
3615
  * every live session SSE bus.
3329
3616
  *
3330
3617
  * Already-registered tools in active sessions are NOT retroactively
@@ -3481,7 +3768,8 @@ var DaemonClient = class {
3481
3768
  throw await this.failOnError(res, "DELETE /workspace/models");
3482
3769
  }
3483
3770
  return await res.json();
3484
- }
3771
+ },
3772
+ this.hasExplicitFetchTimeout ? void 0 : DEFAULT_PROVIDER_MUTATION_TIMEOUT_MS
3485
3773
  );
3486
3774
  }
3487
3775
  async workspaceVoice(clientId) {
@@ -4090,11 +4378,20 @@ var DaemonClient = class {
4090
4378
  }
4091
4379
  );
4092
4380
  }
4093
- async setSessionConfigOption(sessionId, configId, value, clientId) {
4381
+ async setSessionConfigOption(sessionId, configId, value, clientOrOptions) {
4382
+ const options = typeof clientOrOptions === "string" ? { clientId: clientOrOptions } : clientOrOptions;
4094
4383
  return await this.jsonRequest(
4095
4384
  `/session/${urlEncode(sessionId)}/config-option`,
4096
4385
  "POST /session/:id/config-option",
4097
- { method: "POST", body: { configId, value }, clientId }
4386
+ {
4387
+ method: "POST",
4388
+ body: {
4389
+ configId,
4390
+ value,
4391
+ ...options?.persist !== void 0 ? { persist: options.persist } : {}
4392
+ },
4393
+ clientId: options?.clientId
4394
+ }
4098
4395
  );
4099
4396
  }
4100
4397
  async setSessionLanguage(sessionId, language, opts) {
@@ -4119,6 +4416,26 @@ var DaemonClient = class {
4119
4416
  }
4120
4417
  );
4121
4418
  }
4419
+ /**
4420
+ * Sessionless user-level language sync (`POST /language`). Succeeds with
4421
+ * zero sessions, so hosts can switch language before creating one.
4422
+ * Pre-flight `caps.features.includes('user_language_sync')` — daemons that
4423
+ * predate the route or were built without settings persistence 404.
4424
+ */
4425
+ async setUserLanguage(language, opts) {
4426
+ return await this.jsonRequest(
4427
+ "/language",
4428
+ "POST /language",
4429
+ {
4430
+ method: "POST",
4431
+ body: {
4432
+ language,
4433
+ syncOutputLanguage: opts?.syncOutputLanguage ?? false
4434
+ },
4435
+ clientId: opts?.clientId
4436
+ }
4437
+ );
4438
+ }
4122
4439
  /**
4123
4440
  * Send a prompt to the agent. Supports both blocking (legacy 200)
4124
4441
  * and non-blocking (202 + SSE `turn_complete`) daemon responses.
@@ -4582,7 +4899,8 @@ var DaemonClient = class {
4582
4899
  throw await this.failOnError(res, "POST /workspace/auth/provider");
4583
4900
  }
4584
4901
  return await res.json();
4585
- }
4902
+ },
4903
+ this.hasExplicitFetchTimeout ? void 0 : DEFAULT_PROVIDER_MUTATION_TIMEOUT_MS
4586
4904
  );
4587
4905
  }
4588
4906
  async addWorkspace(cwd, options = {}) {
@@ -4710,6 +5028,153 @@ var WorkspaceDaemonClient = class {
4710
5028
  workspaceMcp() {
4711
5029
  return this.get("/mcp", "GET /workspaces/:workspace/mcp");
4712
5030
  }
5031
+ mcpConfig() {
5032
+ return this.client.workspaceJsonRequest(
5033
+ this.workspaceSelector,
5034
+ "/config/mcp/servers",
5035
+ "GET /workspaces/:workspace/config/mcp/servers",
5036
+ { mode: "rest" }
5037
+ );
5038
+ }
5039
+ setMcpServer(name, config) {
5040
+ return this.client.workspaceJsonRequest(
5041
+ this.workspaceSelector,
5042
+ `/config/mcp/servers/${urlEncode(name)}`,
5043
+ "PUT /workspaces/:workspace/config/mcp/servers/:name",
5044
+ {
5045
+ method: "PUT",
5046
+ body: { scope: "workspace", config },
5047
+ mode: "rest"
5048
+ }
5049
+ );
5050
+ }
5051
+ removeMcpServer(name) {
5052
+ return this.client.workspaceJsonRequest(
5053
+ this.workspaceSelector,
5054
+ `/config/mcp/servers/${urlEncode(name)}?scope=workspace`,
5055
+ "DELETE /workspaces/:workspace/config/mcp/servers/:name",
5056
+ { method: "DELETE", mode: "rest" }
5057
+ );
5058
+ }
5059
+ setMcpServerEnabled(name, enabled) {
5060
+ return this.client.workspaceJsonRequest(
5061
+ this.workspaceSelector,
5062
+ `/config/mcp/${urlEncode(name)}/${enabled ? "enable" : "disable"}`,
5063
+ "POST /workspaces/:workspace/config/mcp/:server/:action",
5064
+ { method: "POST", body: {}, mode: "rest" }
5065
+ );
5066
+ }
5067
+ runtimeMcp() {
5068
+ return this.client.workspaceJsonRequest(
5069
+ this.workspaceSelector,
5070
+ "/runtime/mcp",
5071
+ "GET /workspaces/:workspace/runtime/mcp",
5072
+ { mode: "rest" }
5073
+ );
5074
+ }
5075
+ runtimeMcpTools(serverName) {
5076
+ return this.client.workspaceJsonRequest(
5077
+ this.workspaceSelector,
5078
+ `/runtime/mcp/${urlEncode(serverName)}/tools`,
5079
+ "GET /workspaces/:workspace/runtime/mcp/:server/tools",
5080
+ { mode: "rest" }
5081
+ );
5082
+ }
5083
+ runtimeMcpResources(serverName) {
5084
+ return this.client.workspaceJsonRequest(
5085
+ this.workspaceSelector,
5086
+ `/runtime/mcp/${urlEncode(serverName)}/resources`,
5087
+ "GET /workspaces/:workspace/runtime/mcp/:server/resources",
5088
+ { mode: "rest" }
5089
+ );
5090
+ }
5091
+ reloadRuntimeMcp(options = {}) {
5092
+ return this.client.workspaceJsonRequest(
5093
+ this.workspaceSelector,
5094
+ "/runtime/mcp/reload",
5095
+ "POST /workspaces/:workspace/runtime/mcp/reload",
5096
+ {
5097
+ method: "POST",
5098
+ body: options,
5099
+ mode: "rest",
5100
+ timeoutMs: MCP_RESTART_DEFAULT_TIMEOUT_MS
5101
+ }
5102
+ );
5103
+ }
5104
+ restartRuntimeMcpServer(serverName) {
5105
+ return this.client.workspaceJsonRequest(
5106
+ this.workspaceSelector,
5107
+ `/runtime/mcp/${urlEncode(serverName)}/restart`,
5108
+ "POST /workspaces/:workspace/runtime/mcp/:server/restart",
5109
+ {
5110
+ method: "POST",
5111
+ body: {},
5112
+ mode: "rest",
5113
+ timeoutMs: MCP_RESTART_DEFAULT_TIMEOUT_MS
5114
+ }
5115
+ );
5116
+ }
5117
+ manageRuntimeMcpServer(serverName, action) {
5118
+ return this.client.workspaceJsonRequest(
5119
+ this.workspaceSelector,
5120
+ `/runtime/mcp/${urlEncode(serverName)}/${action}`,
5121
+ "POST /workspaces/:workspace/runtime/mcp/:server/:action",
5122
+ {
5123
+ method: "POST",
5124
+ body: {},
5125
+ mode: "rest",
5126
+ timeoutMs: MCP_RESTART_DEFAULT_TIMEOUT_MS
5127
+ }
5128
+ );
5129
+ }
5130
+ ensureRuntime() {
5131
+ return this.client.workspaceJsonRequest(
5132
+ this.workspaceSelector,
5133
+ "/runtime/ensure",
5134
+ "POST /workspaces/:workspace/runtime/ensure",
5135
+ {
5136
+ method: "POST",
5137
+ timeoutMs: WORKSPACE_RUNTIME_ENSURE_TIMEOUT_MS,
5138
+ mode: "rest"
5139
+ }
5140
+ );
5141
+ }
5142
+ runtimeStatus() {
5143
+ return this.client.workspaceJsonRequest(
5144
+ this.workspaceSelector,
5145
+ "/runtime/status",
5146
+ "GET /workspaces/:workspace/runtime/status",
5147
+ { mode: "rest" }
5148
+ );
5149
+ }
5150
+ /**
5151
+ * Ask the daemon host to open this workspace's directory in the host's OS
5152
+ * file manager (Finder/Explorer/xdg-open). Only advertised via the
5153
+ * `workspace_local_open` capability; on a headless host the daemon answers
5154
+ * 501 `local_path_open_unavailable`.
5155
+ */
5156
+ async openLocally() {
5157
+ await this.client.workspaceJsonRequest(
5158
+ this.workspaceSelector,
5159
+ "/open",
5160
+ "POST /workspaces/:workspace/open",
5161
+ { method: "POST", body: {}, mode: "rest" }
5162
+ );
5163
+ }
5164
+ /**
5165
+ * Ask the daemon host to open a terminal window in this workspace's
5166
+ * directory (Terminal.app/wt.exe/a Linux terminal emulator). Only
5167
+ * advertised via the `workspace_local_terminal` capability; on a headless
5168
+ * host the daemon answers 501 `local_path_open_unavailable`.
5169
+ */
5170
+ async openTerminalLocally() {
5171
+ await this.client.workspaceJsonRequest(
5172
+ this.workspaceSelector,
5173
+ "/open",
5174
+ "POST /workspaces/:workspace/open",
5175
+ { method: "POST", body: { target: "terminal" }, mode: "rest" }
5176
+ );
5177
+ }
4713
5178
  /**
4714
5179
  * Send text directly through this exact workspace's channel worker.
4715
5180
  * A successful capability pre-flight does not guarantee worker liveness;
@@ -4984,13 +5449,13 @@ var WorkspaceDaemonClient = class {
4984
5449
  { method: "POST", body: opts ?? {}, mode: "rest" }
4985
5450
  );
4986
5451
  }
4987
- workspaceGitPull(opts, cwd) {
5452
+ workspaceGitPull(opts, cwd, timeoutMs) {
4988
5453
  const suffix = cwd != null ? `/git/pull?cwd=${urlEncode(cwd)}` : "/git/pull";
4989
5454
  return this.client.workspaceJsonRequest(
4990
5455
  this.workspaceSelector,
4991
5456
  suffix,
4992
5457
  "POST /workspaces/:workspace/git/pull",
4993
- { method: "POST", body: opts ?? {}, mode: "rest" }
5458
+ { method: "POST", body: opts ?? {}, mode: "rest", timeoutMs }
4994
5459
  );
4995
5460
  }
4996
5461
  workspaceGitCommit(message, opts, cwd) {
@@ -5465,6 +5930,22 @@ var WorkspaceDaemonClient = class {
5465
5930
  { mode: "rest" }
5466
5931
  );
5467
5932
  }
5933
+ extensionState(extensionId) {
5934
+ return this.client.workspaceJsonRequest(
5935
+ this.workspaceSelector,
5936
+ `/extensions/${urlEncode(extensionId)}/state`,
5937
+ "GET /workspaces/:workspace/extensions/:extensionId/state",
5938
+ { mode: "rest" }
5939
+ );
5940
+ }
5941
+ setExtensionState(extensionId, update, clientId) {
5942
+ return this.client.workspaceJsonRequest(
5943
+ this.workspaceSelector,
5944
+ `/extensions/${urlEncode(extensionId)}/state`,
5945
+ "PUT /workspaces/:workspace/extensions/:extensionId/state",
5946
+ { method: "PUT", body: update, clientId, mode: "rest" }
5947
+ );
5948
+ }
5468
5949
  setExtensionActivation(extensionId, state, clientId) {
5469
5950
  return this.client.workspaceJsonRequest(
5470
5951
  this.workspaceSelector,
@@ -5836,6 +6317,14 @@ var DaemonSessionClient = class _DaemonSessionClient {
5836
6317
  get branch() {
5837
6318
  return this.session.branch;
5838
6319
  }
6320
+ /**
6321
+ * Present when this client was created with a `modelServiceId`: `false`
6322
+ * means the spawn-time model switch failed and the session is running on
6323
+ * the agent default model.
6324
+ */
6325
+ get modelApplied() {
6326
+ return this.session.modelApplied;
6327
+ }
5839
6328
  get lastEventId() {
5840
6329
  return this.lastSeenEventId;
5841
6330
  }
@@ -6054,13 +6543,11 @@ var DaemonSessionClient = class _DaemonSessionClient {
6054
6543
  setModel(modelId) {
6055
6544
  return this.client.setSessionModel(this.sessionId, modelId, this.clientId);
6056
6545
  }
6057
- setConfigOption(configId, value) {
6058
- return this.client.setSessionConfigOption(
6059
- this.sessionId,
6060
- configId,
6061
- value,
6062
- this.clientId
6063
- );
6546
+ setConfigOption(configId, value, opts) {
6547
+ return this.client.setSessionConfigOption(this.sessionId, configId, value, {
6548
+ clientId: this.clientId,
6549
+ persist: opts?.persist
6550
+ });
6064
6551
  }
6065
6552
  getRewindSnapshots() {
6066
6553
  return this.client.getRewindSnapshots(this.sessionId);
@@ -6177,9 +6664,9 @@ var DaemonSessionClient = class _DaemonSessionClient {
6177
6664
  }
6178
6665
  /**
6179
6666
  * Execute a direct daemon-side shell command for this session. Requires the
6180
- * daemon to opt in to direct session shell and bearer auth; this wrapper
6181
- * automatically forwards the client id bound when the session was created
6182
- * or attached.
6667
+ * daemon to opt in to direct session shell with bearer auth or
6668
+ * trusted-loopback authority; this wrapper automatically forwards the client
6669
+ * id bound when the session was created or attached.
6183
6670
  */
6184
6671
  shellCommand(command, signal) {
6185
6672
  return this.client.shellCommand(this.sessionId, command, {
@@ -6202,6 +6689,9 @@ var DaemonSessionClient = class _DaemonSessionClient {
6202
6689
  tasks() {
6203
6690
  return this.client.sessionTasks(this.sessionId, this.clientId);
6204
6691
  }
6692
+ workflowTasks() {
6693
+ return this.client.sessionWorkflowTasks(this.sessionId, this.clientId);
6694
+ }
6205
6695
  lspStatus() {
6206
6696
  return this.client.sessionLspStatus(this.sessionId, this.clientId);
6207
6697
  }
@@ -6213,6 +6703,14 @@ var DaemonSessionClient = class _DaemonSessionClient {
6213
6703
  this.clientId
6214
6704
  );
6215
6705
  }
6706
+ controlWorkflowTask(taskId, action) {
6707
+ return this.client.sessionWorkflowTaskAction(
6708
+ this.sessionId,
6709
+ taskId,
6710
+ action,
6711
+ this.clientId
6712
+ );
6713
+ }
6216
6714
  clearGoal() {
6217
6715
  return this.client.sessionGoalClear(this.sessionId, this.clientId);
6218
6716
  }
@@ -7366,7 +7864,7 @@ function isSessionClosedData(value) {
7366
7864
  }
7367
7865
  __name(isSessionClosedData, "isSessionClosedData");
7368
7866
  function isSessionMetadataUpdatedData(value) {
7369
- if (!isRecord(value) || !isNonEmptyString(value["sessionId"]) || !isOptionalStringOrNull(value["displayName"])) {
7867
+ if (!isRecord(value) || !isNonEmptyString(value["sessionId"]) || !isOptionalStringOrNull(value["displayName"]) || value["titleSource"] !== void 0 && value["titleSource"] !== "manual" && value["titleSource"] !== "auto") {
7370
7868
  return false;
7371
7869
  }
7372
7870
  const prs = value["prs"];
@@ -8766,6 +9264,7 @@ function normalizePlanUpdate(update, base) {
8766
9264
  const stats = meta && isRecord2(meta["stats"]) ? meta["stats"] : void 0;
8767
9265
  const todoPlan = meta && isRecord2(meta["qwenTodoPlan"]) ? meta["qwenTodoPlan"] : void 0;
8768
9266
  const planId = getString2(todoPlan, "id");
9267
+ const sessionWorkflow = meta?.["qwenSessionWorkflow"] === true;
8769
9268
  return {
8770
9269
  ...base,
8771
9270
  type: "tool.update",
@@ -8783,7 +9282,8 @@ function normalizePlanUpdate(update, base) {
8783
9282
  rawOutput: {
8784
9283
  entries,
8785
9284
  ...stats ? { stats } : {},
8786
- ...planId ? { plan: { id: planId, sourceCallId: planCallId } } : {}
9285
+ ...planId ? { plan: { id: planId, sourceCallId: planCallId } } : {},
9286
+ ...sessionWorkflow ? { sessionWorkflow: true } : {}
8787
9287
  }
8788
9288
  };
8789
9289
  }
@@ -9465,11 +9965,12 @@ function createDaemonToolPreview(input, opts = {}, depth = 0) {
9465
9965
  if (isRecord2(input)) {
9466
9966
  const nestedInput = input["rawInput"] ?? input["input"] ?? input["args"];
9467
9967
  if (nestedInput !== void 0 && nestedInput !== input) {
9968
+ const meta = isRecord2(input["_meta"]) ? input["_meta"] : void 0;
9468
9969
  const nested = createDaemonToolPreview(
9469
9970
  nestedInput,
9470
9971
  {
9471
9972
  title: opts.title ?? getFirstString(input, ["title"]),
9472
- toolName: opts.toolName ?? getFirstString(input, ["toolName", "name"]),
9973
+ toolName: opts.toolName ?? getFirstString(input, ["toolName", "name"]) ?? (meta ? getFirstString(meta, ["toolName"]) : void 0),
9473
9974
  toolKind: opts.toolKind ?? getFirstString(input, ["kind"])
9474
9975
  },
9475
9976
  depth + 1
@@ -9530,12 +10031,14 @@ function detectFileDiff(input, opts = {}) {
9530
10031
  const oldText = getFirstString(input, [
9531
10032
  "oldText",
9532
10033
  "old_text",
10034
+ "old_string",
9533
10035
  "old_str",
9534
10036
  "oldString"
9535
10037
  ]);
9536
10038
  const explicitNewText = getFirstString(input, [
9537
10039
  "newText",
9538
10040
  "new_text",
10041
+ "new_string",
9539
10042
  "new_str",
9540
10043
  "newString"
9541
10044
  ]);
@@ -10591,6 +11094,10 @@ function discardToolBlock(state, toolCallId) {
10591
11094
  }
10592
11095
  }
10593
11096
  __name(discardToolBlock, "discardToolBlock");
11097
+ function isTaskExecutionMode(value) {
11098
+ return value === "foreground" || value === "background";
11099
+ }
11100
+ __name(isTaskExecutionMode, "isTaskExecutionMode");
10594
11101
  function compactTaskExecutionOutput(rawOutput, retainSubagentBlocks) {
10595
11102
  if (retainSubagentBlocks || !isRecord2(rawOutput) || rawOutput["type"] !== "task_execution") {
10596
11103
  return rawOutput;
@@ -10601,9 +11108,11 @@ function compactTaskExecutionOutput(rawOutput, retainSubagentBlocks) {
10601
11108
  "subagentColor",
10602
11109
  "taskDescription",
10603
11110
  "status",
11111
+ "executionMode",
10604
11112
  "terminateReason",
10605
11113
  "tokenCount",
10606
- "executionSummary"
11114
+ "executionSummary",
11115
+ "skills"
10607
11116
  ]) {
10608
11117
  if (rawOutput[key] !== void 0) compact[key] = rawOutput[key];
10609
11118
  }
@@ -12820,6 +13329,7 @@ export {
12820
13329
  PENDING_PROMPT_COMPLETED_EVENT,
12821
13330
  PENDING_PROMPT_STARTED_EVENT,
12822
13331
  STANDALONE_SESSIONS_CAPABILITY,
13332
+ STANDALONE_SESSION_OPTIONS_CAPABILITY,
12823
13333
  SseFramingError,
12824
13334
  UNRECOGNIZED_DIAGNOSTICS_LIMIT,
12825
13335
  WorkspaceDaemonClient,
@@ -12853,6 +13363,7 @@ export {
12853
13363
  isStandaloneSessionNotFoundError,
12854
13364
  isSubagentChildBlock,
12855
13365
  isSubagentSessionNotFound,
13366
+ isTaskExecutionMode,
12856
13367
  isTrimmedPermissionBlockId,
12857
13368
  isTrimmedToolBlockId,
12858
13369
  isUnrecognizedDiagnosticReason,