@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
@@ -1,13 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- NdJsonQueueLimitError,
5
- ndJsonStream,
6
- validateNdJsonStreamLimits
7
- } from "./chunk-H72BQNM3.js";
8
3
  import {
9
4
  MissingCliEntryError
10
- } from "./chunk-KID24ZFN.js";
5
+ } from "./chunk-64QH2UC6.js";
11
6
  import {
12
7
  EXTERNAL_TOOL_GUARD_TOKEN_ENV
13
8
  } from "./chunk-3VUENPWF.js";
@@ -40,6 +35,694 @@ import * as os from "node:os";
40
35
  import { Readable, Writable } from "node:stream";
41
36
  import { getHeapStatistics } from "node:v8";
42
37
 
38
+ // packages/acp-bridge/src/ndJsonStream.ts
39
+ init_esbuild_shims();
40
+ import { createHash } from "node:crypto";
41
+ import { performance } from "node:perf_hooks";
42
+ import { inspect } from "node:util";
43
+ var NDJSON_QUEUE_SATURATION_GRACE_MS = 5e3;
44
+ var NdJsonFrameTooLargeError = class extends Error {
45
+ constructor(direction, limitBytes, observedBytes) {
46
+ super(
47
+ `NDJSON ${direction} frame exceeds ${limitBytes} bytes (observed ${observedBytes} bytes)`
48
+ );
49
+ this.direction = direction;
50
+ this.limitBytes = limitBytes;
51
+ this.observedBytes = observedBytes;
52
+ this.name = "NdJsonFrameTooLargeError";
53
+ }
54
+ static {
55
+ __name(this, "NdJsonFrameTooLargeError");
56
+ }
57
+ code = "ndjson_frame_too_large";
58
+ };
59
+ var NdJsonQueueLimitError = class extends Error {
60
+ constructor(budget, maxQueuedMessages, maxQueuedBytes, requiredBytes, availableBytes) {
61
+ super(
62
+ `NDJSON ${budget} queue limit exceeded (required ${requiredBytes} bytes, available ${availableBytes} bytes)`
63
+ );
64
+ this.budget = budget;
65
+ this.maxQueuedMessages = maxQueuedMessages;
66
+ this.maxQueuedBytes = maxQueuedBytes;
67
+ this.requiredBytes = requiredBytes;
68
+ this.availableBytes = availableBytes;
69
+ this.name = "NdJsonQueueLimitError";
70
+ }
71
+ static {
72
+ __name(this, "NdJsonQueueLimitError");
73
+ }
74
+ code = "ndjson_queue_limit_exceeded";
75
+ };
76
+ var NdJsonIncompleteFrameError = class extends Error {
77
+ constructor(observedBytes) {
78
+ super(`NDJSON input ended with an incomplete ${observedBytes}-byte frame`);
79
+ this.observedBytes = observedBytes;
80
+ this.name = "NdJsonIncompleteFrameError";
81
+ }
82
+ static {
83
+ __name(this, "NdJsonIncompleteFrameError");
84
+ }
85
+ code = "ndjson_incomplete_frame";
86
+ };
87
+ var NdJsonUnexpectedEofError = class extends Error {
88
+ static {
89
+ __name(this, "NdJsonUnexpectedEofError");
90
+ }
91
+ code = "ndjson_unexpected_eof";
92
+ constructor() {
93
+ super("NDJSON input ended while the bounded transport was active");
94
+ this.name = "NdJsonUnexpectedEofError";
95
+ }
96
+ };
97
+ var NdJsonInvalidMessageError = class extends Error {
98
+ constructor(code, observedBytes) {
99
+ super(`NDJSON input contains an invalid ${observedBytes}-byte message`);
100
+ this.code = code;
101
+ this.observedBytes = observedBytes;
102
+ this.name = "NdJsonInvalidMessageError";
103
+ }
104
+ static {
105
+ __name(this, "NdJsonInvalidMessageError");
106
+ }
107
+ };
108
+ var MAX_JSON_RPC_METHOD_BYTES = 1024;
109
+ var MAX_JSON_RPC_ID_BYTES = 256;
110
+ var MAX_JSON_RPC_ERROR_MESSAGE_BYTES = 1024;
111
+ var MAX_JSON_DEPTH = 64;
112
+ var MAX_JSON_NODES = 1e4;
113
+ var MAX_JSON_ARRAY_LENGTH = 4096;
114
+ function ndJsonStream(output, input, hooks, limits, validateInboundMessage, fatalCleanEof = false) {
115
+ const textEncoder = new TextEncoder();
116
+ const textDecoder = new TextDecoder();
117
+ if (limits) validateNdJsonStreamLimits(limits);
118
+ const outboundRequests = limits ? new BoundedOutstandingRequestLedger(limits) : void 0;
119
+ const inboundRequests = limits ? new BoundedInboundRequestLedger(limits) : void 0;
120
+ const readable = limits ? createBoundedReadable(
121
+ input,
122
+ textDecoder,
123
+ hooks,
124
+ limits,
125
+ outboundRequests,
126
+ inboundRequests,
127
+ validateInboundMessage,
128
+ fatalCleanEof
129
+ ) : createLegacyReadable(input, textDecoder, hooks);
130
+ const writable = new WritableStream({
131
+ async write(message) {
132
+ let writer;
133
+ let expectedResponseId;
134
+ try {
135
+ const content = JSON.stringify(message);
136
+ const payload = textEncoder.encode(content);
137
+ const frameBytes = payload.byteLength + 1;
138
+ if (limits && frameBytes > limits.maxFrameBytes) {
139
+ throw new NdJsonFrameTooLargeError(
140
+ "sent",
141
+ limits.maxFrameBytes,
142
+ frameBytes
143
+ );
144
+ }
145
+ const frame = new Uint8Array(frameBytes);
146
+ frame.set(payload);
147
+ frame[payload.byteLength] = 10;
148
+ if (outboundRequests && isJsonRpcRequestMessage(message)) {
149
+ outboundRequests.admit(message.id, frameBytes);
150
+ expectedResponseId = message.id;
151
+ }
152
+ writer = output.getWriter();
153
+ await writer.write(frame);
154
+ inboundRequests?.release(message);
155
+ callHook(hooks?.onMessageSent, payload.byteLength);
156
+ callHook(hooks?.onMessageObserved, {
157
+ direction: "sent",
158
+ bytes: payload.byteLength,
159
+ message
160
+ });
161
+ } catch (error) {
162
+ if (expectedResponseId !== void 0) {
163
+ outboundRequests?.discard(expectedResponseId);
164
+ }
165
+ if (limits) callHook(hooks?.onTransportError, error);
166
+ throw error;
167
+ } finally {
168
+ writer?.releaseLock();
169
+ }
170
+ }
171
+ });
172
+ return { readable, writable };
173
+ }
174
+ __name(ndJsonStream, "ndJsonStream");
175
+ function createLegacyReadable(input, textDecoder, hooks) {
176
+ return new ReadableStream({
177
+ async start(controller) {
178
+ const pending = [];
179
+ const reader = input.getReader();
180
+ try {
181
+ while (true) {
182
+ const { value, done } = await reader.read();
183
+ if (done) break;
184
+ if (!value) continue;
185
+ readLegacyChunk(value, pending, controller, textDecoder, hooks);
186
+ }
187
+ } finally {
188
+ reader.releaseLock();
189
+ controller.close();
190
+ }
191
+ }
192
+ });
193
+ }
194
+ __name(createLegacyReadable, "createLegacyReadable");
195
+ function createBoundedReadable(input, textDecoder, hooks, limits, outboundRequests, inboundRequests, validateInboundMessage, fatalCleanEof) {
196
+ const pending = new BoundedFrameBuffer(limits.maxFrameBytes);
197
+ const minimumQueueCharge = Math.ceil(
198
+ limits.maxQueuedBytes / limits.maxQueuedMessages
199
+ );
200
+ const graceMs = limits.queueSaturationGraceMs ?? NDJSON_QUEUE_SATURATION_GRACE_MS;
201
+ let nextQueueCharge = minimumQueueCharge;
202
+ let reader;
203
+ let canceled = false;
204
+ let saturationWarned = false;
205
+ let wakeQueueWaiter;
206
+ const waitForQueueSpace = /* @__PURE__ */ __name((timeoutMs) => new Promise((resolve) => {
207
+ const timer = setTimeout(
208
+ finish,
209
+ // Node clamps delays above 2^31-1 ms to 1 ms (and warns), which would
210
+ // spin the wait loop; cap so a long grace waits instead.
211
+ Math.min(Math.max(0, timeoutMs), 2147483647)
212
+ );
213
+ function finish() {
214
+ clearTimeout(timer);
215
+ wakeQueueWaiter = void 0;
216
+ resolve();
217
+ }
218
+ __name(finish, "finish");
219
+ wakeQueueWaiter = finish;
220
+ }), "waitForQueueSpace");
221
+ const ensureQueueSpace = /* @__PURE__ */ __name(async (controller, queueCharge) => {
222
+ const queueLimitError = /* @__PURE__ */ __name((available) => new NdJsonQueueLimitError(
223
+ "decoded",
224
+ limits.maxQueuedMessages,
225
+ limits.maxQueuedBytes,
226
+ queueCharge,
227
+ Math.max(0, available)
228
+ ), "queueLimitError");
229
+ let availableBytes = controller.desiredSize;
230
+ if (availableBytes === null) throw queueLimitError(0);
231
+ if (availableBytes === limits.maxQueuedBytes) saturationWarned = false;
232
+ if (queueCharge <= availableBytes) return;
233
+ if (queueCharge > limits.maxQueuedBytes) {
234
+ throw queueLimitError(availableBytes);
235
+ }
236
+ if (!saturationWarned) {
237
+ saturationWarned = true;
238
+ callHook(hooks?.onQueueSaturated, {
239
+ requiredBytes: queueCharge,
240
+ availableBytes: Math.max(0, availableBytes),
241
+ maxQueuedMessages: limits.maxQueuedMessages,
242
+ maxQueuedBytes: limits.maxQueuedBytes,
243
+ graceMs
244
+ });
245
+ }
246
+ const deadline = performance.now() + graceMs;
247
+ while (queueCharge > availableBytes) {
248
+ if (canceled) return;
249
+ const remainingMs = deadline - performance.now();
250
+ if (remainingMs <= 0) throw queueLimitError(availableBytes);
251
+ await waitForQueueSpace(remainingMs);
252
+ if (canceled) return;
253
+ const nextAvailableBytes = controller.desiredSize;
254
+ if (nextAvailableBytes === null) throw queueLimitError(0);
255
+ availableBytes = nextAvailableBytes;
256
+ }
257
+ }, "ensureQueueSpace");
258
+ return new ReadableStream(
259
+ {
260
+ start(controller) {
261
+ reader = input.getReader();
262
+ void pumpBoundedInput(
263
+ reader,
264
+ pending,
265
+ controller,
266
+ textDecoder,
267
+ hooks,
268
+ limits,
269
+ outboundRequests,
270
+ inboundRequests,
271
+ validateInboundMessage,
272
+ fatalCleanEof,
273
+ minimumQueueCharge,
274
+ ensureQueueSpace,
275
+ (charge) => {
276
+ nextQueueCharge = charge;
277
+ },
278
+ () => canceled
279
+ );
280
+ },
281
+ pull() {
282
+ wakeQueueWaiter?.();
283
+ },
284
+ async cancel(reason) {
285
+ canceled = true;
286
+ pending.clear();
287
+ wakeQueueWaiter?.();
288
+ if (reader) await cancelReader(reader, reason);
289
+ }
290
+ },
291
+ {
292
+ highWaterMark: limits.maxQueuedBytes,
293
+ size: /* @__PURE__ */ __name(() => nextQueueCharge, "size")
294
+ }
295
+ );
296
+ }
297
+ __name(createBoundedReadable, "createBoundedReadable");
298
+ async function pumpBoundedInput(reader, pending, controller, textDecoder, hooks, limits, outboundRequests, inboundRequests, validateInboundMessage, fatalCleanEof, minimumQueueCharge, ensureQueueSpace, setNextQueueCharge, isCanceled) {
299
+ try {
300
+ while (true) {
301
+ const result = await reader.read();
302
+ if (result.done) {
303
+ if (isCanceled()) return;
304
+ if (pending.byteLength > 0) {
305
+ throw new NdJsonIncompleteFrameError(pending.byteLength);
306
+ }
307
+ if (fatalCleanEof) throw new NdJsonUnexpectedEofError();
308
+ controller.close();
309
+ return;
310
+ }
311
+ if (!result.value) continue;
312
+ await readBoundedChunk(
313
+ result.value,
314
+ pending,
315
+ controller,
316
+ textDecoder,
317
+ hooks,
318
+ limits,
319
+ outboundRequests,
320
+ inboundRequests,
321
+ validateInboundMessage,
322
+ minimumQueueCharge,
323
+ ensureQueueSpace,
324
+ setNextQueueCharge,
325
+ isCanceled
326
+ );
327
+ if (isCanceled()) return;
328
+ }
329
+ } catch (error) {
330
+ if (isCanceled()) return;
331
+ pending.clear();
332
+ callHook(hooks?.onTransportError, error);
333
+ await cancelReader(reader, error);
334
+ if (!isCanceled()) controller.close();
335
+ } finally {
336
+ pending.clear();
337
+ outboundRequests.clear();
338
+ inboundRequests.clear();
339
+ reader.releaseLock();
340
+ }
341
+ }
342
+ __name(pumpBoundedInput, "pumpBoundedInput");
343
+ function readLegacyChunk(chunk, pending, controller, textDecoder, hooks) {
344
+ let start = 0;
345
+ let newline = chunk.indexOf(10, start);
346
+ while (newline !== -1) {
347
+ const lineBytes = takeLegacyLineBytes(
348
+ pending,
349
+ chunk.subarray(start, newline)
350
+ );
351
+ handleLegacyLine(lineBytes, controller, textDecoder, hooks);
352
+ start = newline + 1;
353
+ newline = chunk.indexOf(10, start);
354
+ }
355
+ if (start < chunk.length) {
356
+ pending.push(chunk.subarray(start));
357
+ }
358
+ }
359
+ __name(readLegacyChunk, "readLegacyChunk");
360
+ async function readBoundedChunk(chunk, pending, controller, textDecoder, hooks, limits, outboundRequests, inboundRequests, validateInboundMessage, minimumQueueCharge, ensureQueueSpace, setNextQueueCharge, isCanceled) {
361
+ let start = 0;
362
+ let newline = chunk.indexOf(10, start);
363
+ while (newline !== -1) {
364
+ const current = chunk.subarray(start, newline);
365
+ const frameBytes = pending.byteLength + current.byteLength + 1;
366
+ assertFrameSize("received", limits.maxFrameBytes, frameBytes);
367
+ if (pending.isJsonWhitespaceLine(current)) {
368
+ pending.clear();
369
+ start = newline + 1;
370
+ newline = chunk.indexOf(10, start);
371
+ continue;
372
+ }
373
+ const queueCharge = Math.max(frameBytes, minimumQueueCharge);
374
+ await ensureQueueSpace(controller, queueCharge);
375
+ if (isCanceled()) return;
376
+ setNextQueueCharge(queueCharge);
377
+ handleBoundedLine(
378
+ pending.take(current),
379
+ controller,
380
+ textDecoder,
381
+ hooks,
382
+ outboundRequests,
383
+ inboundRequests,
384
+ validateInboundMessage
385
+ );
386
+ start = newline + 1;
387
+ newline = chunk.indexOf(10, start);
388
+ }
389
+ if (start < chunk.length) pending.append(chunk.subarray(start));
390
+ }
391
+ __name(readBoundedChunk, "readBoundedChunk");
392
+ function takeLegacyLineBytes(pending, current) {
393
+ if (pending.length === 0) return current;
394
+ const totalLength = pending.reduce((sum, part) => sum + part.byteLength, 0) + current.byteLength;
395
+ const line = new Uint8Array(totalLength);
396
+ let offset = 0;
397
+ for (const part of pending) {
398
+ line.set(part, offset);
399
+ offset += part.byteLength;
400
+ }
401
+ line.set(current, offset);
402
+ pending.length = 0;
403
+ return line;
404
+ }
405
+ __name(takeLegacyLineBytes, "takeLegacyLineBytes");
406
+ function handleLegacyLine(lineBytes, controller, textDecoder, hooks) {
407
+ const line = textDecoder.decode(lineBytes);
408
+ const trimmedLine = line.trim();
409
+ if (!trimmedLine) return;
410
+ try {
411
+ const message = JSON.parse(trimmedLine);
412
+ controller.enqueue(message);
413
+ reportReceivedMessage(lineBytes, message, hooks);
414
+ } catch (err) {
415
+ console.error("Failed to parse JSON message:", trimmedLine, err);
416
+ }
417
+ }
418
+ __name(handleLegacyLine, "handleLegacyLine");
419
+ function handleBoundedLine(lineBytes, controller, textDecoder, hooks, outboundRequests, inboundRequests, validateInboundMessage) {
420
+ const line = textDecoder.decode(lineBytes);
421
+ const trimmedLine = line.trim();
422
+ if (!trimmedLine) return;
423
+ let parsed;
424
+ try {
425
+ parsed = JSON.parse(trimmedLine);
426
+ } catch {
427
+ throw logBoundedInvalidMessage("ndjson_parse_error", lineBytes);
428
+ }
429
+ if (!isJsonRpcMessage(parsed)) {
430
+ throw logBoundedInvalidMessage("ndjson_invalid_message", lineBytes);
431
+ }
432
+ const isResponse = isJsonRpcResponseMessage(parsed);
433
+ if (!isResponse && !hasBoundedJsonStructure(parsed) || validateInboundMessage && !validateInboundMessage(parsed)) {
434
+ throw logBoundedInvalidMessage("ndjson_invalid_message", lineBytes);
435
+ }
436
+ if (isJsonRpcResponseMessage(parsed) && !outboundRequests?.consumeResponse(parsed.id)) {
437
+ throw logBoundedInvalidMessage("ndjson_invalid_message", lineBytes);
438
+ }
439
+ inboundRequests?.admit(parsed, lineBytes.byteLength + 1);
440
+ const message = installBoundedLogRedaction(parsed);
441
+ controller.enqueue(message);
442
+ reportReceivedMessage(lineBytes, message, hooks);
443
+ }
444
+ __name(handleBoundedLine, "handleBoundedLine");
445
+ function installBoundedLogRedaction(message) {
446
+ Object.defineProperty(message, inspect.custom, {
447
+ configurable: false,
448
+ enumerable: false,
449
+ value: inspectBoundedJsonRpcMessage,
450
+ writable: false
451
+ });
452
+ return message;
453
+ }
454
+ __name(installBoundedLogRedaction, "installBoundedLogRedaction");
455
+ function inspectBoundedJsonRpcMessage() {
456
+ return {
457
+ jsonrpc: "2.0",
458
+ messageType: "method" in this ? "id" in this ? "request" : "notification" : "response",
459
+ payloadOmitted: true
460
+ };
461
+ }
462
+ __name(inspectBoundedJsonRpcMessage, "inspectBoundedJsonRpcMessage");
463
+ function isJsonRpcMessage(value) {
464
+ if (!isRecord(value) || value["jsonrpc"] !== "2.0") return false;
465
+ const hasMethod = Object.hasOwn(value, "method");
466
+ const hasId = Object.hasOwn(value, "id");
467
+ if (hasMethod) {
468
+ return typeof value["method"] === "string" && Buffer.byteLength(value["method"]) <= MAX_JSON_RPC_METHOD_BYTES && (!hasId || isJsonRpcId(value["id"]));
469
+ }
470
+ if (!hasId || !isJsonRpcId(value["id"])) return false;
471
+ const hasResult = Object.hasOwn(value, "result");
472
+ const hasError = Object.hasOwn(value, "error");
473
+ if (hasResult === hasError) return false;
474
+ if (!hasError) return true;
475
+ const error = value["error"];
476
+ return isRecord(error) && typeof error["code"] === "number" && Number.isFinite(error["code"]) && typeof error["message"] === "string" && Buffer.byteLength(error["message"]) <= MAX_JSON_RPC_ERROR_MESSAGE_BYTES;
477
+ }
478
+ __name(isJsonRpcMessage, "isJsonRpcMessage");
479
+ function isRecord(value) {
480
+ return typeof value === "object" && value !== null && !Array.isArray(value);
481
+ }
482
+ __name(isRecord, "isRecord");
483
+ function hasBoundedJsonStructure(value) {
484
+ const stack = [{ value, depth: 1 }];
485
+ let nodes = 0;
486
+ while (stack.length > 0) {
487
+ const current = stack.pop();
488
+ nodes++;
489
+ if (nodes > MAX_JSON_NODES || current.depth > MAX_JSON_DEPTH) return false;
490
+ if (Array.isArray(current.value)) {
491
+ if (current.value.length > MAX_JSON_ARRAY_LENGTH) return false;
492
+ for (let index = current.value.length - 1; index >= 0; index--) {
493
+ if (nodes + stack.length >= MAX_JSON_NODES || current.depth + 1 > MAX_JSON_DEPTH) {
494
+ return false;
495
+ }
496
+ stack.push({
497
+ value: current.value[index],
498
+ depth: current.depth + 1
499
+ });
500
+ }
501
+ } else if (isRecord(current.value)) {
502
+ for (const key in current.value) {
503
+ if (!Object.hasOwn(current.value, key)) continue;
504
+ if (nodes + stack.length >= MAX_JSON_NODES || current.depth + 1 > MAX_JSON_DEPTH) {
505
+ return false;
506
+ }
507
+ stack.push({
508
+ value: current.value[key],
509
+ depth: current.depth + 1
510
+ });
511
+ }
512
+ }
513
+ }
514
+ return true;
515
+ }
516
+ __name(hasBoundedJsonStructure, "hasBoundedJsonStructure");
517
+ function isJsonRpcId(value) {
518
+ return value === null || typeof value === "string" && Buffer.byteLength(value) <= MAX_JSON_RPC_ID_BYTES || typeof value === "number" && Number.isFinite(value);
519
+ }
520
+ __name(isJsonRpcId, "isJsonRpcId");
521
+ function isJsonRpcRequestMessage(value) {
522
+ return "method" in value && "id" in value && typeof value.method === "string" && isJsonRpcId(value.id);
523
+ }
524
+ __name(isJsonRpcRequestMessage, "isJsonRpcRequestMessage");
525
+ function isJsonRpcResponseMessage(value) {
526
+ return !("method" in value) && "id" in value;
527
+ }
528
+ __name(isJsonRpcResponseMessage, "isJsonRpcResponseMessage");
529
+ var BoundedInboundRequestLedger = class {
530
+ constructor(limits) {
531
+ this.limits = limits;
532
+ }
533
+ static {
534
+ __name(this, "BoundedInboundRequestLedger");
535
+ }
536
+ requests = /* @__PURE__ */ new Map();
537
+ retainedBytes = 0;
538
+ admit(message, frameBytes) {
539
+ if (!isJsonRpcRequestMessage(message)) return;
540
+ const availableBytes = Math.max(
541
+ 0,
542
+ this.limits.maxQueuedBytes - this.retainedBytes
543
+ );
544
+ if (this.requests.has(message.id) || this.requests.size >= this.limits.maxQueuedMessages || frameBytes > availableBytes) {
545
+ throw new NdJsonQueueLimitError(
546
+ "inbound_request",
547
+ this.limits.maxQueuedMessages,
548
+ this.limits.maxQueuedBytes,
549
+ frameBytes,
550
+ this.requests.has(message.id) ? 0 : availableBytes
551
+ );
552
+ }
553
+ this.requests.set(message.id, frameBytes);
554
+ this.retainedBytes += frameBytes;
555
+ }
556
+ release(message) {
557
+ if (!isJsonRpcResponseMessage(message)) return;
558
+ const frameBytes = this.requests.get(message.id);
559
+ if (frameBytes === void 0) return;
560
+ this.requests.delete(message.id);
561
+ this.retainedBytes -= frameBytes;
562
+ }
563
+ clear() {
564
+ this.requests.clear();
565
+ this.retainedBytes = 0;
566
+ }
567
+ };
568
+ var BoundedOutstandingRequestLedger = class {
569
+ constructor(limits) {
570
+ this.limits = limits;
571
+ }
572
+ static {
573
+ __name(this, "BoundedOutstandingRequestLedger");
574
+ }
575
+ requests = /* @__PURE__ */ new Map();
576
+ retainedBytes = 0;
577
+ admit(id, frameBytes) {
578
+ const availableBytes = Math.max(
579
+ 0,
580
+ this.limits.maxQueuedBytes - this.retainedBytes
581
+ );
582
+ if (this.requests.has(id) || this.requests.size >= this.limits.maxQueuedMessages || frameBytes > availableBytes) {
583
+ throw new NdJsonQueueLimitError(
584
+ "outbound_request",
585
+ this.limits.maxQueuedMessages,
586
+ this.limits.maxQueuedBytes,
587
+ frameBytes,
588
+ this.requests.has(id) ? 0 : availableBytes
589
+ );
590
+ }
591
+ this.requests.set(id, frameBytes);
592
+ this.retainedBytes += frameBytes;
593
+ }
594
+ consumeResponse(id) {
595
+ return this.discard(id);
596
+ }
597
+ discard(id) {
598
+ const frameBytes = this.requests.get(id);
599
+ if (frameBytes === void 0) return false;
600
+ this.requests.delete(id);
601
+ this.retainedBytes -= frameBytes;
602
+ return true;
603
+ }
604
+ clear() {
605
+ this.requests.clear();
606
+ this.retainedBytes = 0;
607
+ }
608
+ };
609
+ function logBoundedInvalidMessage(errorKind, lineBytes) {
610
+ const bytes = jsonPayloadByteLength(lineBytes);
611
+ const digest = createHash("sha256").update(lineBytes.subarray(0, bytes)).digest("hex");
612
+ console.error("Failed to parse JSON message:", {
613
+ errorKind,
614
+ bytes,
615
+ sha256: digest,
616
+ payloadOmitted: true
617
+ });
618
+ return new NdJsonInvalidMessageError(errorKind, bytes);
619
+ }
620
+ __name(logBoundedInvalidMessage, "logBoundedInvalidMessage");
621
+ function reportReceivedMessage(lineBytes, message, hooks) {
622
+ const bytes = jsonPayloadByteLength(lineBytes);
623
+ callHook(hooks?.onMessageReceived, bytes);
624
+ callHook(hooks?.onMessageObserved, {
625
+ direction: "received",
626
+ bytes,
627
+ message
628
+ });
629
+ }
630
+ __name(reportReceivedMessage, "reportReceivedMessage");
631
+ function jsonPayloadByteLength(lineBytes) {
632
+ return lineBytes[lineBytes.byteLength - 1] === 13 ? lineBytes.byteLength - 1 : lineBytes.byteLength;
633
+ }
634
+ __name(jsonPayloadByteLength, "jsonPayloadByteLength");
635
+ function validateNdJsonStreamLimits(limits) {
636
+ const values = [
637
+ ["maxFrameBytes", limits.maxFrameBytes],
638
+ ["maxQueuedMessages", limits.maxQueuedMessages],
639
+ ["maxQueuedBytes", limits.maxQueuedBytes],
640
+ ...limits.queueSaturationGraceMs !== void 0 ? [["queueSaturationGraceMs", limits.queueSaturationGraceMs]] : []
641
+ ];
642
+ for (const [name, value] of values) {
643
+ if (!Number.isSafeInteger(value) || value <= 0) {
644
+ throw new RangeError(`${name} must be a positive safe integer`);
645
+ }
646
+ }
647
+ }
648
+ __name(validateNdJsonStreamLimits, "validateNdJsonStreamLimits");
649
+ function assertFrameSize(direction, limitBytes, observedBytes) {
650
+ if (observedBytes > limitBytes) {
651
+ throw new NdJsonFrameTooLargeError(direction, limitBytes, observedBytes);
652
+ }
653
+ }
654
+ __name(assertFrameSize, "assertFrameSize");
655
+ async function cancelReader(reader, reason) {
656
+ try {
657
+ await reader.cancel(reason);
658
+ } catch {
659
+ }
660
+ }
661
+ __name(cancelReader, "cancelReader");
662
+ function callHook(hook, value) {
663
+ try {
664
+ hook?.(value);
665
+ } catch {
666
+ }
667
+ }
668
+ __name(callHook, "callHook");
669
+ var BoundedFrameBuffer = class {
670
+ constructor(maxFrameBytes) {
671
+ this.maxFrameBytes = maxFrameBytes;
672
+ }
673
+ static {
674
+ __name(this, "BoundedFrameBuffer");
675
+ }
676
+ buffer;
677
+ length = 0;
678
+ get byteLength() {
679
+ return this.length;
680
+ }
681
+ append(bytes) {
682
+ const requiredBytes = this.length + bytes.byteLength;
683
+ assertFrameSize("received", this.maxFrameBytes, requiredBytes);
684
+ if (requiredBytes === 0) return;
685
+ if (!this.buffer || this.buffer.byteLength < requiredBytes) {
686
+ const doubledCapacity = Math.min(
687
+ this.maxFrameBytes,
688
+ Math.max(1024, (this.buffer?.byteLength ?? 0) * 2)
689
+ );
690
+ const next = new Uint8Array(Math.max(requiredBytes, doubledCapacity));
691
+ if (this.buffer) next.set(this.buffer.subarray(0, this.length));
692
+ this.buffer = next;
693
+ }
694
+ this.buffer.set(bytes, this.length);
695
+ this.length = requiredBytes;
696
+ }
697
+ take(current) {
698
+ if (this.length === 0) return current;
699
+ const line = new Uint8Array(this.length + current.byteLength);
700
+ line.set(this.buffer.subarray(0, this.length));
701
+ line.set(current, this.length);
702
+ this.clear();
703
+ return line;
704
+ }
705
+ isJsonWhitespaceLine(current) {
706
+ if (this.buffer) {
707
+ for (let index = 0; index < this.length; index++) {
708
+ if (!isJsonWhitespaceByte(this.buffer[index])) return false;
709
+ }
710
+ }
711
+ for (const byte of current) {
712
+ if (!isJsonWhitespaceByte(byte)) return false;
713
+ }
714
+ return true;
715
+ }
716
+ clear() {
717
+ this.buffer = void 0;
718
+ this.length = 0;
719
+ }
720
+ };
721
+ function isJsonWhitespaceByte(byte) {
722
+ return byte === 32 || byte === 9 || byte === 13;
723
+ }
724
+ __name(isJsonWhitespaceByte, "isJsonWhitespaceByte");
725
+
43
726
  // packages/acp-bridge/src/process-registry.ts
