@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260711.0ef3a76bd

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 (434) hide show
  1. package/bundled/qc-helper/SKILL.md +1 -0
  2. package/bundled/qc-helper/docs/configuration/auth.md +40 -55
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
  4. package/bundled/qc-helper/docs/configuration/settings.md +60 -51
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -2
  7. package/bundled/qc-helper/docs/features/channels/overview.md +86 -12
  8. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
  9. package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
  10. package/bundled/qc-helper/docs/features/code-review.md +29 -5
  11. package/bundled/qc-helper/docs/features/commands.md +39 -38
  12. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  13. package/bundled/qc-helper/docs/features/hooks.md +36 -34
  14. package/bundled/qc-helper/docs/features/memory.md +1 -1
  15. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  16. package/bundled/qc-helper/docs/integration-vscode.md +2 -2
  17. package/bundled/qc-helper/docs/qwen-serve.md +40 -16
  18. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  19. package/bundled/review/DESIGN.md +93 -22
  20. package/bundled/review/SKILL.md +300 -87
  21. package/chunks/MaxSizedBox-4CX4IQWE.js +70 -0
  22. package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-TYUSSNJ6.js} +79 -77
  23. package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-5HJEXOPR.js} +978 -205
  24. package/chunks/agent-PZF5IUUB.js +68 -0
  25. package/chunks/agent-headless-L4N7V2SG.js +62 -0
  26. package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-L73TO3DB.js} +214 -31
  27. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-U7IRTLIV.js} +5 -5
  28. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-2DLUUZZG.js} +6 -6
  29. package/chunks/bridge-OJL6LD42.js +78 -0
  30. package/chunks/{ca-HCMB2I54.js → ca-WTQOU43B.js} +91 -6
  31. package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-LF66HCVT.js} +137 -13
  32. package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
  33. package/chunks/{chunk-JD33UY7E.js → chunk-2K56LTWA.js} +18 -12
  34. package/chunks/{chunk-XISQIIT7.js → chunk-2LV4JUNO.js} +4 -4
  35. package/chunks/chunk-2UU6DW5P.js +296 -0
  36. package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
  37. package/chunks/chunk-2ZQOQZIS.js +71 -0
  38. package/chunks/{chunk-Q6OEPOOC.js → chunk-3AMVHPEQ.js} +2 -2
  39. package/chunks/{chunk-4RQIB5UZ.js → chunk-3BTRNWWD.js} +1 -35
  40. package/chunks/{chunk-SD4N3QJ2.js → chunk-3QZ6GY6A.js} +66 -22
  41. package/chunks/{chunk-DNV4FSN5.js → chunk-3SJSQXNS.js} +24 -7
  42. package/chunks/{chunk-VQWAZSXN.js → chunk-3XATDZNP.js} +64 -42
  43. package/chunks/{chunk-LEIJKM7Q.js → chunk-3ZAIGBCP.js} +2 -2
  44. package/chunks/{chunk-2NPS2UDH.js → chunk-43JB7OF4.js} +905 -139
  45. package/chunks/chunk-43XJTCHT.js +444 -0
  46. package/chunks/{chunk-CNSF3WO5.js → chunk-47HXCVGG.js} +6 -6
  47. package/chunks/{chunk-VEB3NYSO.js → chunk-4GORAUCN.js} +8 -3
  48. package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
  49. package/chunks/{chunk-TLWA7TPR.js → chunk-4QLQE5WJ.js} +2 -2
  50. package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
  51. package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
  52. package/chunks/{chunk-H6EMK6QK.js → chunk-4ZVWQHEQ.js} +11913 -5207
  53. package/chunks/{chunk-HW4N45EE.js → chunk-524RQP4Q.js} +29 -8
  54. package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
  55. package/chunks/{chunk-B4U2M63D.js → chunk-5DOUQHL3.js} +2104 -14
  56. package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
  57. package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
  58. package/chunks/{chunk-P7I3D7FM.js → chunk-5OIXALQ5.js} +2 -2
  59. package/chunks/chunk-5SFOMFG4.js +61 -0
  60. package/chunks/{chunk-QYNNN7BK.js → chunk-5XUCZNSY.js} +2 -2
  61. package/chunks/{chunk-FRFFNYUY.js → chunk-65F3I3PM.js} +5 -5
  62. package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
  63. package/chunks/{chunk-BWVQN2HV.js → chunk-6CR73ZIK.js} +7 -7
  64. package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
  65. package/chunks/{chunk-G7ZG7CA6.js → chunk-6RLROE6G.js} +9 -8
  66. package/chunks/{chunk-TBAZMRW3.js → chunk-6WH2WCSW.js} +2 -2
  67. package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
  68. package/chunks/{chunk-FTFXDZYI.js → chunk-7KZNLIAI.js} +47 -31
  69. package/chunks/{chunk-HJ3GX3Y3.js → chunk-7PW5CTVR.js} +32 -18
  70. package/chunks/{chunk-NQKLOAVJ.js → chunk-7R3CZA3Q.js} +2 -2
  71. package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
  72. package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
  73. package/chunks/{chunk-XSAFNANZ.js → chunk-AHUEU3BP.js} +14 -14
  74. package/chunks/{chunk-X3YGAX7V.js → chunk-B5ORX3FG.js} +4 -2
  75. package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
  76. package/chunks/{chunk-IJRL2S3D.js → chunk-BZIFY5TF.js} +6 -6
  77. package/chunks/{chunk-AJBEAUIS.js → chunk-BZP7HZTK.js} +7 -6
  78. package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
  79. package/chunks/{chunk-MIG5SQNL.js → chunk-CBKR4Q5K.js} +8 -8
  80. package/chunks/chunk-CC2ITGCF.js +176 -0
  81. package/chunks/{chunk-FV7425LN.js → chunk-CEA3E3JB.js} +18 -5
  82. package/chunks/{chunk-GD236YPV.js → chunk-CNOF2IZT.js} +3 -3
  83. package/chunks/chunk-COH43MRJ.js +34 -0
  84. package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
  85. package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
  86. package/chunks/{chunk-5P5XGNYH.js → chunk-CU3L64TP.js} +1 -1
  87. package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
  88. package/chunks/{chunk-MZ7BABX3.js → chunk-DC5Z3DU6.js} +2 -2
  89. package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
  90. package/chunks/{chunk-4ZJIPVPB.js → chunk-DMN532MJ.js} +11 -11
  91. package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
  92. package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
  93. package/chunks/chunk-F4PFZ7WP.js +239 -0
  94. package/chunks/{chunk-ME3YSROJ.js → chunk-FBSBT7JS.js} +25 -13
  95. package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
  96. package/chunks/{chunk-YDSYD7UI.js → chunk-FD3DA3B4.js} +3 -3
  97. package/chunks/{chunk-GL5TV7B5.js → chunk-GL22M2DU.js} +23 -7
  98. package/chunks/{chunk-AFOLR6YL.js → chunk-GQ4ZEYMI.js} +102 -16
  99. package/chunks/chunk-GRC5HGPI.js +13 -0
  100. package/chunks/{chunk-WMPVYQ4P.js → chunk-GWHYEOV2.js} +2 -2
  101. package/chunks/chunk-GZRTYZ2R.js +292 -0
  102. package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
  103. package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
  104. package/chunks/{chunk-24XYI5EI.js → chunk-HACY3IUM.js} +6 -6
  105. package/chunks/{chunk-DGHJTO2K.js → chunk-HIHQ3TWC.js} +38 -9
  106. package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
  107. package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
  108. package/chunks/{chunk-B34OV7K2.js → chunk-IAVB3HM3.js} +15 -2
  109. package/chunks/{chunk-4UCTWSTP.js → chunk-IDJEZU7C.js} +2 -2
  110. package/chunks/chunk-IEBIKN6A.js +38 -0
  111. package/chunks/{chunk-PRDFOIZF.js → chunk-IJEO2QSK.js} +73 -30
  112. package/chunks/{chunk-MJI36HER.js → chunk-IT6LIIVK.js} +2 -2
  113. package/chunks/{chunk-FEJ2FZ3U.js → chunk-J3JA76CF.js} +2 -2
  114. package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
  115. package/chunks/{chunk-22MNNNXE.js → chunk-J4TSQ5EQ.js} +3 -2
  116. package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
  117. package/chunks/{chunk-CCGOFQV3.js → chunk-JSG7ZSBC.js} +8 -7
  118. package/chunks/{chunk-X265R5C6.js → chunk-K434OPES.js} +5 -5
  119. package/chunks/{chunk-RFIL6REB.js → chunk-KHUQZZJ6.js} +185 -45
  120. package/chunks/{chunk-X2XNQQJI.js → chunk-KKNMOEZH.js} +4 -4
  121. package/chunks/{chunk-6BN7NZ5Z.js → chunk-KL23O5Z5.js} +7 -9
  122. package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
  123. package/chunks/{chunk-6IAWPIQ6.js → chunk-L36P3NBD.js} +3 -3
  124. package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
  125. package/chunks/{chunk-STAZRKOT.js → chunk-L6GPKRH7.js} +132 -464
  126. package/chunks/{chunk-QAKFYMJI.js → chunk-LD5OWZ5E.js} +155 -19
  127. package/chunks/{chunk-E7KNELIZ.js → chunk-LK7KUE55.js} +2 -2
  128. package/chunks/{chunk-W7EEOR7D.js → chunk-LUODI7WD.js} +5 -5
  129. package/chunks/{chunk-CSOTA7KX.js → chunk-LXNEJD34.js} +2 -2
  130. package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
  131. package/chunks/{chunk-3B26UVCX.js → chunk-MC23XKFE.js} +39 -10
  132. package/chunks/{chunk-XPJH4PKR.js → chunk-MPEMTBUZ.js} +2 -2
  133. package/chunks/{chunk-GMOWQOQQ.js → chunk-MUCWGT7O.js} +248 -55
  134. package/chunks/{chunk-PC4ZXHU2.js → chunk-MXL5UP4X.js} +3 -3
  135. package/chunks/{chunk-PUQLHSQ2.js → chunk-N2FGNKOE.js} +10 -12
  136. package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
  137. package/chunks/{chunk-65CFHNSE.js → chunk-NKHV3OHY.js} +62 -62
  138. package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
  139. package/chunks/{chunk-42XGFRJS.js → chunk-ORBGV7NJ.js} +5 -5
  140. package/chunks/{chunk-ALZ75L2X.js → chunk-OZJLTZKP.js} +415 -379
  141. package/chunks/chunk-P3X7RYUQ.js +468 -0
  142. package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
  143. package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
  144. package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
  145. package/chunks/{chunk-AIY5UTFI.js → chunk-QK2JET6S.js} +934 -2881
  146. package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
  147. package/chunks/{chunk-QZF5U5KA.js → chunk-QNTUV3PP.js} +11 -11
  148. package/chunks/chunk-QRUIS3DN.js +47 -0
  149. package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
  150. package/chunks/{chunk-7JGISHHZ.js → chunk-QUJIDGIW.js} +15 -157
  151. package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
  152. package/chunks/{chunk-TDGF35EN.js → chunk-QYMQSECS.js} +3 -3
  153. package/chunks/{chunk-QYUE6W3T.js → chunk-RDJSGHZE.js} +1 -1
  154. package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
  155. package/chunks/{chunk-ADZG46HR.js → chunk-RRNR5U2U.js} +2 -2
  156. package/chunks/{chunk-4O344UEE.js → chunk-RW7CXRUM.js} +39 -19
  157. package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
  158. package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
  159. package/chunks/{chunk-44NROQYV.js → chunk-SJHDYNHF.js} +4 -4
  160. package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
  161. package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
  162. package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
  163. package/chunks/{chunk-SUAKHHK7.js → chunk-TDEXZKMT.js} +3 -3
  164. package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
  165. package/chunks/{chunk-JF7DFPQ5.js → chunk-TJCEUA3S.js} +15 -3
  166. package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
  167. package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
  168. package/chunks/{chunk-CISB3IQF.js → chunk-U3VSCGEJ.js} +100 -15
  169. package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
  170. package/chunks/{chunk-AHNJGLFV.js → chunk-UOZWKTQG.js} +3 -3
  171. package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
  172. package/chunks/{chunk-YEGT55NW.js → chunk-UUVCHN62.js} +5697 -2983
  173. package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
  174. package/chunks/{chunk-U4FRHCLA.js → chunk-VAUPLGDZ.js} +2370 -364
  175. package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
  176. package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
  177. package/chunks/{chunk-IUE7YWC3.js → chunk-VIUKEWUL.js} +8 -8
  178. package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
  179. package/chunks/{chunk-I4A4K72C.js → chunk-VL7GBUQA.js} +1309 -703
  180. package/chunks/{chunk-VZ7HY3YU.js → chunk-W2UIXQDL.js} +3 -3
  181. package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
  182. package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
  183. package/chunks/{chunk-RYFZCUJO.js → chunk-WCUK2QXK.js} +17 -9
  184. package/chunks/{chunk-OWVIH4HY.js → chunk-WFHJDT4S.js} +421 -114
  185. package/chunks/{chunk-BMFMJINR.js → chunk-WL4L7EZH.js} +1 -1
  186. package/chunks/{chunk-NZEGNV4V.js → chunk-WPHYXKFL.js} +8 -51
  187. package/chunks/chunk-X4NKFGFJ.js +81 -0
  188. package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
  189. package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
  190. package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
  191. package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
  192. package/chunks/chunk-YAF2MQZ6.js +19 -0
  193. package/chunks/chunk-YF4RZPJP.js +168 -0
  194. package/chunks/{chunk-4KJ2BPIT.js → chunk-YLV3XXFB.js} +4 -40
  195. package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
  196. package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
  197. package/chunks/{chunk-II73RK2S.js → chunk-YVEDCAUE.js} +1 -1
  198. package/chunks/{chunk-SKAZWEV5.js → chunk-ZJE7NSL3.js} +1 -1
  199. package/chunks/{chunk-7LTB54MK.js → chunk-ZLXQN2QS.js} +2 -2
  200. package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
  201. package/chunks/{computer-use-X4KUU3NM.js → computer-use-2ZTYDNN4.js} +50 -50
  202. package/chunks/config-utils-ZITWCFBY.js +23 -0
  203. package/chunks/contextCommand-6L4XCZZT.js +68 -0
  204. package/chunks/create-sub-session-INX7TXJI.js +207 -0
  205. package/chunks/create-sub-session-VZIOFS6N.js +375 -0
  206. package/chunks/{cron-create-JSXEIPVS.js → cron-create-AMBKGZX6.js} +9 -9
  207. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-LRU4OJYG.js} +7 -7
  208. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-WVP2JXER.js} +14 -10
  209. package/chunks/{daemon-F3I2RXP6.js → daemon-QEDXW7ER.js} +554 -4
  210. package/chunks/daemon-status-provider-7XJZ3HPS.js +76 -0
  211. package/chunks/{de-PLLFDERI.js → de-XHBEYUMG.js} +91 -6
  212. package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
  213. package/chunks/{dist-573HNSVO.js → dist-EFXT7A3G.js} +12 -11
  214. package/chunks/{dist-PKFTNUHO.js → dist-KCRX7TGL.js} +529 -79
  215. package/chunks/{dist-OT7G2WNM.js → dist-MFEAEUV4.js} +1011 -197
  216. package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
  217. package/chunks/{dist-FQ5WRJPL.js → dist-QY3THJM5.js} +5 -5
  218. package/chunks/{dist-IMFFBMAT.js → dist-UJOR6KEQ.js} +32 -15
  219. package/chunks/{dist-YTRKAVUB.js → dist-ZWZB4CCN.js} +10 -10
  220. package/chunks/earlyInputCapture-TTWXFIWO.js +69 -0
  221. package/chunks/{edit-WZTZDGCI.js → edit-6UWFRZKY.js} +51 -51
  222. package/chunks/{en-GA2RMXY5.js → en-TKHUFIK7.js} +100 -6
  223. package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-LS7SGAII.js} +50 -50
  224. package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-TSZYLEEP.js} +66 -51
  225. package/chunks/environment-XCVLHOXG.js +88 -0
  226. package/chunks/errors-KIANLUTC.js +75 -0
  227. package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-2QV6UJSW.js} +50 -50
  228. package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-GVZG3F6S.js} +51 -51
  229. package/chunks/{fast-path-W2U6XDNO.js → fast-path-GNFZAMQK.js} +16 -7
  230. package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-5QZE64HR.js} +6 -5
  231. package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
  232. package/chunks/{fr-GWNQG4XH.js → fr-TBF6JZNE.js} +91 -6
  233. package/chunks/{gemini-T4WX6SRW.js → gemini-N3H6OLHR.js} +501 -197
  234. package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-4C257R2N.js} +9 -9
  235. package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
  236. package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
  237. package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
  238. package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
  239. package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
  240. package/chunks/{glob-4KKSHZDF.js → glob-QTUI5I3Y.js} +95 -74
  241. package/chunks/{grep-GHRYXSLZ.js → grep-Z5MGLRCG.js} +50 -50
  242. package/chunks/handleAutoUpdate-FFF3CZGP.js +69 -0
  243. package/chunks/i18n-QQAJT7A2.js +84 -0
  244. package/chunks/initializer-LGQGC7ZT.js +71 -0
  245. package/chunks/installationInfo-4FEZGXIN.js +65 -0
  246. package/chunks/{ja-2HOTA47X.js → ja-CDXUA2H3.js} +92 -7
  247. package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-VKUBNCP4.js} +4 -4
  248. package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
  249. package/chunks/list-KIVFF3BB.js +74 -0
  250. package/chunks/loadedSettingsAdapter-EOD3RVZS.js +68 -0
  251. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-WX7BLWWP.js} +10 -10
  252. package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
  253. package/chunks/{ls-L654WOAT.js → ls-ZB2BDP6T.js} +6 -6
  254. package/chunks/{lsp-M35KE54Y.js → lsp-V5DN4YUJ.js} +6 -8
  255. package/chunks/mcp-D2P46DB4.js +68 -0
  256. package/chunks/{monitor-464OY2UE.js → monitor-4ZWVOL6J.js} +50 -50
  257. package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
  258. package/chunks/nonInteractiveCli-NAHUR2X6.js +124 -0
  259. package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-RCQ2D2IE.js} +51 -51
  260. package/chunks/openaiContentGenerator-U655T5QC.js +56 -0
  261. package/chunks/pidfile-O3OO2TCP.js +73 -0
  262. package/chunks/{pt-2THT3YHA.js → pt-6IR2VRQY.js} +91 -6
  263. package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-ABGWCRS6.js} +52 -52
  264. package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-PJQ27GSO.js} +9 -9
  265. package/chunks/read-file-X7M4GUPY.js +30 -0
  266. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-SM5DA4RG.js} +5 -5
  267. package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
  268. package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-4XKZX3UW.js} +7 -7
  269. package/chunks/ripGrep-KMPJJK5J.js +60 -0
  270. package/chunks/{ru-Z67YJHBG.js → ru-DBTHQA3F.js} +91 -6
  271. package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-O6CMPURG.js} +958 -184
  272. package/chunks/runtime-THE2YO27.js +94 -0
  273. package/chunks/{scheduler-ZRW3AIDU.js → scheduler-XXEA6EFC.js} +51 -51
  274. package/chunks/{send-message-OA6MV4EU.js → send-message-F36YD6KQ.js} +7 -7
  275. package/chunks/serve-W6F44JQQ.js +74 -0
  276. package/chunks/{server-M372UENX.js → server-SAEKMY52.js} +4340 -829
  277. package/chunks/{session-F5KSNP2N.js → session-4GGYGOWY.js} +162 -117
  278. package/chunks/settings-PYEU5HVD.js +118 -0
  279. package/chunks/shell-JGQECKTH.js +68 -0
  280. package/chunks/{skill-A2TL2NPC.js → skill-XPP3C2DS.js} +24 -24
  281. package/chunks/spawnChannel-62QKQBQN.js +70 -0
  282. package/chunks/{src-XKZMNHXS.js → src-2656Q6SN.js} +126 -52
  283. package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
  284. package/chunks/standalone-update-X7AZVG5R.js +79 -0
  285. package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-DXR4K6T5.js} +2277 -1834
  286. package/chunks/stdioHelpers-UMY72QRP.js +14 -0
  287. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-34H7LGA7.js} +5 -5
  288. package/chunks/task-create-FRGOEIKY.js +22 -0
  289. package/chunks/{task-list-TGGJX7EA.js → task-list-OW766BXZ.js} +10 -10
  290. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-SIR5SNBN.js} +4 -4
  291. package/chunks/{task-update-5WUG5MVQ.js → task-update-YRA532MT.js} +12 -12
  292. package/chunks/{team-create-TBQVWAG7.js → team-create-3EHCUCKA.js} +50 -50
  293. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-6OSECUZC.js} +10 -10
  294. package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-KZ7NZIMX.js} +50 -50
  295. package/chunks/theme-manager-J7ANV4JR.js +64 -0
  296. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-YDMFEV4G.js} +6 -6
  297. package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2XLGWG4H.js} +24 -24
  298. package/chunks/total-session-admission-EQIHUOL6.js +72 -0
  299. package/chunks/trustedFolders-BEX5334Z.js +79 -0
  300. package/chunks/{types-QX5C3CHJ.js → types-JNKGKUJT.js} +2 -2
  301. package/chunks/updateCheck-NKPJGJCR.js +69 -0
  302. package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
  303. package/chunks/validateNonInterActiveAuth-6DGGGE4A.js +190 -0
  304. package/chunks/{version-CEDD6ZZR.js → version-FRVWU5ZU.js} +3 -3
  305. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-PAAEQKBW.js} +8 -8
  306. package/chunks/{workflow-CQQ4J4I6.js → workflow-LWFMECLD.js} +51 -51
  307. package/chunks/workspace-providers-status-NE7QWEYS.js +71 -0
  308. package/chunks/workspace-registry-RCWAP57G.js +76 -0
  309. package/chunks/workspace-service-4QUMVGBX.js +80 -0
  310. package/chunks/workspace-skills-status-L34BYRSY.js +70 -0
  311. package/chunks/{write-file-VWGY7AJP.js → write-file-WXO4M5FN.js} +51 -51
  312. package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
  313. package/chunks/{zh-7XVVRTDH.js → zh-LJP47LX7.js} +101 -7
  314. package/chunks/{zh-TW-DPH554OG.js → zh-TW-5ISMO3VJ.js} +101 -7
  315. package/cli.js +18 -17
  316. package/locales/ca.js +117 -7
  317. package/locales/de.js +116 -7
  318. package/locales/en.js +133 -7
  319. package/locales/fr.js +117 -7
  320. package/locales/ja.js +119 -7
  321. package/locales/pt.js +116 -7
  322. package/locales/ru.js +116 -7
  323. package/locales/zh-TW.js +130 -7
  324. package/locales/zh.js +130 -7
  325. package/package.json +3 -6
  326. package/web-shell/assets/{arc-C7hjaa7g.js → arc-BRDEF7h6.js} +1 -1
  327. package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-Cxnk4Ygq.js} +1 -1
  328. package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-BZrtayqw.js} +1 -1
  329. package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-Djmbi1yB.js} +1 -1
  330. package/web-shell/assets/channel-C9zfQCn-.js +1 -0
  331. package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-Cdokj-0U.js} +1 -1
  332. package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-BI9Hx57o.js} +1 -1
  333. package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-Cb17cEzj.js} +1 -1
  334. package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DY1Fc0h_.js} +1 -1
  335. package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-B10G71Hd.js} +1 -1
  336. package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-BP6OoB6Z.js} +1 -1
  337. package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-CWIIwUFC.js} +1 -1
  338. package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DMrqCfGO.js} +1 -1
  339. package/web-shell/assets/classDiagram-4FO5ZUOK-BVNaf5JM.js +1 -0
  340. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BVNaf5JM.js +1 -0
  341. package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CF-mpkgI.js} +1 -1
  342. package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-DfsRFsg7.js} +1 -1
  343. package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-DBNwf6Dy.js} +1 -1
  344. package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-CD1TqV1j.js} +1 -1
  345. package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-DkWlaLI2.js} +1 -1
  346. package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-ClrAcxwF.js} +1 -1
  347. package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-Dr6dnPLw.js} +1 -1
  348. package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-Dm_vj18R.js} +1 -1
  349. package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-lp3cMdZu.js} +1 -1
  350. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-AtdCWZya.js} +3 -3
  351. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-BARTJafF.js} +1 -1
  352. package/web-shell/assets/index-BkNgyfu7.js +3 -0
  353. package/web-shell/assets/index-CihmnZZR.js +784 -0
  354. package/web-shell/assets/index-zfdXhnwH.css +5 -0
  355. package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-CxbJ54_f.js} +1 -1
  356. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-hFoO0HQA.js} +1 -1
  357. package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-Bo6cKnLe.js} +1 -1
  358. package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-DIFrH-XL.js} +1 -1
  359. package/web-shell/assets/{linear-Bo5bWzvo.js → linear-Bjv_GjDd.js} +1 -1
  360. package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-C_OiqQEP.js} +5 -5
  361. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-B79Gk8aB.js} +1 -1
  362. package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B_P0gIHr.js} +1 -1
  363. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-BC7F0ohb.js} +1 -1
  364. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-BrA5_NSW.js} +1 -1
  365. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-Q2iqrNI_.js} +1 -1
  366. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-6vdIWz4H.js} +1 -1
  367. package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DMzXNKcB.js} +1 -1
  368. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BWFH0OCO.js +1 -0
  369. package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-BykEawmS.js} +1 -1
  370. package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-B24KD2X1.js} +1 -1
  371. package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-C761G_tA.js} +1 -1
  372. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-CfwGJYqw.js} +1 -1
  373. package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BDu5AZ2D.js} +1 -1
  374. package/web-shell/index.html +16 -4
  375. package/chunks/MaxSizedBox-XY5LIO5O.js +0 -71
  376. package/chunks/agent-TKIBLLQT.js +0 -68
  377. package/chunks/agent-headless-VLX4C7KX.js +0 -62
  378. package/chunks/bridge-BCU73DZO.js +0 -77
  379. package/chunks/chunk-6SHO7WFF.js +0 -79
  380. package/chunks/chunk-IFEWJXFS.js +0 -37
  381. package/chunks/chunk-S6RLAIUR.js +0 -23
  382. package/chunks/contextCommand-LAYJZF7H.js +0 -68
  383. package/chunks/daemon-status-provider-XSAFKVDS.js +0 -74
  384. package/chunks/earlyInputCapture-AERYYGXE.js +0 -69
  385. package/chunks/errors-GMZL4QV7.js +0 -75
  386. package/chunks/handleAutoUpdate-HN7ZOSXY.js +0 -65
  387. package/chunks/initializer-SRN3IM42.js +0 -69
  388. package/chunks/list-INTVXUPA.js +0 -71
  389. package/chunks/loadedSettingsAdapter-QVHHQPGM.js +0 -66
  390. package/chunks/mcp-7V4T46RG.js +0 -66
  391. package/chunks/nonInteractiveCli-LJEEODU2.js +0 -116
  392. package/chunks/openaiContentGenerator-PFF6HYB2.js +0 -56
  393. package/chunks/pidfile-LIBUENIV.js +0 -73
  394. package/chunks/read-file-L7TBQVX7.js +0 -30
  395. package/chunks/ripGrep-CKKX3GRB.js +0 -60
  396. package/chunks/serve-36WS32W6.js +0 -71
  397. package/chunks/settings-WFLNS3WT.js +0 -114
  398. package/chunks/shell-DEDSWN56.js +0 -68
  399. package/chunks/spawnChannel-RQHUWTCL.js +0 -70
  400. package/chunks/task-create-RPFZNB4B.js +0 -22
  401. package/chunks/theme-manager-DQZVNSOC.js +0 -64
  402. package/chunks/trustedFolders-Z475EIHL.js +0 -79
  403. package/chunks/updateCheck-E2ZX7RL7.js +0 -65
  404. package/chunks/validateNonInterActiveAuth-O4ECBHQL.js +0 -181
  405. package/chunks/workspace-providers-status-MVYXMYDG.js +0 -68
  406. package/chunks/workspace-service-OMBR6ZLG.js +0 -78
  407. package/chunks/workspace-skills-status-IMMQ7CAY.js +0 -68
  408. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  409. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  410. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  411. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  412. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  413. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  414. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  415. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  416. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  417. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  418. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  419. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  420. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  421. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  422. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  423. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  424. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  425. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  426. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  427. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  428. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  429. package/web-shell/assets/channel-BNf1dW-j.js +0 -1
  430. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
  431. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
  432. package/web-shell/assets/index-CnE2ur2L.js +0 -779
  433. package/web-shell/assets/index-hSKXrlSE.css +0 -5
  434. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  init_esbuild_shims
5
- } from "./chunk-A4BMJM77.js";
5
+ } from "./chunk-5O2XNYP6.js";
6
6
  import {
7
7
  __name
8
8
  } from "./chunk-J2S4EL5Y.js";
@@ -683,9 +683,51 @@ var DaemonClient = class {
683
683
  if (!res.ok) throw await this.failOnError(res, label);
684
684
  return await res.json();
685
685
  },
686
+ opts.timeoutMs,
687
+ opts.mode
688
+ );
689
+ }
690
+ /** @internal */
691
+ async workspaceJsonRequest(workspaceSelector, path, label, opts = {}) {
692
+ return await this.jsonRequest(
693
+ `/workspaces/${workspaceSelector}${path}`,
694
+ label,
695
+ opts
696
+ );
697
+ }
698
+ /** @internal */
699
+ async workspaceNoContentRequest(workspaceSelector, path, label, opts = {}) {
700
+ return await this.fetchWithTimeout(
701
+ `${this.baseUrl}/workspaces/${workspaceSelector}${path}`,
702
+ {
703
+ ...opts.method ? { method: opts.method } : {},
704
+ headers: this.headers({}, opts.clientId)
705
+ },
706
+ async (res) => {
707
+ if (res.status === 204) {
708
+ try {
709
+ await res.body?.cancel();
710
+ } catch {
711
+ }
712
+ return;
713
+ }
714
+ if (res.status === 404 && opts.okNotFoundCode) {
715
+ const err = await this.failOnError(res, label);
716
+ const body = err.body;
717
+ if (body?.code === opts.okNotFoundCode) return;
718
+ throw err;
719
+ }
720
+ throw await this.failOnError(res, label);
721
+ },
686
722
  opts.timeoutMs
687
723
  );
688
724
  }