44
727
  init_esbuild_shims();
45
728
  import {
@@ -789,6 +1472,7 @@ var PreparedResponseBudget = class {
789
1472
  );
790
1473
  if (this.retainedCount >= this.limits.maxQueuedMessages || charge > availableBytes) {
791
1474
  throw new NdJsonQueueLimitError(
1475
+ "prepared_response",
792
1476
  this.limits.maxQueuedMessages,
793
1477
  this.limits.maxQueuedBytes,
794
1478
  charge,
@@ -859,6 +1543,7 @@ var OutboundOperationBudget = class {
859
1543
  );
860
1544
  if (this.retainedCount >= this.limits.maxQueuedMessages || charge > availableBytes) {
861
1545
  throw new NdJsonQueueLimitError(
1546
+ "outbound_operation",
862
1547
  this.limits.maxQueuedMessages,
863
1548
  this.limits.maxQueuedBytes,
864
1549
  charge,
@@ -1029,7 +1714,10 @@ __name(createStderrForwarder, "createStderrForwarder");
1029
1714
  function createSpawnChannelFactory(options = {}) {
1030
1715
  if (options.pipeLimits) validateNdJsonStreamLimits(options.pipeLimits);
1031
1716
  const processRegistry = options.processRegistry ?? new ProcessRegistry();
1032
- return async (workspaceCwd, childEnvOverrides) => {
1717
+ return async (workspaceCwd, childEnvOverrides, signal) => {
1718
+ if (signal?.aborted) {
1719
+ throw signal.reason instanceof Error ? signal.reason : new Error("ACP channel spawn was aborted");
1720
+ }
1033
1721
  const sourceEnv = options.sourceEnv ?? process.env;
1034
1722
  const cliEntry = sourceEnv["QWEN_CLI_ENTRY"] || process.argv[1];
1035
1723
  if (!cliEntry) {
@@ -1072,6 +1760,21 @@ function createSpawnChannelFactory(options = {}) {
1072
1760
  throw error;
1073
1761
  }
1074
1762
  const trackedChild = reservation.attach(child, { ownsProcessTree: true });
1763
+ const abortSpawn = /* @__PURE__ */ __name(() => {
1764
+ try {
1765
+ trackedChild.killSync();
1766
+ } catch {
1767
+ }
1768
+ }, "abortSpawn");
1769
+ signal?.addEventListener("abort", abortSpawn, { once: true });
1770
+ void trackedChild.exited.then(
1771
+ () => signal?.removeEventListener("abort", abortSpawn),
1772
+ () => signal?.removeEventListener("abort", abortSpawn)
1773
+ );
1774
+ if (signal?.aborted) {
1775
+ abortSpawn();
1776
+ throw signal.reason instanceof Error ? signal.reason : new Error("ACP channel spawn was aborted");
1777
+ }
1075
1778
  if (child.stderr) {
1076
1779
  const prefix = `[serve pid=${child.pid} cwd=${workspaceCwd}] `;
1077
1780
  const forwarder = createStderrForwarder({
@@ -1190,6 +1893,7 @@ function scrubChildEnv(source, scrubbed, overrides) {
1190
1893
  __name(scrubChildEnv, "scrubChildEnv");
1191
1894
 
1192
1895
  export {
1896
+ ndJsonStream,
1193
1897
  DAEMON_ACP_NDJSON_LIMITS,
1194
1898
  getAcpMemoryArgs,
1195
1899
  createStderrForwarder,
@@ -1199,11 +1903,11 @@ export {
1199
1903
  };
1200
1904
  /**
1201
1905
  * @license
1202
- * Copyright 2025 Qwen Team
1906
+ * Copyright 2026 Qwen Team
1203
1907
  * SPDX-License-Identifier: Apache-2.0
1204
1908
  */
1205
1909
  /**
1206
1910
  * @license
1207
- * Copyright 2026 Qwen Team
1911
+ * Copyright 2025 Qwen Team
1208
1912
  * SPDX-License-Identifier: Apache-2.0
1209
1913
  */