725
+ workspaceById(workspaceId) {
726
+ return new WorkspaceDaemonClient(this, urlEncode(workspaceId));
727
+ }
728
+ workspaceByCwd(workspaceCwd) {
729
+ return new WorkspaceDaemonClient(this, urlEncode(workspaceCwd));
730
+ }
689
731
  // -- Lifecycle / discovery ---------------------------------------------
690
732
  async health() {
691
733
  return await this.fetchWithTimeout(
@@ -787,6 +829,33 @@ var DaemonClient = class {
787
829
  }
788
830
  );
789
831
  }
832
+ async workspaceAcpPreheat(timeoutMs) {
833
+ const serverBudgetMs = timeoutMs ?? 5e3;
834
+ const suffix = timeoutMs !== void 0 ? `?timeoutMs=${encodeURIComponent(timeoutMs)}` : "";
835
+ return await this.fetchWithTimeout(
836
+ `${this.baseUrl}/workspace/acp/preheat${suffix}`,
837
+ { method: "POST", headers: this.headers() },
838
+ async (res) => {
839
+ if (!res.ok) {
840
+ throw await this.failOnError(res, "POST /workspace/acp/preheat");
841
+ }
842
+ return await res.json();
843
+ },
844
+ serverBudgetMs + 2e3
845
+ );
846
+ }
847
+ async workspaceAcpStatus() {
848
+ return await this.fetchWithTimeout(
849
+ `${this.baseUrl}/workspace/acp/status`,
850
+ { headers: this.headers() },
851
+ async (res) => {
852
+ if (!res.ok) {
853
+ throw await this.failOnError(res, "GET /workspace/acp/status");
854
+ }
855
+ return await res.json();
856
+ }
857
+ );
858
+ }
790
859
  async workspaceProviders() {
791
860
  return await this.fetchWithTimeout(
792
861
  `${this.baseUrl}/workspace/providers`,
@@ -1279,7 +1348,8 @@ var DaemonClient = class {
1279
1348
  // invalid_session_scope` surface the bug. Same shape the
1280
1349
  // bridge's own validation uses (`httpAcpBridge.ts:
1281
1350
  // spawnOrAttach`); SDK should be a transparent layer here.
1282
- ...req.sessionScope !== void 0 ? { sessionScope: req.sessionScope } : {}
1351
+ ...req.sessionScope !== void 0 ? { sessionScope: req.sessionScope } : {},
1352
+ ...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {}
1283
1353
  })
1284
1354
  },
1285
1355
  async (res) => {
@@ -1320,6 +1390,9 @@ var DaemonClient = class {
1320
1390
  if (options?.group !== void 0) {
1321
1391
  query.set("group", options.group);
1322
1392
  }
1393
+ if (options?.parentSessionId !== void 0) {
1394
+ query.set("parentSessionId", options.parentSessionId);
1395
+ }
1323
1396
  return await this.jsonRequest(
1324
1397
  `/workspace/${urlEncode(workspaceCwd)}/sessions?${query.toString()}`,
1325
1398
  "GET /workspace/sessions"
@@ -1390,6 +1463,20 @@ var DaemonClient = class {
1390
1463
  "rest"
1391
1464
  );
1392
1465
  }
1466
+ async getSessionTranscriptPage(sessionId, opts = {}) {
1467
+ const params = new URLSearchParams();
1468
+ if (opts.cursor !== void 0) params.set("cursor", opts.cursor);
1469
+ if (opts.limit !== void 0) params.set("limit", String(opts.limit));
1470
+ const query = params.toString();
1471
+ return await this.jsonRequest(
1472
+ `/session/${urlEncode(sessionId)}/transcript${query ? `?${query}` : ""}`,
1473
+ "GET /session/:id/transcript",
1474
+ {
1475
+ clientId: opts.clientId,
1476
+ mode: "rest"
1477
+ }
1478
+ );
1479
+ }
1393
1480
  async resumeSession(sessionId, req = {}, clientId) {
1394
1481
  return this.restoreSession("resume", sessionId, req, clientId);
1395
1482
  }
@@ -1437,6 +1524,21 @@ var DaemonClient = class {
1437
1524
  }
1438
1525
  );
1439
1526
  }
1527
+ /**
1528
+ * Read the current in-memory runtime status for one live daemon session.
1529
+ */
1530
+ async sessionStatus(sessionId, clientId) {
1531
+ return await this.fetchWithTimeout(
1532
+ `${this.baseUrl}/session/${urlEncode(sessionId)}/status`,
1533
+ { headers: this.headers({}, clientId) },
1534
+ async (res) => {
1535
+ if (!res.ok) {
1536
+ throw await this.failOnError(res, "GET /session/:id/status");
1537
+ }
1538
+ return await res.json();
1539
+ }
1540
+ );
1541
+ }
1440
1542
  async sessionContextUsage(sessionId, opts = {}, clientId) {
1441
1543
  const params = new URLSearchParams();
1442
1544
  if (opts.detail === true) params.set("detail", "true");
@@ -1551,7 +1653,10 @@ var DaemonClient = class {
1551
1653
  {
1552
1654
  method: "POST",
1553
1655
  headers: this.headers({ "Content-Type": "application/json" }, clientId),
1554
- body: JSON.stringify({ cwd: req.workspaceCwd })
1656
+ body: JSON.stringify({
1657
+ cwd: req.workspaceCwd,
1658
+ ...req.approvalMode !== void 0 ? { approvalMode: req.approvalMode } : {}
1659
+ })
1555
1660
  },
1556
1661
  async (res) => {
1557
1662
  if (!res.ok) {
@@ -2047,6 +2152,32 @@ var DaemonClient = class {
2047
2152
  opts?.timeoutMs
2048
2153
  );
2049
2154
  }
2155
+ /**
2156
+ * Reload the daemon-managed channel worker: the daemon stops and relaunches
2157
+ * it so it re-reads settings.json (channels / proxy / per-channel model).
2158
+ * Requires the daemon to have been started with `--channel`; otherwise the
2159
+ * route responds 409. Pre-flight the `channel_reload` capability.
2160
+ */
2161
+ async reloadChannelWorker(opts) {
2162
+ return await this.fetchWithTimeout(
2163
+ `${this.baseUrl}/workspace/channel/reload`,
2164
+ {
2165
+ method: "POST",
2166
+ headers: this.headers(
2167
+ { "Content-Type": "application/json" },
2168
+ opts?.clientId
2169
+ ),
2170
+ body: "{}"
2171
+ },
2172
+ async (res) => {
2173
+ if (!res.ok) {
2174
+ throw await this.failOnError(res, "POST /workspace/channel/reload");
2175
+ }
2176
+ return await res.json();
2177
+ },
2178
+ opts?.timeoutMs
2179
+ );
2180
+ }
2050
2181
  async manageMcpServer(serverName, action, opts) {
2051
2182
  return await this.fetchWithTimeout(
2052
2183
  `${this.baseUrl}/workspace/mcp/${urlEncode(serverName)}/${urlEncode(action)}`,
@@ -2653,6 +2784,22 @@ var DaemonClient = class {
2653
2784
  }
2654
2785
  );
2655
2786
  }
2787
+ async addWorkspace(cwd) {
2788
+ return await this.fetchWithTimeout(
2789
+ `${this.baseUrl}/workspaces`,
2790
+ {
2791
+ method: "POST",
2792
+ headers: this.headers({ "Content-Type": "application/json" }),
2793
+ body: JSON.stringify({ cwd })
2794
+ },
2795
+ async (res) => {
2796
+ if (!res.ok) {
2797
+ throw await this.failOnError(res, "POST /workspaces");
2798
+ }
2799
+ return await res.json();
2800
+ }
2801
+ );
2802
+ }
2656
2803
  // -- Lifecycle / disposal ------------------------------------------------
2657
2804
  /**
2658
2805
  * Release transport resources (WS close, etc.). Idempotent.
@@ -2714,6 +2861,327 @@ var DaemonClient = class {
2714
2861
  );
2715
2862
  }
2716
2863
  };
2864
+ var WorkspaceDaemonClient = class {
2865
+ constructor(client, workspaceSelector) {
2866
+ this.client = client;
2867
+ this.workspaceSelector = workspaceSelector;
2868
+ }
2869
+ static {
2870
+ __name(this, "WorkspaceDaemonClient");
2871
+ }
2872
+ workspaceMcp() {
2873
+ return this.get("/mcp", "GET /workspaces/:workspace/mcp");
2874
+ }
2875
+ workspaceSkills() {
2876
+ return this.get("/skills", "GET /workspaces/:workspace/skills");
2877
+ }
2878
+ workspaceProviders() {
2879
+ return this.get("/providers", "GET /workspaces/:workspace/providers");
2880
+ }
2881
+ workspaceHooks() {
2882
+ return this.get("/hooks", "GET /workspaces/:workspace/hooks");
2883
+ }
2884
+ workspaceEnv() {
2885
+ return this.get("/env", "GET /workspaces/:workspace/env");
2886
+ }
2887
+ workspacePreflight() {
2888
+ return this.get("/preflight", "GET /workspaces/:workspace/preflight");
2889
+ }
2890
+ workspaceTools() {
2891
+ return this.get("/tools", "GET /workspaces/:workspace/tools");
2892
+ }
2893
+ workspaceMemory() {
2894
+ return this.get("/memory", "GET /workspaces/:workspace/memory");
2895
+ }
2896
+ writeWorkspaceMemory(req, clientId) {
2897
+ return this.post(
2898
+ "/memory",
2899
+ "POST /workspaces/:workspace/memory",
2900
+ { ...req, scope: "workspace" },
2901
+ clientId
2902
+ );
2903
+ }
2904
+ listWorkspaceAgents() {
2905
+ return this.get("/agents", "GET /workspaces/:workspace/agents");
2906
+ }
2907
+ createWorkspaceAgent(req, clientId) {
2908
+ return this.post(
2909
+ "/agents",
2910
+ "POST /workspaces/:workspace/agents",
2911
+ { ...req, scope: req.scope ?? "workspace" },
2912
+ clientId
2913
+ );
2914
+ }
2915
+ getWorkspaceAgent(agentType) {
2916
+ return this.get(
2917
+ `/agents/${urlEncode(agentType)}`,
2918
+ "GET /workspaces/:workspace/agents/:agentType"
2919
+ );
2920
+ }
2921
+ updateWorkspaceAgent(agentType, req, opts = {}) {
2922
+ const query = opts.scope ? `?scope=${urlEncode(opts.scope)}` : "";
2923
+ return this.post(
2924
+ `/agents/${urlEncode(agentType)}${query}`,
2925
+ "POST /workspaces/:workspace/agents/:agentType",
2926
+ req,
2927
+ opts.clientId
2928
+ );
2929
+ }
2930
+ async deleteWorkspaceAgent(agentType, opts = {}) {
2931
+ const query = opts.scope ? `?scope=${urlEncode(opts.scope)}` : "";
2932
+ return await this.client.workspaceNoContentRequest(
2933
+ this.workspaceSelector,
2934
+ `/agents/${urlEncode(agentType)}${query}`,
2935
+ "DELETE /workspaces/:workspace/agents/:agentType",
2936
+ {
2937
+ method: "DELETE",
2938
+ clientId: opts.clientId,
2939
+ okNotFoundCode: "agent_not_found"
2940
+ }
2941
+ );
2942
+ }
2943
+ listWorkspaceSessionsPage(options) {
2944
+ const requestedPageSize = options?.pageSize ?? DEFAULT_SESSION_LIST_PAGE_SIZE;
2945
+ const pageSize = Math.max(
2946
+ 1,
2947
+ Math.min(
2948
+ 1e3,
2949
+ Math.round(
2950
+ Number.isFinite(requestedPageSize) ? requestedPageSize : DEFAULT_SESSION_LIST_PAGE_SIZE
2951
+ )
2952
+ )
2953
+ );
2954
+ const query = new URLSearchParams({ size: String(pageSize) });
2955
+ if (options?.cursor !== void 0) query.set("cursor", options.cursor);
2956
+ if (options?.archiveState !== void 0) {
2957
+ query.set("archiveState", options.archiveState);
2958
+ }
2959
+ if (options?.view !== void 0) query.set("view", options.view);
2960
+ if (options?.group !== void 0) query.set("group", options.group);
2961
+ if (options?.parentSessionId !== void 0) {
2962
+ query.set("parentSessionId", options.parentSessionId);
2963
+ }
2964
+ return this.get(
2965
+ `/sessions?${query.toString()}`,
2966
+ "GET /workspaces/:workspace/sessions"
2967
+ );
2968
+ }
2969
+ async listWorkspaceSessions(options) {
2970
+ const page = await this.listWorkspaceSessionsPage(options);
2971
+ return page.sessions;
2972
+ }
2973
+ listSessionGroups() {
2974
+ return this.get(
2975
+ "/session-groups",
2976
+ "GET /workspaces/:workspace/session-groups"
2977
+ );
2978
+ }
2979
+ async createSessionGroup(input) {
2980
+ const body = await this.post(
2981
+ "/session-groups",
2982
+ "POST /workspaces/:workspace/session-groups",
2983
+ input
2984
+ );
2985
+ return body.group;
2986
+ }
2987
+ async updateSessionGroup(groupId, update) {
2988
+ const body = await this.client.workspaceJsonRequest(
2989
+ this.workspaceSelector,
2990
+ `/session-groups/${urlEncode(groupId)}`,
2991
+ "PATCH /workspaces/:workspace/session-groups/:groupId",
2992
+ { method: "PATCH", body: update }
2993
+ );
2994
+ return body.group;
2995
+ }
2996
+ deleteSessionGroup(groupId) {
2997
+ return this.client.workspaceJsonRequest(
2998
+ this.workspaceSelector,
2999
+ `/session-groups/${urlEncode(groupId)}`,
3000
+ "DELETE /workspaces/:workspace/session-groups/:groupId",
3001
+ { method: "DELETE" }
3002
+ );
3003
+ }
3004
+ deleteSessionsData(sessionIds, clientId) {
3005
+ return this.post(
3006
+ "/sessions/delete",
3007
+ "POST /workspaces/:workspace/sessions/delete",
3008
+ { sessionIds },
3009
+ clientId
3010
+ );
3011
+ }
3012
+ archiveSessionsData(sessionIds, clientId) {
3013
+ return this.post(
3014
+ "/sessions/archive",
3015
+ "POST /workspaces/:workspace/sessions/archive",
3016
+ { sessionIds },
3017
+ clientId
3018
+ );
3019
+ }
3020
+ unarchiveSessionsData(sessionIds, clientId) {
3021
+ return this.post(
3022
+ "/sessions/unarchive",
3023
+ "POST /workspaces/:workspace/sessions/unarchive",
3024
+ { sessionIds },
3025
+ clientId
3026
+ );
3027
+ }
3028
+ readWorkspaceFile(filePath, opts = {}, clientId) {
3029
+ const query = new URLSearchParams({ path: filePath });
3030
+ if (opts.maxBytes !== void 0)
3031
+ query.set("maxBytes", String(opts.maxBytes));
3032
+ if (opts.line !== void 0) query.set("line", String(opts.line));
3033
+ if (opts.limit !== void 0) query.set("limit", String(opts.limit));
3034
+ return this.get(
3035
+ `/file?${query.toString()}`,
3036
+ "GET /workspaces/:workspace/file",
3037
+ clientId
3038
+ );
3039
+ }
3040
+ readWorkspaceFileBytes(filePath, opts = {}, clientId) {
3041
+ const query = new URLSearchParams({ path: filePath });
3042
+ if (opts.offset !== void 0) query.set("offset", String(opts.offset));
3043
+ if (opts.maxBytes !== void 0)
3044
+ query.set("maxBytes", String(opts.maxBytes));
3045
+ return this.get(
3046
+ `/file/bytes?${query.toString()}`,
3047
+ "GET /workspaces/:workspace/file/bytes",
3048
+ clientId
3049
+ );
3050
+ }
3051
+ fileStat(filePath) {
3052
+ const query = new URLSearchParams({ path: filePath });
3053
+ return this.get(
3054
+ `/stat?${query.toString()}`,
3055
+ "GET /workspaces/:workspace/stat"
3056
+ );
3057
+ }
3058
+ dirList(dirPath) {
3059
+ const query = new URLSearchParams({ path: dirPath });
3060
+ return this.get(
3061
+ `/list?${query.toString()}`,
3062
+ "GET /workspaces/:workspace/list"
3063
+ );
3064
+ }
3065
+ glob(pattern) {
3066
+ const query = new URLSearchParams({ pattern });
3067
+ return this.get(
3068
+ `/glob?${query.toString()}`,
3069
+ "GET /workspaces/:workspace/glob"
3070
+ );
3071
+ }
3072
+ writeWorkspaceFile(req, clientId) {
3073
+ return this.post(
3074
+ "/file/write",
3075
+ "POST /workspaces/:workspace/file/write",
3076
+ req,
3077
+ clientId
3078
+ );
3079
+ }
3080
+ editWorkspaceFile(req, clientId) {
3081
+ return this.post(
3082
+ "/file/edit",
3083
+ "POST /workspaces/:workspace/file/edit",
3084
+ req,
3085
+ clientId
3086
+ );
3087
+ }
3088
+ workspaceSettings(opts) {
3089
+ return this.get(
3090
+ "/settings",
3091
+ "GET /workspaces/:workspace/settings",
3092
+ opts?.clientId
3093
+ );
3094
+ }
3095
+ setWorkspaceSetting(scope, key, value, opts) {
3096
+ return this.post(
3097
+ "/settings",
3098
+ "POST /workspaces/:workspace/settings",
3099
+ { scope, key, value },
3100
+ opts?.clientId
3101
+ );
3102
+ }
3103
+ workspaceTrust(opts) {
3104
+ return this.get(
3105
+ "/trust",
3106
+ "GET /workspaces/:workspace/trust",
3107
+ opts?.clientId
3108
+ );
3109
+ }
3110
+ requestWorkspaceTrustChange(request, clientId) {
3111
+ return this.post(
3112
+ "/trust/request",
3113
+ "POST /workspaces/:workspace/trust/request",
3114
+ request,
3115
+ clientId
3116
+ );
3117
+ }
3118
+ workspacePermissions(opts) {
3119
+ return this.get(
3120
+ "/permissions",
3121
+ "GET /workspaces/:workspace/permissions",
3122
+ opts?.clientId
3123
+ );
3124
+ }
3125
+ setWorkspacePermissionRules(ruleType, rules, opts) {
3126
+ return this.post(
3127
+ "/permissions",
3128
+ "POST /workspaces/:workspace/permissions",
3129
+ { scope: "workspace", ruleType, rules: [...rules] },
3130
+ opts?.clientId
3131
+ );
3132
+ }
3133
+ setWorkspaceToolEnabled(toolName, enabled, opts) {
3134
+ return this.post(
3135
+ `/tools/${urlEncode(toolName)}/enable`,
3136
+ "POST /workspaces/:workspace/tools/:name/enable",
3137
+ { enabled },
3138
+ opts?.clientId
3139
+ );
3140
+ }
3141
+ restartMcpServer(serverName, opts) {
3142
+ const query = opts?.entryIndex === void 0 ? "" : `?entryIndex=${urlEncode(String(opts.entryIndex))}`;
3143
+ return this.post(
3144
+ `/mcp/${urlEncode(serverName)}/restart${query}`,
3145
+ "POST /workspaces/:workspace/mcp/:server/restart",
3146
+ {},
3147
+ opts?.clientId,
3148
+ opts?.timeoutMs ?? MCP_RESTART_DEFAULT_TIMEOUT_MS
3149
+ );
3150
+ }
3151
+ reload(opts) {
3152
+ return this.post(
3153
+ "/reload",
3154
+ "POST /workspaces/:workspace/reload",
3155
+ {},
3156
+ opts?.clientId,
3157
+ opts?.timeoutMs
3158
+ );
3159
+ }
3160
+ initWorkspace(opts) {
3161
+ return this.post(
3162
+ "/init",
3163
+ "POST /workspaces/:workspace/init",
3164
+ opts?.force === true ? { force: true } : {},
3165
+ opts?.clientId
3166
+ );
3167
+ }
3168
+ get(path, label, clientId) {
3169
+ return this.client.workspaceJsonRequest(
3170
+ this.workspaceSelector,
3171
+ path,
3172
+ label,
3173
+ { clientId }
3174
+ );
3175
+ }
3176
+ post(path, label, body, clientId, timeoutMs) {
3177
+ return this.client.workspaceJsonRequest(
3178
+ this.workspaceSelector,
3179
+ path,
3180
+ label,
3181
+ { method: "POST", body, clientId, timeoutMs }
3182
+ );
3183
+ }
3184
+ };
2717
3185
  function composeAbortSignals2(signals) {
2718
3186
  const anyFn = AbortSignal.any;
2719
3187
  if (typeof anyFn === "function") return anyFn.call(AbortSignal, signals);
@@ -2807,7 +3275,7 @@ var DaemonSessionClient = class _DaemonSessionClient {
2807
3275
  */
2808
3276
  static async createOrAttach(client, req = {}, clientId) {
2809
3277
  const session = await client.createOrAttachSession(req, clientId);
2810
- const lastEventId = !session.attached || req.modelServiceId ? 0 : void 0;
3278
+ const lastEventId = !session.attached || req.modelServiceId || req.approvalMode ? 0 : void 0;
2811
3279
  return new _DaemonSessionClient({
2812
3280
  client,
2813
3281
  session,
@@ -3110,6 +3578,9 @@ var DaemonSessionClient = class _DaemonSessionClient {
3110
3578
  async context() {
3111
3579
  return await this.client.sessionContext(this.sessionId, this.clientId);
3112
3580
  }
3581
+ async status() {
3582
+ return await this.client.sessionStatus(this.sessionId, this.clientId);
3583
+ }
3113
3584
  async contextUsage(opts = {}) {
3114
3585
  return await this.client.sessionContextUsage(
3115
3586
  this.sessionId,
@@ -3322,6 +3793,11 @@ var DAEMON_KNOWN_EVENT_TYPE_VALUES = [
3322
3793
  // reseeds state. Synthetic (no `id`) so it doesn't burn a slot
3323
3794
  // in the per-session monotonic sequence.
3324
3795
  "state_resync_required",
3796
+ // Synthetic marker prepended to a bounded `/session/:id/load` replay
3797
+ // snapshot when older replay history was dropped from the daemon's
3798
+ // in-memory window. This is NOT a resync request: consumers should render
3799
+ // it as transcript status and continue applying the retained snapshot.
3800
+ "history_truncated",
3325
3801
  // MCP guardrail push events. See `mcp_guardrail_events` capability
3326
3802
  // tag. Both fire on the per-session SSE bus; consumers should
3327
3803
  // pre-flight `caps.features.includes('mcp_guardrail_events')`
@@ -3418,6 +3894,7 @@ var MAX_PENDING_PER_SESSION = 64;
3418
3894
  var MAX_FORBIDDEN_VOTES_PER_SESSION = 32;
3419
3895
  var RESYNC_PASSTHROUGH_TYPES = /* @__PURE__ */ new Set([
3420
3896
  "state_resync_required",
3897
+ "history_truncated",
3421
3898
  "session_died",
3422
3899
  "session_closed",
3423
3900
  "client_evicted",
@@ -3475,6 +3952,8 @@ function createDaemonSessionViewState(seed = {}) {
3475
3952
  awaitingResync: seed.awaitingResync ?? false,
3476
3953
  resyncRequiredCount: seed.resyncRequiredCount ?? 0,
3477
3954
  lastResyncRequired: seed.lastResyncRequired,
3955
+ historyTruncatedCount: seed.historyTruncatedCount ?? 0,
3956
+ lastHistoryTruncated: seed.lastHistoryTruncated,
3478
3957
  lastFollowupSuggestion: seed.lastFollowupSuggestion,
3479
3958
  rewindCount: seed.rewindCount ?? 0,
3480
3959
  lastRewind: seed.lastRewind,
@@ -3537,6 +4016,8 @@ function asKnownDaemonEvent(event) {
3537
4016
  return isStreamErrorData(event.data) ? event : void 0;
3538
4017
  case "state_resync_required":
3539
4018
  return isStateResyncRequiredData(event.data) ? event : void 0;
4019
+ case "history_truncated":
4020
+ return isHistoryTruncatedData(event.data) ? event : void 0;
3540
4021
  case "mcp_budget_warning":
3541
4022
  return isMcpBudgetWarningData(event.data) ? event : void 0;
3542
4023
  case "mcp_child_refused_batch":
@@ -3773,6 +4254,12 @@ function reduceDaemonSessionEvent(state, rawEvent) {
3773
4254
  resyncRequiredCount: base.resyncRequiredCount + 1,
3774
4255
  lastResyncRequired: event.data
3775
4256
  };
4257
+ case "history_truncated":
4258
+ return {
4259
+ ...base,
4260
+ historyTruncatedCount: base.historyTruncatedCount + 1,
4261
+ lastHistoryTruncated: event.data
4262
+ };
3776
4263
  case "mcp_budget_warning":
3777
4264
  return {
3778
4265
  ...base,
@@ -4136,6 +4623,14 @@ function isStateResyncRequiredData(value) {
4136
4623
  return isRecord(value) && isNonEmptyString(value["reason"]) && isFiniteNumber(value["lastDeliveredId"]) && isFiniteNumber(value["earliestAvailableId"]);
4137
4624
  }
4138
4625
  __name(isStateResyncRequiredData, "isStateResyncRequiredData");
4626
+ function isHistoryTruncatedData(value) {
4627
+ if (!isRecord(value) || value["reason"] !== "replay_window_exceeded" || !isFiniteNumber(value["truncatedEvents"]) || !isFiniteNumber(value["retainedEvents"]) || !isFiniteNumber(value["maxBytes"]) || typeof value["fullTranscriptAvailable"] !== "boolean") {
4628
+ return false;
4629
+ }
4630
+ const truncatedTurns = value["truncatedTurns"];
4631
+ return isNonNegativeInteger(value["truncatedEvents"]) && isNonNegativeInteger(value["retainedEvents"]) && isNonNegativeInteger(value["maxBytes"]) && (truncatedTurns === void 0 || isNonNegativeInteger(truncatedTurns));
4632
+ }
4633
+ __name(isHistoryTruncatedData, "isHistoryTruncatedData");
4139
4634
  function isSlowClientWarningData(value) {
4140
4635
  if (!isRecord(value)) return false;
4141
4636
  const threshold = value["threshold"];
@@ -4372,6 +4867,10 @@ function isOptionalNumberOrNull(value) {
4372
4867
  return value === void 0 || value === null || isFiniteNumber(value);
4373
4868
  }
4374
4869
  __name(isOptionalNumberOrNull, "isOptionalNumberOrNull");
4870
+ function isNonNegativeInteger(value) {
4871
+ return isFiniteNumber(value) && Number.isInteger(value) && value >= 0;
4872
+ }
4873
+ __name(isNonNegativeInteger, "isNonNegativeInteger");
4375
4874
  function isOptionalStringOrNull(value) {
4376
4875
  return value === void 0 || value === null || typeof value === "string";
4377
4876
  }
@@ -4780,6 +5279,8 @@ function normalizeDaemonEvent(event, opts = {}) {
4780
5279
  }
4781
5280
  case "state_resync_required":
4782
5281
  return normalizeStateResyncRequired(event, base);
5282
+ case "history_truncated":
5283
+ return normalizeHistoryTruncated(event, base);
4783
5284
  case "session_rewound":
4784
5285
  return normalizeSessionRewound(event, base);
4785
5286
  case "session_branched":
@@ -4861,6 +5362,8 @@ function normalizeDaemonEvent(event, opts = {}) {
4861
5362
  return normalizeMcpServerRestartRefused(event, base);
4862
5363
  case "extensions_changed":
4863
5364
  return normalizeExtensionsChanged(event, base);
5365
+ case "artifact_changed":
5366
+ return normalizeArtifactChanged(event, base);
4864
5367
  // ── Auth device-flow events (RFC 8628) ─────────────────
4865
5368
  case "auth_device_flow_started":
4866
5369
  return normalizeAuthDeviceFlowStarted(event, base);
@@ -4905,6 +5408,24 @@ function normalizeStateResyncRequired(event, base) {
4905
5408
  ];
4906
5409
  }
4907
5410
  __name(normalizeStateResyncRequired, "normalizeStateResyncRequired");
5411
+ function normalizeHistoryTruncated(event, base) {
5412
+ const reason = getString2(event.data, "reason");
5413
+ const truncatedEvents = numberField(event.data, "truncatedEvents");
5414
+ const retainedEvents = numberField(event.data, "retainedEvents");
5415
+ const maxBytes = numberField(event.data, "maxBytes");
5416
+ if (reason !== "replay_window_exceeded" || truncatedEvents === void 0 || retainedEvents === void 0 || maxBytes === void 0 || !isRecord2(event.data) || typeof event.data["fullTranscriptAvailable"] !== "boolean") {
5417
+ return fallbackDebug(event, base, "malformed history_truncated payload");
5418
+ }
5419
+ return [
5420
+ {
5421
+ ...base,
5422
+ type: "status",
5423
+ text: `History truncated: retained ${retainedEvents}, dropped ${truncatedEvents} (window ${maxBytes} bytes).`,
5424
+ source: "history_truncated"
5425
+ }
5426
+ ];
5427
+ }
5428
+ __name(normalizeHistoryTruncated, "normalizeHistoryTruncated");
4908
5429
  function normalizeSessionRewound(event, base) {
4909
5430
  const promptId = getString2(event.data, "promptId");
4910
5431
  const targetTurnIndex = numberField(event.data, "targetTurnIndex");
@@ -5440,6 +5961,27 @@ function normalizeSessionMetadataUpdated(event, base) {
5440
5961
  ];
5441
5962
  }
5442
5963
  __name(normalizeSessionMetadataUpdated, "normalizeSessionMetadataUpdated");
5964
+ function normalizeArtifactChanged(event, base) {
5965
+ const sessionId = getString2(event.data, "sessionId");
5966
+ const change = isRecord2(event.data) ? event.data["change"] : void 0;
5967
+ if (!sessionId || !isRecord2(change)) {
5968
+ return fallbackDebug(event, base, "malformed artifact_changed payload");
5969
+ }
5970
+ const action = getString2(change, "action");
5971
+ const artifactId = getString2(change, "artifactId");
5972
+ if (!action || !artifactId) {
5973
+ return fallbackDebug(event, base, "missing action or artifactId");
5974
+ }
5975
+ return [
5976
+ {
5977
+ ...base,
5978
+ type: "session.artifact.changed",
5979
+ sessionId,
5980
+ change
5981
+ }
5982
+ ];
5983
+ }
5984
+ __name(normalizeArtifactChanged, "normalizeArtifactChanged");
5443
5985
  function normalizeApprovalModeChanged(event, base) {
5444
5986
  const sessionId = getString2(event.data, "sessionId");
5445
5987
  const previous = getString2(event.data, "previous");
@@ -6439,6 +6981,7 @@ function applyDaemonTranscriptEvent(next, event) {
6439
6981
  next.approvalMode = event.next;
6440
6982
  break;
6441
6983
  case "session.metadata.changed":
6984
+ case "session.artifact.changed":
6442
6985
  case "session.available_commands":
6443
6986
  break;
6444
6987
  case "session.state_resync_required":
@@ -7539,6 +8082,12 @@ function daemonUiEventToTerminalText(event) {
7539
8082
  `metadata: ${event.displayName ?? "(no display name)"}`,
7540
8083
  "36"
7541
8084
  );
8085
+ case "session.artifact.changed":
8086
+ return terminalLine(
8087
+ "artifact",
8088
+ `${event.change.action} ${event.change.artifact?.title ?? event.change.artifactId}`,
8089
+ "36"
8090
+ );
7542
8091
  case "session.approval_mode.changed":
7543
8092
  return terminalLine(
7544
8093
  "approval-mode",
@@ -8643,6 +9192,7 @@ export {
8643
9192
  PENDING_PROMPT_COMPLETED_EVENT,
8644
9193
  PENDING_PROMPT_STARTED_EVENT,
8645
9194
  SseFramingError,
9195
+ WorkspaceDaemonClient,
8646
9196
  appendLocalUserTranscriptMessage,
8647
9197
  asKnownDaemonEvent,
8648
9198
  createDaemonAuthState,