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

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 (360) hide show
  1. package/bundled/coordinate/SKILL.md +52 -0
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +10 -8
  3. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/features/arena.md +4 -3
  5. package/bundled/qc-helper/docs/features/commands.md +7 -6
  6. package/bundled/qc-helper/docs/features/dual-output.md +5 -0
  7. package/bundled/qc-helper/docs/features/headless.md +8 -0
  8. package/bundled/qc-helper/docs/features/multi-agent-coordination.md +30 -0
  9. package/bundled/qc-helper/docs/qwen-serve.md +7 -7
  10. package/bundled/review/SKILL.md +17 -7
  11. package/chunks/{MaxSizedBox-FVSXOMKP.js → MaxSizedBox-G7QPSZTF.js} +45 -44
  12. package/chunks/{StandaloneSessionPicker-Q27UAQ3X.js → StandaloneSessionPicker-3CTEPV7S.js} +65 -64
  13. package/chunks/{acp-startup-profiler-VNTFWYAC.js → acp-startup-profiler-JMJBZDVO.js} +2 -2
  14. package/chunks/{acpAgent-C6TV2BIU.js → acpAgent-43JURWOW.js} +1107 -285
  15. package/chunks/{agent-IPODFZTU.js → agent-MIY4LJJJ.js} +42 -41
  16. package/chunks/agent-headless-LWVA6GR5.js +87 -0
  17. package/chunks/{anthropicContentGenerator-D3Y4RFT4.js → anthropicContentGenerator-7HEP7Q5D.js} +8 -8
  18. package/chunks/{artifact-tool-N652YE4L.js → artifact-tool-M7UAJ5NT.js} +2 -2
  19. package/chunks/{askUserQuestion-ONW74PKJ.js → askUserQuestion-7G3LI3IZ.js} +2 -2
  20. package/chunks/{bridge-YX2R6VVM.js → bridge-PTTJEBNP.js} +47 -46
  21. package/chunks/{ca-ZLKAB4K3.js → ca-4CQ6MYNQ.js} +2 -1
  22. package/chunks/{channel-management-service-PHELKOW2.js → channel-management-service-PQ6SU56M.js} +6 -6
  23. package/chunks/channel-settings-store-IKK34GMH.js +102 -0
  24. package/chunks/{channel-worker-group-WQP4RCDO.js → channel-worker-group-WBRE33ZV.js} +8 -7
  25. package/chunks/{channel-worker-manager-MRDFAKIM.js → channel-worker-manager-V4LYVTPH.js} +8 -7
  26. package/chunks/{channel-worker-supervisor-IVSDIMI4.js → channel-worker-supervisor-YDAGW2RP.js} +6 -5
  27. package/chunks/{chunk-I7XTOGIS.js → chunk-23GFHEM3.js} +4 -4
  28. package/chunks/{chunk-IIJEYBNH.js → chunk-25OFRBH2.js} +188 -58
  29. package/chunks/{chunk-E2XBEWAK.js → chunk-2AAFGCWP.js} +650 -129
  30. package/chunks/{chunk-J6SZID63.js → chunk-2AZMF6G5.js} +2 -2
  31. package/chunks/{chunk-VVSMEI6C.js → chunk-2R2HYSUQ.js} +21 -102
  32. package/chunks/{chunk-DZUO626D.js → chunk-2XZWO53E.js} +3 -3
  33. package/chunks/{chunk-VKJ4KTPJ.js → chunk-3GCU5O2E.js} +1 -1
  34. package/chunks/{chunk-AJ6LQ5A6.js → chunk-3LHYTQ2R.js} +1 -1
  35. package/chunks/{chunk-LU7RJB2W.js → chunk-3SOTXJNO.js} +8 -8
  36. package/chunks/{chunk-SKSOLRPK.js → chunk-45HPDU3F.js} +3 -3
  37. package/chunks/{chunk-OWMAZHIX.js → chunk-47FQVRCO.js} +1 -1
  38. package/chunks/{chunk-K4QON4BH.js → chunk-4C4QSXE3.js} +23 -23
  39. package/chunks/{chunk-UMEB4DHF.js → chunk-4EX3DBFH.js} +4 -4
  40. package/chunks/{chunk-MFDYOYZZ.js → chunk-4MHDNGAV.js} +25 -2
  41. package/chunks/{chunk-SVY7G3WS.js → chunk-4PFKN7CQ.js} +7 -7
  42. package/chunks/{chunk-HV76SFIA.js → chunk-5HBFERG5.js} +3 -3
  43. package/chunks/{chunk-WAUGQKUU.js → chunk-6LYDH7VT.js} +9 -5
  44. package/chunks/{chunk-S6HYI3MF.js → chunk-6S52N6PG.js} +2 -2
  45. package/chunks/{chunk-FVKHVJZQ.js → chunk-732MOPEM.js} +1 -1
  46. package/chunks/{chunk-UHJ5S7DF.js → chunk-7QE3QFU3.js} +8 -8
  47. package/chunks/{chunk-WCG5O7IP.js → chunk-7SUQZ7QH.js} +2 -2
  48. package/chunks/{chunk-CQGGDOR5.js → chunk-AAOONL5N.js} +1 -1
  49. package/chunks/{chunk-B7SQOICP.js → chunk-AKLY5M2C.js} +4 -4
  50. package/chunks/{chunk-UVX4Y6IN.js → chunk-AQHNAA7E.js} +1 -1
  51. package/chunks/{chunk-DVQECPGW.js → chunk-BIXG46YI.js} +12 -12
  52. package/chunks/{chunk-4TRQPFDP.js → chunk-BJKREW56.js} +6 -8
  53. package/chunks/{chunk-7S4DYMFG.js → chunk-BNRNVMOT.js} +27 -18
  54. package/chunks/{chunk-PIA35YOG.js → chunk-BR6TUEKJ.js} +9 -8
  55. package/chunks/{chunk-Q3JQ7OSU.js → chunk-BTYS2JAY.js} +1 -1
  56. package/chunks/{chunk-H6XPXXMH.js → chunk-CQ35AJ4Z.js} +252 -254
  57. package/chunks/{chunk-COBO5EBO.js → chunk-CTQE2NB2.js} +1 -1
  58. package/chunks/{chunk-MTE6R5HF.js → chunk-DEKY5Y7V.js} +3 -3
  59. package/chunks/{chunk-BCZ2TTSH.js → chunk-DM4C3OX5.js} +1 -1
  60. package/chunks/{chunk-HDHLWOG5.js → chunk-DSKLWQHC.js} +2 -2
  61. package/chunks/{chunk-KKBPOU75.js → chunk-EFIMD5VA.js} +1 -1
  62. package/chunks/{chunk-CTJLZLB5.js → chunk-EN2J77G7.js} +1 -1
  63. package/chunks/{chunk-67EWJE77.js → chunk-ENEEQMGM.js} +1 -1
  64. package/chunks/{chunk-RKCPPZV6.js → chunk-EOBM4T2Z.js} +1 -1
  65. package/chunks/{chunk-7C7RTJPC.js → chunk-ESVSQKPY.js} +4 -4
  66. package/chunks/{chunk-CPG6P4GG.js → chunk-EYS3GGM3.js} +1 -1
  67. package/chunks/{chunk-4PYCZH2V.js → chunk-EYW54TBD.js} +3 -3
  68. package/chunks/{chunk-UXV3DYVT.js → chunk-F4T5J34H.js} +1 -1
  69. package/chunks/{chunk-FOGU3LJX.js → chunk-F6AOBFUN.js} +1 -1
  70. package/chunks/{chunk-ZBVS26BY.js → chunk-FPGTNKCP.js} +7 -5
  71. package/chunks/{chunk-BO2VRKY2.js → chunk-G64M7R2Y.js} +5 -5
  72. package/chunks/{chunk-EI3HZX6C.js → chunk-GJJQV4PY.js} +1 -1
  73. package/chunks/{chunk-CKASRHZI.js → chunk-GLWWPFTW.js} +1 -1
  74. package/chunks/{chunk-GM463R2B.js → chunk-GZGDJ4E6.js} +1 -1
  75. package/chunks/{chunk-W5UC37EE.js → chunk-HHGQGTJQ.js} +2 -0
  76. package/chunks/chunk-HHJLM3WQ.js +41 -0
  77. package/chunks/{chunk-2Z6PYTOK.js → chunk-HMCSRTDY.js} +1 -1
  78. package/chunks/{chunk-L2AFWWJE.js → chunk-HUE2M6VI.js} +50 -5
  79. package/chunks/{chunk-F32C6V5B.js → chunk-HZV75ET2.js} +3 -3
  80. package/chunks/{chunk-6ZRFAKXK.js → chunk-IEP44U2R.js} +1 -1
  81. package/chunks/{chunk-AOHJKPKL.js → chunk-IQFYO5BF.js} +1 -1
  82. package/chunks/{chunk-UDXSXLER.js → chunk-IW6RQPQB.js} +14 -4
  83. package/chunks/{chunk-XCWO3SMQ.js → chunk-IX7CFQGA.js} +3 -3
  84. package/chunks/{chunk-UO2N5QWP.js → chunk-J4EVBAB3.js} +27 -4
  85. package/chunks/{chunk-ZZCWJWTF.js → chunk-JHMFKJEP.js} +1 -1
  86. package/chunks/{chunk-Y3NNBNGM.js → chunk-JKEO6OQY.js} +4 -4
  87. package/chunks/{chunk-6Q5ABMTU.js → chunk-JLYYGKRN.js} +23 -19
  88. package/chunks/{chunk-HOUK5CR2.js → chunk-JOXXPM3X.js} +6 -6
  89. package/chunks/{chunk-E2FPSSKP.js → chunk-JPA7IDTE.js} +57 -13
  90. package/chunks/{chunk-OQTXYMKW.js → chunk-JS4Q5NG5.js} +3 -3
  91. package/chunks/{chunk-PBRVUF5B.js → chunk-K7JW6V5O.js} +1 -1
  92. package/chunks/{chunk-3P2LV43B.js → chunk-KCCODSAA.js} +3 -3
  93. package/chunks/{chunk-DREZZAZM.js → chunk-KCDQGIHS.js} +13 -5
  94. package/chunks/{chunk-KHLBIO6M.js → chunk-KFCTC5IJ.js} +11 -11
  95. package/chunks/{chunk-M6HMMKVG.js → chunk-KPVVWKF3.js} +1 -1
  96. package/chunks/{chunk-MVUQRLOH.js → chunk-KT4OWAAZ.js} +3 -3
  97. package/chunks/{chunk-W4RQUHY3.js → chunk-L2GTEEEU.js} +142 -23
  98. package/chunks/{chunk-X7XXP7CN.js → chunk-LA3FF7RO.js} +2 -2
  99. package/chunks/{chunk-DX3RGJMS.js → chunk-LT532KF4.js} +71 -12
  100. package/chunks/{chunk-JT7XS4YW.js → chunk-M2NMFAFR.js} +1 -1
  101. package/chunks/{chunk-YTFDX4PR.js → chunk-M6NDLY2T.js} +1 -1
  102. package/chunks/{chunk-VBU76UYP.js → chunk-MCHGE3EC.js} +302 -290
  103. package/chunks/{chunk-3WOZVMGJ.js → chunk-MDQSCFAZ.js} +7 -7
  104. package/chunks/{chunk-EKPKKXY2.js → chunk-MLZCPGDX.js} +1 -1
  105. package/chunks/{chunk-OIVKILPI.js → chunk-MPBRV3UU.js} +3 -0
  106. package/chunks/{chunk-VFMASYQA.js → chunk-MS7GNABG.js} +3 -0
  107. package/chunks/{chunk-2FRY5CRX.js → chunk-MWZYNOCG.js} +3 -3
  108. package/chunks/{chunk-ONSZH6VM.js → chunk-MZQ4I4AP.js} +2 -2
  109. package/chunks/{chunk-TG3IUQ6M.js → chunk-N3ZWGKXN.js} +4 -4
  110. package/chunks/{chunk-7MH4J33A.js → chunk-N7NBMAMW.js} +2 -2
  111. package/chunks/{chunk-EUNWC2VS.js → chunk-NC4O6UE6.js} +2 -2
  112. package/chunks/{chunk-4P66JPNV.js → chunk-NFSSQDB5.js} +5 -5
  113. package/chunks/{chunk-FTO3P6PZ.js → chunk-NM3E6GGL.js} +3 -3
  114. package/chunks/{chunk-FYTHSJDQ.js → chunk-NQPYPDOY.js} +2 -2
  115. package/chunks/{chunk-HUWENAHO.js → chunk-NWPO6I7V.js} +1 -1
  116. package/chunks/{chunk-SR7RZ4MS.js → chunk-O4BBDP2G.js} +2 -2
  117. package/chunks/{chunk-X76PVMPQ.js → chunk-OC5SKSNX.js} +3 -3
  118. package/chunks/{chunk-6S4NCX23.js → chunk-OGQERNHD.js} +3 -3
  119. package/chunks/{chunk-DA4HRSBW.js → chunk-OPBATTFQ.js} +1 -1
  120. package/chunks/{chunk-5BRSWOSC.js → chunk-P7KCJGBR.js} +4 -4
  121. package/chunks/{chunk-TZ3FN4B2.js → chunk-PBYVS6QT.js} +3 -3
  122. package/chunks/{chunk-VNNWAZSI.js → chunk-QG2IEE2E.js} +3 -3
  123. package/chunks/{chunk-XGLVQQ6F.js → chunk-QGZN4RYB.js} +4 -4
  124. package/chunks/{chunk-2UUMVNYT.js → chunk-QTI7SRXI.js} +3 -3
  125. package/chunks/{chunk-B2GJNDTV.js → chunk-QUESTNOP.js} +1 -1
  126. package/chunks/{chunk-6WIKTX4C.js → chunk-RUKNJEJO.js} +1 -1
  127. package/chunks/{chunk-6CONQTS2.js → chunk-RUVZZKDH.js} +1 -1
  128. package/chunks/{chunk-QUI267ZP.js → chunk-SAQHDAUJ.js} +42 -8
  129. package/chunks/{chunk-DCGYLIYO.js → chunk-SUTP6CZA.js} +5 -5
  130. package/chunks/{chunk-HGBUHVFO.js → chunk-T4576UW4.js} +3 -3
  131. package/chunks/{chunk-TZEZYNYD.js → chunk-T4FTABSW.js} +1 -1
  132. package/chunks/{chunk-SEZ556DZ.js → chunk-T6W4KACQ.js} +1 -1
  133. package/chunks/{chunk-EV3LZGGK.js → chunk-TKAEODJR.js} +572 -42
  134. package/chunks/{chunk-NV3F44FL.js → chunk-TNQLAI6I.js} +2 -2
  135. package/chunks/{chunk-A6PSUNCY.js → chunk-TNS2M7VL.js} +5 -5
  136. package/chunks/{chunk-ZUIOLZ4V.js → chunk-TTB6GBJ6.js} +8323 -2227
  137. package/chunks/{chunk-YGT2AUJ7.js → chunk-U2JLICUY.js} +33 -16
  138. package/chunks/{chunk-PDUIXSYP.js → chunk-U7QUDFPD.js} +7 -7
  139. package/chunks/{chunk-PWYEWOZM.js → chunk-UEUE6LJX.js} +1 -1
  140. package/chunks/{chunk-O3VWAZLP.js → chunk-UIZGNLBP.js} +770 -932
  141. package/chunks/{chunk-V3KCCRKA.js → chunk-UM57UTTV.js} +3 -3
  142. package/chunks/{chunk-EQL65XGA.js → chunk-V3LXMASR.js} +47 -21
  143. package/chunks/{chunk-LHEC5V6G.js → chunk-VRWOMUZM.js} +2 -2
  144. package/chunks/{chunk-5C7FDVHB.js → chunk-W2ITCESM.js} +176 -477
  145. package/chunks/{chunk-7OFX3YZW.js → chunk-W2PNY24B.js} +1 -1
  146. package/chunks/{chunk-T3FNRMFJ.js → chunk-X5GLCWPX.js} +1 -1
  147. package/chunks/{chunk-BSI645OU.js → chunk-XBLYC4MI.js} +3 -3
  148. package/chunks/{chunk-GNPNYXJB.js → chunk-XLQS3VI6.js} +2 -2
  149. package/chunks/{chunk-TCRQD7F6.js → chunk-XT6TGJFD.js} +1 -1
  150. package/chunks/{chunk-PYQADEFD.js → chunk-XTH2OMDS.js} +1 -1
  151. package/chunks/{chunk-PFWPBYL2.js → chunk-XUMBOJC2.js} +3 -3
  152. package/chunks/{chunk-P6RBCBBE.js → chunk-YIKMBYMT.js} +3 -3
  153. package/chunks/{chunk-WOJZWRAZ.js → chunk-YRLW2MSX.js} +1 -1
  154. package/chunks/{chunk-7WUUNAJP.js → chunk-YVVIFFU4.js} +3 -3
  155. package/chunks/chunk-Z7B6SRPM.js +32 -0
  156. package/chunks/{chunk-IA7TGCN2.js → chunk-ZV4XVYL3.js} +4 -4
  157. package/chunks/{chunk-PJRW65JO.js → chunk-ZWPWQEF5.js} +1 -1
  158. package/chunks/{computer-use-5LGM2YO5.js → computer-use-7TIKEXBX.js} +42 -41
  159. package/chunks/{config-utils-ULCSRMWD.js → config-utils-6MVJ54TY.js} +6 -6
  160. package/chunks/{contextCommand-JT44ADUD.js → contextCommand-5QKI7MRY.js} +44 -43
  161. package/chunks/{core-runtime-XHEJM2VB.js → core-runtime-USS7ZF3H.js} +42 -41
  162. package/chunks/{create-sub-session-QIDZUOPU.js → create-sub-session-Y4WYDZGC.js} +2 -2
  163. package/chunks/{create-sub-session-UQBDJF5G.js → create-sub-session-ZD2F3BH2.js} +42 -41
  164. package/chunks/{cron-create-VONA5JYY.js → cron-create-ZOVA3CC2.js} +4 -4
  165. package/chunks/{cron-delete-5JXSP2MI.js → cron-delete-7Z3H4LJY.js} +4 -4
  166. package/chunks/{cron-list-KE4F2CIR.js → cron-list-UHGX3IQG.js} +4 -4
  167. package/chunks/{daemon-GWD7BT6E.js → daemon-Y3NOHFKQ.js} +38 -7
  168. package/chunks/daemon-status-provider-PMP4J7BC.js +103 -0
  169. package/chunks/daemon-trust-policy-2252VKXI.js +99 -0
  170. package/chunks/{daemon-trust-policy-monitor-LUMB46CL.js → daemon-trust-policy-monitor-OSGGKJXT.js} +49 -48
  171. package/chunks/{de-LIW4XVLN.js → de-UBEBKG6V.js} +2 -1
  172. package/chunks/{deferred-core-runtime-BFB6YRTZ.js → deferred-core-runtime-3VD4V6YZ.js} +42 -41
  173. package/chunks/{display-image-NQRSIBXM.js → display-image-ZE3GZNIK.js} +4 -4
  174. package/chunks/{dist-Z3CS4OVP.js → dist-AVUYBK7L.js} +11 -5
  175. package/chunks/{dist-6BMOAE3Z.js → dist-BNWP6IZL.js} +4 -4
  176. package/chunks/{dist-3NTTUAHT.js → dist-EFJILGIS.js} +3 -3
  177. package/chunks/{dist-EZE3V3Q7.js → dist-MAIUUIWN.js} +3 -3
  178. package/chunks/{dist-B2CGTW6T.js → dist-NPS52B2V.js} +3 -3
  179. package/chunks/{dist-J47AXBZC.js → dist-PKSRQAR2.js} +3 -3
  180. package/chunks/{dist-OTUO3AS2.js → dist-Q2WJ2IZU.js} +13 -5
  181. package/chunks/{dist-EWW3J4HQ.js → dist-ZWDH5HLS.js} +3 -3
  182. package/chunks/{earlyInputCapture-GPULMO2H.js → earlyInputCapture-ER4HGLJN.js} +43 -42
  183. package/chunks/{edit-XYMQNMWU.js → edit-B3MT7O53.js} +42 -41
  184. package/chunks/{en-SY5GTIGX.js → en-X6YV7GME.js} +2 -1
  185. package/chunks/{enter-worktree-TIASENJP.js → enter-worktree-WVIYVSDJ.js} +42 -41
  186. package/chunks/{enterPlanMode-K6LTIGWM.js → enterPlanMode-DDCIM6HA.js} +42 -41
  187. package/chunks/{environment-3XX7LUMG.js → environment-LITGMOUP.js} +45 -44
  188. package/chunks/{errors-VTFZ6M4W.js → errors-E5CIOR2I.js} +44 -43
  189. package/chunks/{exit-worktree-IBKPEHUJ.js → exit-worktree-NQ2A6URE.js} +42 -41
  190. package/chunks/exitPlanMode-YXSWN4D3.js +85 -0
  191. package/chunks/{fast-path-QOBSDLA6.js → fast-path-PH3DBS6X.js} +3 -3
  192. package/chunks/{fast-path-settings-RPAVBD7P.js → fast-path-settings-LNOFM2YP.js} +2 -2
  193. package/chunks/{fr-RQFO7U4P.js → fr-VENTC2BS.js} +2 -1
  194. package/chunks/{gemini-OCRXJUWF.js → gemini-4YPO4ADY.js} +88 -87
  195. package/chunks/{geminiContentGenerator-VHSPCS6F.js → geminiContentGenerator-GMSVVXOU.js} +6 -6
  196. package/chunks/{glob-BVX4L3CM.js → glob-3Y3VHLM2.js} +42 -41
  197. package/chunks/{goal-tools-SWNB6GP4.js → goal-tools-JDK2SNMV.js} +4 -4
  198. package/chunks/{grep-CJSUX5NJ.js → grep-VUHUDZYG.js} +42 -41
  199. package/chunks/handleAutoUpdate-OBFFPWSJ.js +94 -0
  200. package/chunks/{i18n-BPEDXABF.js → i18n-4PJA5KKU.js} +43 -42
  201. package/chunks/{image-gen-DEEXNNA2.js → image-gen-4IFV4HES.js} +10 -10
  202. package/chunks/initializer-ZTY3VSWL.js +100 -0
  203. package/chunks/{installationInfo-JCUKPGDB.js → installationInfo-6USRNCD2.js} +43 -42
  204. package/chunks/{ja-KOZKHJHZ.js → ja-QHT4EQTO.js} +2 -1
  205. package/chunks/{keychain-token-storage-TVAMTNP7.js → keychain-token-storage-JTWUYFU7.js} +2 -2
  206. package/chunks/list-U2ZDKYWN.js +103 -0
  207. package/chunks/{list-agents-Z4WABFDZ.js → list-agents-4GQ2XNEU.js} +2 -2
  208. package/chunks/loadedSettingsAdapter-WW4HIVLO.js +97 -0
  209. package/chunks/{loggingContentGenerator-MOOIBKKR.js → loggingContentGenerator-XXG6YWUE.js} +46 -27
  210. package/chunks/{loop-wakeup-UZ5RL5Y2.js → loop-wakeup-HOQI3K5D.js} +5 -5
  211. package/chunks/{ls-TVHDGIES.js → ls-O4VBQRG7.js} +4 -4
  212. package/chunks/{lsp-CVN6OQPI.js → lsp-APQJ5ZEZ.js} +2 -2
  213. package/chunks/{managed-npm-update-7K2LDL7V.js → managed-npm-update-7GM2LPLL.js} +43 -42
  214. package/chunks/mcp-7KZW2T5P.js +97 -0
  215. package/chunks/{monitor-EXI73A5P.js → monitor-RQROQHLD.js} +42 -41
  216. package/chunks/nonInteractiveCli-U7JNJGS6.js +163 -0
  217. package/chunks/{notebook-edit-GKKQJQQU.js → notebook-edit-XQA6YCH2.js} +42 -41
  218. package/chunks/{openaiContentGenerator-NSPCP4FY.js → openaiContentGenerator-BZW2IB42.js} +29 -29
  219. package/chunks/{pidfile-IU4ETBRE.js → pidfile-NX5VZ3IK.js} +43 -42
  220. package/chunks/{processUtils-GZOVMFK4.js → processUtils-M635AD23.js} +2 -2
  221. package/chunks/{pt-U6AOCTMF.js → pt-VL3I5RNY.js} +2 -1
  222. package/chunks/{qwenContentGenerator-BBTNTOMB.js → qwenContentGenerator-KHJ73E2C.js} +48 -48
  223. package/chunks/{qwenOAuth2-D6L2W25Z.js → qwenOAuth2-QMK25XO7.js} +9 -9
  224. package/chunks/read-file-6LKIKKXD.js +32 -0
  225. package/chunks/{read-mcp-resource-PZ4ZF6YL.js → read-mcp-resource-TJSJRH4F.js} +2 -2
  226. package/chunks/{record-artifact-P4HFMS7X.js → record-artifact-FXF5LHPE.js} +3 -3
  227. package/chunks/{resumeHistoryUtils-VUY4B6BO.js → resumeHistoryUtils-RR2KEVH5.js} +49 -48
  228. package/chunks/ripGrep-CF2WRBYV.js +85 -0
  229. package/chunks/{ru-CMX4UMYP.js → ru-4RCKL4PY.js} +2 -1
  230. package/chunks/{run-qwen-serve-7BDTKCFP.js → run-qwen-serve-L5TF57J4.js} +57 -50
  231. package/chunks/{runtime-VMWGIAX7.js → runtime-3RE3BPR4.js} +55 -54
  232. package/chunks/{scheduler-MUKPARY5.js → scheduler-LXQZAMYT.js} +44 -43
  233. package/chunks/{sdk-exporters-http-XVTZQRCE.js → sdk-exporters-http-7SYSCGEO.js} +3 -3
  234. package/chunks/{sdk-impl-7W7AKCS4.js → sdk-impl-VZI6M6EH.js} +6 -6
  235. package/chunks/{send-message-CAMSLG2L.js → send-message-RBYLV5NY.js} +6 -6
  236. package/chunks/{serve-7G5R52HX.js → serve-5D4S7GIA.js} +49 -48
  237. package/chunks/{server-FTSWAHXF.js → server-ILZB6TTC.js} +391 -172
  238. package/chunks/{session-FLUDUMZJ.js → session-SXCZITZ4.js} +114 -94
  239. package/chunks/{settings-CJVTBEW7.js → settings-4RQB3OVF.js} +48 -47
  240. package/chunks/{shell-2DOQIYEE.js → shell-FCTR3OI2.js} +42 -41
  241. package/chunks/{skill-2GOEKN34.js → skill-IAKHPD5H.js} +19 -19
  242. package/chunks/{skill-settings-5FEOMZQS.js → skill-settings-SOR23NOP.js} +48 -47
  243. package/chunks/{spawnChannel-VJRIO75F.js → spawnChannel-I6VAWYQJ.js} +45 -43
  244. package/chunks/{standalone-update-OC5IKJGY.js → standalone-update-5NN3MTYH.js} +44 -43
  245. package/chunks/{startInteractiveUI-HFHFI2ZR.js → startInteractiveUI-OYGL3NZJ.js} +589 -329
  246. package/chunks/{syntheticOutput-PEBJQYJV.js → syntheticOutput-D3Z64LJC.js} +3 -3
  247. package/chunks/{task-create-5NWCQSJF.js → task-create-URFZ5EUX.js} +10 -10
  248. package/chunks/{task-list-53265TRZ.js → task-list-6JDFMPUW.js} +5 -5
  249. package/chunks/{task-stop-FPCOIRYX.js → task-stop-HHUGCD25.js} +2 -2
  250. package/chunks/{task-update-5HN577LS.js → task-update-LCJM3EYG.js} +10 -10
  251. package/chunks/{team-create-ZWAXZR75.js → team-create-J4JP6AXN.js} +44 -43
  252. package/chunks/{team-delete-MMQB4OSC.js → team-delete-PZGGBQLM.js} +5 -5
  253. package/chunks/{team-plan-approval-LH23GCUV.js → team-plan-approval-7BEAIR2H.js} +42 -41
  254. package/chunks/{terminal-image-renderer-7L3GCHD5.js → terminal-image-renderer-SGGTG5LN.js} +44 -43
  255. package/chunks/theme-manager-67TSB7LH.js +89 -0
  256. package/chunks/{todoWrite-JGV6VLOX.js → todoWrite-WINAZSZI.js} +4 -4
  257. package/chunks/{tool-search-BZOZHGKI.js → tool-search-XPOFDWOX.js} +19 -19
  258. package/chunks/{total-session-admission-KP4CJTSB.js → total-session-admission-SZJFAM25.js} +47 -46
  259. package/chunks/{trustedFolders-57QEHV67.js → trustedFolders-44NTYYV4.js} +43 -42
  260. package/chunks/{update-relaunch-53MODFE4.js → update-relaunch-K33Q3WEH.js} +5 -5
  261. package/chunks/{updateCheck-4QDI7CUZ.js → updateCheck-VBRNPLS4.js} +45 -44
  262. package/chunks/{useAutoAcceptIndicator-VVQUPTM5.js → useAutoAcceptIndicator-AUNRB5S7.js} +52 -51
  263. package/chunks/{validateNonInterActiveAuth-KKVD5E43.js → validateNonInterActiveAuth-WTO36MTA.js} +83 -82
  264. package/chunks/{version-IB5ASN63.js → version-JZA6HYPI.js} +1 -1
  265. package/chunks/{web-fetch-APSFQMIH.js → web-fetch-LLHPV2IR.js} +19 -19
  266. package/chunks/{web-search-EWEHMFIW.js → web-search-4HCHRZ3U.js} +11 -11
  267. package/chunks/{workflow-LA4ACRO4.js → workflow-YI74QTWW.js} +43 -42
  268. package/chunks/workspace-providers-status-CI3AO2BH.js +100 -0
  269. package/chunks/{workspace-registration-store-WSLHN7HA.js → workspace-registration-store-KPIKXDHA.js} +1 -1
  270. package/chunks/{workspace-registry-5HXRV7L4.js → workspace-registry-XE22QDE6.js} +47 -46
  271. package/chunks/{workspace-service-SSP4PLBC.js → workspace-service-WI2FD72A.js} +54 -53
  272. package/chunks/workspace-skills-status-FFZU6FXL.js +100 -0
  273. package/chunks/{workspace-trust-reconciler-PASUNEKQ.js → workspace-trust-reconciler-GJLNXR2U.js} +54 -53
  274. package/chunks/write-file-IEAC3XC3.js +87 -0
  275. package/chunks/{zh-AGL2FVBI.js → zh-LMSTK4WD.js} +2 -1
  276. package/chunks/{zh-TW-KI66MHQY.js → zh-TW-SQ4HTSCW.js} +2 -1
  277. package/chunks/{zoom-image-NAVVM4R2.js → zoom-image-GTVVT25J.js} +15 -15
  278. package/cli.js +13 -13
  279. package/locales/ca.js +1 -0
  280. package/locales/de.js +1 -0
  281. package/locales/en.js +1 -0
  282. package/locales/fr.js +1 -0
  283. package/locales/ja.js +1 -0
  284. package/locales/pt.js +1 -0
  285. package/locales/ru.js +1 -0
  286. package/locales/zh-TW.js +1 -0
  287. package/locales/zh.js +1 -0
  288. package/package.json +3 -3
  289. package/web-shell/assets/{arc-BGiARkbG.js → arc-B13-S0Yo.js} +1 -1
  290. package/web-shell/assets/{architectureDiagram-3BPJPVTR-3QBZDeqg.js → architectureDiagram-3BPJPVTR-CHvWNlVW.js} +1 -1
  291. package/web-shell/assets/{blockDiagram-GPEHLZMM-CbJI0j0o.js → blockDiagram-GPEHLZMM-CXebOlXF.js} +1 -1
  292. package/web-shell/assets/{c4Diagram-AAUBKEIU-pita1IYy.js → c4Diagram-AAUBKEIU-BQpx4y3Q.js} +1 -1
  293. package/web-shell/assets/channel-BB_Hm8Rf.js +1 -0
  294. package/web-shell/assets/{chunk-2J33WTMH-WzTFww1i.js → chunk-2J33WTMH-Cak1exSv.js} +1 -1
  295. package/web-shell/assets/{chunk-4BX2VUAB-8TIRo9bL.js → chunk-4BX2VUAB-BIc8BV5_.js} +1 -1
  296. package/web-shell/assets/{chunk-55IACEB6-CuCr34qf.js → chunk-55IACEB6-DoeJ5BL1.js} +1 -1
  297. package/web-shell/assets/{chunk-727SXJPM-Bb_xWEAx.js → chunk-727SXJPM-BDR_wYSu.js} +1 -1
  298. package/web-shell/assets/{chunk-AQP2D5EJ-C8T1b2Qw.js → chunk-AQP2D5EJ-BhRRGRq1.js} +1 -1
  299. package/web-shell/assets/{chunk-FMBD7UC4-kjpyMkNM.js → chunk-FMBD7UC4-BJGAwVXr.js} +1 -1
  300. package/web-shell/assets/{chunk-ND2GUHAM-Dm35jDmi.js → chunk-ND2GUHAM-vhE73bsD.js} +1 -1
  301. package/web-shell/assets/{chunk-QZHKN3VN-BPVKwuby.js → chunk-QZHKN3VN-BuTBZsdR.js} +1 -1
  302. package/web-shell/assets/classDiagram-4FO5ZUOK-B_hFK54Y.js +1 -0
  303. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B_hFK54Y.js +1 -0
  304. package/web-shell/assets/{cose-bilkent-S5V4N54A-M-7J9Xyz.js → cose-bilkent-S5V4N54A-CVHKipHP.js} +1 -1
  305. package/web-shell/assets/{dagre-BM42HDAG-u6rmS689.js → dagre-BM42HDAG-C1DPa8SV.js} +1 -1
  306. package/web-shell/assets/{diagram-2AECGRRQ-nAisfOUB.js → diagram-2AECGRRQ-BYP_QxkT.js} +1 -1
  307. package/web-shell/assets/{diagram-5GNKFQAL-CpobRd3l.js → diagram-5GNKFQAL-Cray7ruQ.js} +1 -1
  308. package/web-shell/assets/{diagram-KO2AKTUF-B82W_wPq.js → diagram-KO2AKTUF-Ds4vJANi.js} +1 -1
  309. package/web-shell/assets/{diagram-LMA3HP47-ClTkmPW6.js → diagram-LMA3HP47-DxFrDykH.js} +1 -1
  310. package/web-shell/assets/{diagram-OG6HWLK6-42fbxGPW.js → diagram-OG6HWLK6-BdIO-pF_.js} +1 -1
  311. package/web-shell/assets/{erDiagram-TEJ5UH35-8_zQfzlQ.js → erDiagram-TEJ5UH35-5JA8KDYV.js} +1 -1
  312. package/web-shell/assets/{flowDiagram-I6XJVG4X-DQDoN_oV.js → flowDiagram-I6XJVG4X-DL4drKro.js} +1 -1
  313. package/web-shell/assets/{ganttDiagram-6RSMTGT7-Cqd646fB.js → ganttDiagram-6RSMTGT7-ijX2DD6_.js} +1 -1
  314. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-B6qWs_tS.js → gitGraphDiagram-PVQCEYII-_lPsFLFF.js} +1 -1
  315. package/web-shell/assets/index-BTwNYZkp.js +1785 -0
  316. package/web-shell/assets/{index-BCeQB_tk.js → index-C-YoqYbs.js} +1 -1
  317. package/web-shell/assets/{index-eYjX7fQg.css → index-dHAFxPHb.css} +1 -1
  318. package/web-shell/assets/{infoDiagram-5YYISTIA-BVyDAHuu.js → infoDiagram-5YYISTIA-COFClLab.js} +1 -1
  319. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BBHM904I.js → ishikawaDiagram-YF4QCWOH-Div9KOgO.js} +1 -1
  320. package/web-shell/assets/{journeyDiagram-JHISSGLW-B5Bv5Z_0.js → journeyDiagram-JHISSGLW-VAw5u0wc.js} +1 -1
  321. package/web-shell/assets/{kanban-definition-UN3LZRKU-BwSTb0YF.js → kanban-definition-UN3LZRKU-CncCn8Nl.js} +1 -1
  322. package/web-shell/assets/{linear-CHtTm36c.js → linear-D6ad7e_k.js} +1 -1
  323. package/web-shell/assets/{mermaid.core-vBCuAUkf.js → mermaid.core-BV1IECGb.js} +5 -5
  324. package/web-shell/assets/{mindmap-definition-RKZ34NQL-CNfKHJrA.js → mindmap-definition-RKZ34NQL-a3jeNgPr.js} +1 -1
  325. package/web-shell/assets/{pieDiagram-4H26LBE5-DT6QMLhc.js → pieDiagram-4H26LBE5-DsVRY5BW.js} +1 -1
  326. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Rb2Dar4i.js → quadrantDiagram-W4KKPZXB-D6zgexJK.js} +1 -1
  327. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CA9YzPUY.js → requirementDiagram-4Y6WPE33-VEpSwJjn.js} +1 -1
  328. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CJ5SkhJw.js → sankeyDiagram-5OEKKPKP-CYEuOFne.js} +1 -1
  329. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-T31AiuVM.js → sequenceDiagram-3UESZ5HK-CCg0lI-9.js} +1 -1
  330. package/web-shell/assets/{stateDiagram-AJRCARHV-f7Xpd_Xh.js → stateDiagram-AJRCARHV-BHXPsL0B.js} +1 -1
  331. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-eTG8D0QT.js +1 -0
  332. package/web-shell/assets/{timeline-definition-PNZ67QCA-dCwsTscr.js → timeline-definition-PNZ67QCA-gqTf9a0k.js} +1 -1
  333. package/web-shell/assets/{vennDiagram-CIIHVFJN-SQtBFYkQ.js → vennDiagram-CIIHVFJN-C4DXXkBh.js} +1 -1
  334. package/web-shell/assets/{wardley-L42UT6IY-Dfh4eW0B.js → wardley-L42UT6IY-CMK46EiX.js} +1 -1
  335. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BWBKXBsC.js → wardleyDiagram-YWT4CUSO-DTk1Gzt9.js} +1 -1
  336. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DVqzcaxh.js → xychartDiagram-2RQKCTM6-BcJsM1dH.js} +1 -1
  337. package/web-shell/index.html +2 -2
  338. package/chunks/agent-headless-JOL3STCJ.js +0 -86
  339. package/chunks/channel-settings-store-CDUEUDYS.js +0 -101
  340. package/chunks/chunk-PDPFQ2FO.js +0 -156
  341. package/chunks/daemon-status-provider-67M3LFIJ.js +0 -102
  342. package/chunks/daemon-trust-policy-3XCIBLLT.js +0 -98
  343. package/chunks/exitPlanMode-2U23CG2U.js +0 -84
  344. package/chunks/handleAutoUpdate-2F3RWBIT.js +0 -93
  345. package/chunks/initializer-QRD7X25L.js +0 -99
  346. package/chunks/list-G6SHYRHQ.js +0 -102
  347. package/chunks/loadedSettingsAdapter-S4EPYP35.js +0 -96
  348. package/chunks/mcp-R2Z6IKPN.js +0 -96
  349. package/chunks/nonInteractiveCli-E6CEE6IG.js +0 -162
  350. package/chunks/read-file-S2BROE4F.js +0 -32
  351. package/chunks/ripGrep-V4EX6SLA.js +0 -84
  352. package/chunks/theme-manager-7WO6DXIT.js +0 -88
  353. package/chunks/workspace-providers-status-5C3HGWHF.js +0 -99
  354. package/chunks/workspace-skills-status-DX7CA34S.js +0 -99
  355. package/chunks/write-file-3N2WAE3F.js +0 -86
  356. package/web-shell/assets/channel-3vYOf77E.js +0 -1
  357. package/web-shell/assets/classDiagram-4FO5ZUOK-Dr2aqxvr.js +0 -1
  358. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Dr2aqxvr.js +0 -1
  359. package/web-shell/assets/index-Dv9zBWC9.js +0 -1775
  360. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-wucbNzkr.js +0 -1
@@ -2,13 +2,25 @@
2
2
  "use strict";
3
3
  import {
4
4
  MissingCliEntryError
5
- } from "./chunk-DA4HRSBW.js";
5
+ } from "./chunk-OPBATTFQ.js";
6
6
  import {
7
7
  redactLogCredentials
8
8
  } from "./chunk-M5GB774H.js";
9
9
  import {
10
10
  EXTERNAL_TOOL_GUARD_TOKEN_ENV
11
11
  } from "./chunk-BKHCW2BI.js";
12
+ import {
13
+ CLIENT_METHODS,
14
+ zCreateTerminalRequest,
15
+ zKillTerminalCommandRequest,
16
+ zReadTextFileRequest,
17
+ zReleaseTerminalRequest,
18
+ zRequestPermissionRequest,
19
+ zSessionNotification,
20
+ zTerminalOutputRequest,
21
+ zWaitForTerminalExitRequest,
22
+ zWriteTextFileRequest
23
+ } from "./chunk-IW6RQPQB.js";
12
24
  import {
13
25
  init_esbuild_shims
14
26
  } from "./chunk-5O2XNYP6.js";
@@ -26,6 +38,7 @@ import { getHeapStatistics } from "node:v8";
26
38
  // packages/acp-bridge/src/ndJsonStream.ts
27
39
  init_esbuild_shims();
28
40
  import { createHash } from "node:crypto";
41
+ import { inspect } from "node:util";
29
42
  var NdJsonFrameTooLargeError = class extends Error {
30
43
  constructor(direction, limitBytes, observedBytes) {
31
44
  super(
@@ -68,31 +81,74 @@ var NdJsonIncompleteFrameError = class extends Error {
68
81
  }
69
82
  code = "ndjson_incomplete_frame";
70
83
  };
71
- function ndJsonStream(output, input, hooks, limits) {
84
+ var NdJsonUnexpectedEofError = class extends Error {
85
+ static {
86
+ __name(this, "NdJsonUnexpectedEofError");
87
+ }
88
+ code = "ndjson_unexpected_eof";
89
+ constructor() {
90
+ super("NDJSON input ended while the bounded transport was active");
91
+ this.name = "NdJsonUnexpectedEofError";
92
+ }
93
+ };
94
+ var NdJsonInvalidMessageError = class extends Error {
95
+ constructor(code, observedBytes) {
96
+ super(`NDJSON input contains an invalid ${observedBytes}-byte message`);
97
+ this.code = code;
98
+ this.observedBytes = observedBytes;
99
+ this.name = "NdJsonInvalidMessageError";
100
+ }
101
+ static {
102
+ __name(this, "NdJsonInvalidMessageError");
103
+ }
104
+ };
105
+ var MAX_JSON_RPC_METHOD_BYTES = 1024;
106
+ var MAX_JSON_RPC_ID_BYTES = 256;
107
+ var MAX_JSON_RPC_ERROR_MESSAGE_BYTES = 1024;
108
+ var MAX_JSON_DEPTH = 64;
109
+ var MAX_JSON_NODES = 1e4;
110
+ var MAX_JSON_ARRAY_LENGTH = 4096;
111
+ function ndJsonStream(output, input, hooks, limits, validateInboundMessage, fatalCleanEof = false) {
72
112
  const textEncoder = new TextEncoder();
73
113
  const textDecoder = new TextDecoder();
74
114
  if (limits) validateNdJsonStreamLimits(limits);
75
- const readable = limits ? createBoundedReadable(input, textDecoder, hooks, limits) : createLegacyReadable(input, textDecoder, hooks);
115
+ const outboundRequests = limits ? new BoundedOutstandingRequestLedger(limits) : void 0;
116
+ const inboundRequests = limits ? new BoundedInboundRequestLedger(limits) : void 0;
117
+ const readable = limits ? createBoundedReadable(
118
+ input,
119
+ textDecoder,
120
+ hooks,
121
+ limits,
122
+ outboundRequests,
123
+ inboundRequests,
124
+ validateInboundMessage,
125
+ fatalCleanEof
126
+ ) : createLegacyReadable(input, textDecoder, hooks);
76
127
  const writable = new WritableStream({
77
128
  async write(message) {
78
- const content = JSON.stringify(message);
79
- const payload = textEncoder.encode(content);
80
- const frameBytes = payload.byteLength + 1;
81
- if (limits && frameBytes > limits.maxFrameBytes) {
82
- const error = new NdJsonFrameTooLargeError(
83
- "sent",
84
- limits.maxFrameBytes,
85
- frameBytes
86
- );
87
- callHook(hooks?.onTransportError, error);
88
- throw error;
89
- }
90
- const frame = new Uint8Array(frameBytes);
91
- frame.set(payload);
92
- frame[payload.byteLength] = 10;
93
- const writer = output.getWriter();
129
+ let writer;
130
+ let expectedResponseId;
94
131
  try {
132
+ const content = JSON.stringify(message);
133
+ const payload = textEncoder.encode(content);
134
+ const frameBytes = payload.byteLength + 1;
135
+ if (limits && frameBytes > limits.maxFrameBytes) {
136
+ throw new NdJsonFrameTooLargeError(
137
+ "sent",
138
+ limits.maxFrameBytes,
139
+ frameBytes
140
+ );
141
+ }
142
+ const frame = new Uint8Array(frameBytes);
143
+ frame.set(payload);
144
+ frame[payload.byteLength] = 10;
145
+ if (outboundRequests && isJsonRpcRequestMessage(message)) {
146
+ outboundRequests.admit(message.id, frameBytes);
147
+ expectedResponseId = message.id;
148
+ }
149
+ writer = output.getWriter();
95
150
  await writer.write(frame);
151
+ inboundRequests?.release(message);
96
152
  callHook(hooks?.onMessageSent, payload.byteLength);
97
153
  callHook(hooks?.onMessageObserved, {
98
154
  direction: "sent",
@@ -100,10 +156,13 @@ function ndJsonStream(output, input, hooks, limits) {
100
156
  message
101
157
  });
102
158
  } catch (error) {
159
+ if (expectedResponseId !== void 0) {
160
+ outboundRequests?.discard(expectedResponseId);
161
+ }
103
162
  if (limits) callHook(hooks?.onTransportError, error);
104
163
  throw error;
105
164
  } finally {
106
- writer.releaseLock();
165
+ writer?.releaseLock();
107
166
  }
108
167
  }
109
168
  });
@@ -130,7 +189,7 @@ function createLegacyReadable(input, textDecoder, hooks) {
130
189
  });
131
190
  }
132
191
  __name(createLegacyReadable, "createLegacyReadable");
133
- function createBoundedReadable(input, textDecoder, hooks, limits) {
192
+ function createBoundedReadable(input, textDecoder, hooks, limits, outboundRequests, inboundRequests, validateInboundMessage, fatalCleanEof) {
134
193
  const pending = new BoundedFrameBuffer(limits.maxFrameBytes);
135
194
  const minimumQueueCharge = Math.ceil(
136
195
  limits.maxQueuedBytes / limits.maxQueuedMessages
@@ -149,6 +208,10 @@ function createBoundedReadable(input, textDecoder, hooks, limits) {
149
208
  textDecoder,
150
209
  hooks,
151
210
  limits,
211
+ outboundRequests,
212
+ inboundRequests,
213
+ validateInboundMessage,
214
+ fatalCleanEof,
152
215
  minimumQueueCharge,
153
216
  (charge) => {
154
217
  nextQueueCharge = charge;
@@ -169,7 +232,7 @@ function createBoundedReadable(input, textDecoder, hooks, limits) {
169
232
  );
170
233
  }
171
234
  __name(createBoundedReadable, "createBoundedReadable");
172
- async function pumpBoundedInput(reader, pending, controller, textDecoder, hooks, limits, minimumQueueCharge, setNextQueueCharge, isCanceled) {
235
+ async function pumpBoundedInput(reader, pending, controller, textDecoder, hooks, limits, outboundRequests, inboundRequests, validateInboundMessage, fatalCleanEof, minimumQueueCharge, setNextQueueCharge, isCanceled) {
173
236
  try {
174
237
  while (true) {
175
238
  const result = await reader.read();
@@ -178,6 +241,7 @@ async function pumpBoundedInput(reader, pending, controller, textDecoder, hooks,
178
241
  if (pending.byteLength > 0) {
179
242
  throw new NdJsonIncompleteFrameError(pending.byteLength);
180
243
  }
244
+ if (fatalCleanEof) throw new NdJsonUnexpectedEofError();
181
245
  controller.close();
182
246
  return;
183
247
  }
@@ -189,6 +253,9 @@ async function pumpBoundedInput(reader, pending, controller, textDecoder, hooks,
189
253
  textDecoder,
190
254
  hooks,
191
255
  limits,
256
+ outboundRequests,
257
+ inboundRequests,
258
+ validateInboundMessage,
192
259
  minimumQueueCharge,
193
260
  setNextQueueCharge
194
261
  );
@@ -201,6 +268,8 @@ async function pumpBoundedInput(reader, pending, controller, textDecoder, hooks,
201
268
  if (!isCanceled()) controller.close();
202
269
  } finally {
203
270
  pending.clear();
271
+ outboundRequests.clear();
272
+ inboundRequests.clear();
204
273
  reader.releaseLock();
205
274
  }
206
275
  }
@@ -222,7 +291,7 @@ function readLegacyChunk(chunk, pending, controller, textDecoder, hooks) {
222
291
  }
223
292
  }
224
293
  __name(readLegacyChunk, "readLegacyChunk");
225
- function readBoundedChunk(chunk, pending, controller, textDecoder, hooks, limits, minimumQueueCharge, setNextQueueCharge) {
294
+ function readBoundedChunk(chunk, pending, controller, textDecoder, hooks, limits, outboundRequests, inboundRequests, validateInboundMessage, minimumQueueCharge, setNextQueueCharge) {
226
295
  let start = 0;
227
296
  let newline = chunk.indexOf(10, start);
228
297
  while (newline !== -1) {
@@ -246,7 +315,15 @@ function readBoundedChunk(chunk, pending, controller, textDecoder, hooks, limits
246
315
  );
247
316
  }
248
317
  setNextQueueCharge(queueCharge);
249
- handleBoundedLine(pending.take(current), controller, textDecoder, hooks);
318
+ handleBoundedLine(
319
+ pending.take(current),
320
+ controller,
321
+ textDecoder,
322
+ hooks,
323
+ outboundRequests,
324
+ inboundRequests,
325
+ validateInboundMessage
326
+ );
250
327
  start = newline + 1;
251
328
  newline = chunk.indexOf(10, start);
252
329
  }
@@ -280,28 +357,206 @@ function handleLegacyLine(lineBytes, controller, textDecoder, hooks) {
280
357
  }
281
358
  }
282
359
  __name(handleLegacyLine, "handleLegacyLine");
283
- function handleBoundedLine(lineBytes, controller, textDecoder, hooks) {
360
+ function handleBoundedLine(lineBytes, controller, textDecoder, hooks, outboundRequests, inboundRequests, validateInboundMessage) {
284
361
  const line = textDecoder.decode(lineBytes);
285
362
  const trimmedLine = line.trim();
286
363
  if (!trimmedLine) return;
287
- let message;
364
+ let parsed;
288
365
  try {
289
- message = JSON.parse(trimmedLine);
366
+ parsed = JSON.parse(trimmedLine);
290
367
  } catch {
291
- const bytes = jsonPayloadByteLength(lineBytes);
292
- const digest = createHash("sha256").update(lineBytes.subarray(0, bytes)).digest("hex");
293
- console.error("Failed to parse JSON message:", {
294
- errorKind: "ndjson_parse_error",
295
- bytes,
296
- sha256: digest,
297
- payloadOmitted: true
298
- });
299
- return;
368
+ throw logBoundedInvalidMessage("ndjson_parse_error", lineBytes);
369
+ }
370
+ if (!isJsonRpcMessage(parsed)) {
371
+ throw logBoundedInvalidMessage("ndjson_invalid_message", lineBytes);
372
+ }
373
+ const isResponse = isJsonRpcResponseMessage(parsed);
374
+ if (!isResponse && !hasBoundedJsonStructure(parsed) || validateInboundMessage && !validateInboundMessage(parsed)) {
375
+ throw logBoundedInvalidMessage("ndjson_invalid_message", lineBytes);
300
376
  }
377
+ if (isJsonRpcResponseMessage(parsed) && !outboundRequests?.consumeResponse(parsed.id)) {
378
+ throw logBoundedInvalidMessage("ndjson_invalid_message", lineBytes);
379
+ }
380
+ inboundRequests?.admit(parsed, lineBytes.byteLength + 1);
381
+ const message = installBoundedLogRedaction(parsed);
301
382
  controller.enqueue(message);
302
383
  reportReceivedMessage(lineBytes, message, hooks);
303
384
  }
304
385
  __name(handleBoundedLine, "handleBoundedLine");
386
+ function installBoundedLogRedaction(message) {
387
+ Object.defineProperty(message, inspect.custom, {
388
+ configurable: false,
389
+ enumerable: false,
390
+ value: inspectBoundedJsonRpcMessage,
391
+ writable: false
392
+ });
393
+ return message;
394
+ }
395
+ __name(installBoundedLogRedaction, "installBoundedLogRedaction");
396
+ function inspectBoundedJsonRpcMessage() {
397
+ return {
398
+ jsonrpc: "2.0",
399
+ messageType: "method" in this ? "id" in this ? "request" : "notification" : "response",
400
+ payloadOmitted: true
401
+ };
402
+ }
403
+ __name(inspectBoundedJsonRpcMessage, "inspectBoundedJsonRpcMessage");
404
+ function isJsonRpcMessage(value) {
405
+ if (!isRecord(value) || value["jsonrpc"] !== "2.0") return false;
406
+ const hasMethod = Object.hasOwn(value, "method");
407
+ const hasId = Object.hasOwn(value, "id");
408
+ if (hasMethod) {
409
+ return typeof value["method"] === "string" && Buffer.byteLength(value["method"]) <= MAX_JSON_RPC_METHOD_BYTES && (!hasId || isJsonRpcId(value["id"]));
410
+ }
411
+ if (!hasId || !isJsonRpcId(value["id"])) return false;
412
+ const hasResult = Object.hasOwn(value, "result");
413
+ const hasError = Object.hasOwn(value, "error");
414
+ if (hasResult === hasError) return false;
415
+ if (!hasError) return true;
416
+ const error = value["error"];
417
+ 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;
418
+ }
419
+ __name(isJsonRpcMessage, "isJsonRpcMessage");
420
+ function isRecord(value) {
421
+ return typeof value === "object" && value !== null && !Array.isArray(value);
422
+ }
423
+ __name(isRecord, "isRecord");
424
+ function hasBoundedJsonStructure(value) {
425
+ const stack = [{ value, depth: 1 }];
426
+ let nodes = 0;
427
+ while (stack.length > 0) {
428
+ const current = stack.pop();
429
+ nodes++;
430
+ if (nodes > MAX_JSON_NODES || current.depth > MAX_JSON_DEPTH) return false;
431
+ if (Array.isArray(current.value)) {
432
+ if (current.value.length > MAX_JSON_ARRAY_LENGTH) return false;
433
+ for (let index = current.value.length - 1; index >= 0; index--) {
434
+ if (nodes + stack.length >= MAX_JSON_NODES || current.depth + 1 > MAX_JSON_DEPTH) {
435
+ return false;
436
+ }
437
+ stack.push({
438
+ value: current.value[index],
439
+ depth: current.depth + 1
440
+ });
441
+ }
442
+ } else if (isRecord(current.value)) {
443
+ for (const key in current.value) {
444
+ if (!Object.hasOwn(current.value, key)) continue;
445
+ if (nodes + stack.length >= MAX_JSON_NODES || current.depth + 1 > MAX_JSON_DEPTH) {
446
+ return false;
447
+ }
448
+ stack.push({
449
+ value: current.value[key],
450
+ depth: current.depth + 1
451
+ });
452
+ }
453
+ }
454
+ }
455
+ return true;
456
+ }
457
+ __name(hasBoundedJsonStructure, "hasBoundedJsonStructure");
458
+ function isJsonRpcId(value) {
459
+ return value === null || typeof value === "string" && Buffer.byteLength(value) <= MAX_JSON_RPC_ID_BYTES || typeof value === "number" && Number.isFinite(value);
460
+ }
461
+ __name(isJsonRpcId, "isJsonRpcId");
462
+ function isJsonRpcRequestMessage(value) {
463
+ return "method" in value && "id" in value && typeof value.method === "string" && isJsonRpcId(value.id);
464
+ }
465
+ __name(isJsonRpcRequestMessage, "isJsonRpcRequestMessage");
466
+ function isJsonRpcResponseMessage(value) {
467
+ return !("method" in value) && "id" in value;
468
+ }
469
+ __name(isJsonRpcResponseMessage, "isJsonRpcResponseMessage");
470
+ var BoundedInboundRequestLedger = class {
471
+ constructor(limits) {
472
+ this.limits = limits;
473
+ }
474
+ static {
475
+ __name(this, "BoundedInboundRequestLedger");
476
+ }
477
+ requests = /* @__PURE__ */ new Map();
478
+ retainedBytes = 0;
479
+ admit(message, frameBytes) {
480
+ if (!isJsonRpcRequestMessage(message)) return;
481
+ const availableBytes = Math.max(
482
+ 0,
483
+ this.limits.maxQueuedBytes - this.retainedBytes
484
+ );
485
+ if (this.requests.has(message.id) || this.requests.size >= this.limits.maxQueuedMessages || frameBytes > availableBytes) {
486
+ throw new NdJsonQueueLimitError(
487
+ this.limits.maxQueuedMessages,
488
+ this.limits.maxQueuedBytes,
489
+ frameBytes,
490
+ this.requests.has(message.id) ? 0 : availableBytes
491
+ );
492
+ }
493
+ this.requests.set(message.id, frameBytes);
494
+ this.retainedBytes += frameBytes;
495
+ }
496
+ release(message) {
497
+ if (!isJsonRpcResponseMessage(message)) return;
498
+ const frameBytes = this.requests.get(message.id);
499
+ if (frameBytes === void 0) return;
500
+ this.requests.delete(message.id);
501
+ this.retainedBytes -= frameBytes;
502
+ }
503
+ clear() {
504
+ this.requests.clear();
505
+ this.retainedBytes = 0;
506
+ }
507
+ };
508
+ var BoundedOutstandingRequestLedger = class {
509
+ constructor(limits) {
510
+ this.limits = limits;
511
+ }
512
+ static {
513
+ __name(this, "BoundedOutstandingRequestLedger");
514
+ }
515
+ requests = /* @__PURE__ */ new Map();
516
+ retainedBytes = 0;
517
+ admit(id, frameBytes) {
518
+ const availableBytes = Math.max(
519
+ 0,
520
+ this.limits.maxQueuedBytes - this.retainedBytes
521
+ );
522
+ if (this.requests.has(id) || this.requests.size >= this.limits.maxQueuedMessages || frameBytes > availableBytes) {
523
+ throw new NdJsonQueueLimitError(
524
+ this.limits.maxQueuedMessages,
525
+ this.limits.maxQueuedBytes,
526
+ frameBytes,
527
+ this.requests.has(id) ? 0 : availableBytes
528
+ );
529
+ }
530
+ this.requests.set(id, frameBytes);
531
+ this.retainedBytes += frameBytes;
532
+ }
533
+ consumeResponse(id) {
534
+ return this.discard(id);
535
+ }
536
+ discard(id) {
537
+ const frameBytes = this.requests.get(id);
538
+ if (frameBytes === void 0) return false;
539
+ this.requests.delete(id);
540
+ this.retainedBytes -= frameBytes;
541
+ return true;
542
+ }
543
+ clear() {
544
+ this.requests.clear();
545
+ this.retainedBytes = 0;
546
+ }
547
+ };
548
+ function logBoundedInvalidMessage(errorKind, lineBytes) {
549
+ const bytes = jsonPayloadByteLength(lineBytes);
550
+ const digest = createHash("sha256").update(lineBytes.subarray(0, bytes)).digest("hex");
551
+ console.error("Failed to parse JSON message:", {
552
+ errorKind,
553
+ bytes,
554
+ sha256: digest,
555
+ payloadOmitted: true
556
+ });
557
+ return new NdJsonInvalidMessageError(errorKind, bytes);
558
+ }
559
+ __name(logBoundedInvalidMessage, "logBoundedInvalidMessage");
305
560
  function reportReceivedMessage(lineBytes, message, hooks) {
306
561
  const bytes = jsonPayloadByteLength(lineBytes);
307
562
  callHook(hooks?.onMessageReceived, bytes);
@@ -566,6 +821,232 @@ var DAEMON_ACP_NDJSON_LIMITS = Object.freeze({
566
821
  maxQueuedMessages: 256,
567
822
  maxQueuedBytes: 64 * 1024 * 1024
568
823
  });
824
+ var daemonClientParamValidators = /* @__PURE__ */ new Map([
825
+ [CLIENT_METHODS.fs_read_text_file, zReadTextFileRequest],
826
+ [CLIENT_METHODS.fs_write_text_file, zWriteTextFileRequest],
827
+ [CLIENT_METHODS.session_request_permission, zRequestPermissionRequest],
828
+ [CLIENT_METHODS.session_update, zSessionNotification],
829
+ [CLIENT_METHODS.terminal_create, zCreateTerminalRequest],
830
+ [CLIENT_METHODS.terminal_kill, zKillTerminalCommandRequest],
831
+ [CLIENT_METHODS.terminal_output, zTerminalOutputRequest],
832
+ [CLIENT_METHODS.terminal_release, zReleaseTerminalRequest],
833
+ [CLIENT_METHODS.terminal_wait_for_exit, zWaitForTerminalExitRequest]
834
+ ]);
835
+ function validateDaemonInboundMessage(message) {
836
+ if (!("method" in message)) return true;
837
+ const validator = daemonClientParamValidators.get(message.method);
838
+ return !validator || validator.safeParse(message.params).success;
839
+ }
840
+ __name(validateDaemonInboundMessage, "validateDaemonInboundMessage");
841
+ var PreparedResponseBudget = class {
842
+ constructor(limits) {
843
+ this.limits = limits;
844
+ }
845
+ static {
846
+ __name(this, "PreparedResponseBudget");
847
+ }
848
+ objectCharges = /* @__PURE__ */ new WeakMap();
849
+ primitiveCharges = /* @__PURE__ */ new Map();
850
+ retainedCount = 0;
851
+ retainedBytes = 0;
852
+ closed = false;
853
+ reserve(value) {
854
+ if (this.closed) return;
855
+ const availableBytes = Math.max(
856
+ 0,
857
+ this.limits.maxQueuedBytes - this.retainedBytes
858
+ );
859
+ const envelopeBytes = Math.min(2048, this.limits.maxQueuedBytes);
860
+ const charge = envelopeBytes + estimatePreparedResponseBytes(
861
+ value,
862
+ Math.max(0, availableBytes - envelopeBytes)
863
+ );
864
+ if (this.retainedCount >= this.limits.maxQueuedMessages || charge > availableBytes) {
865
+ throw new NdJsonQueueLimitError(
866
+ this.limits.maxQueuedMessages,
867
+ this.limits.maxQueuedBytes,
868
+ charge,
869
+ availableBytes
870
+ );
871
+ }
872
+ const charges = this.getCharges(value, true);
873
+ charges.push(charge);
874
+ this.retainedCount++;
875
+ this.retainedBytes += charge;
876
+ }
877
+ releaseMessage(message) {
878
+ if (!isPlainRecord(message) || Object.hasOwn(message, "method") || !Object.hasOwn(message, "id")) {
879
+ return;
880
+ }
881
+ const value = Object.hasOwn(message, "result") ? message["result"] : message["error"];
882
+ const charges = this.getCharges(value, false);
883
+ if (!charges) return;
884
+ const charge = charges.shift();
885
+ if (charge === void 0) return;
886
+ if (charges.length === 0 && !isObjectValue(value)) {
887
+ this.primitiveCharges.delete(value);
888
+ }
889
+ this.retainedCount--;
890
+ this.retainedBytes -= charge;
891
+ }
892
+ close() {
893
+ this.closed = true;
894
+ this.objectCharges = /* @__PURE__ */ new WeakMap();
895
+ this.primitiveCharges.clear();
896
+ this.retainedCount = 0;
897
+ this.retainedBytes = 0;
898
+ }
899
+ getCharges(value, create) {
900
+ const charges = isObjectValue(value) ? this.objectCharges.get(value) : this.primitiveCharges.get(value);
901
+ if (charges || !create) return charges;
902
+ const created = [];
903
+ if (isObjectValue(value)) {
904
+ this.objectCharges.set(value, created);
905
+ } else {
906
+ this.primitiveCharges.set(value, created);
907
+ }
908
+ return created;
909
+ }
910
+ };
911
+ var OutboundOperationBudget = class {
912
+ constructor(limits) {
913
+ this.limits = limits;
914
+ }
915
+ static {
916
+ __name(this, "OutboundOperationBudget");
917
+ }
918
+ retainedCount = 0;
919
+ retainedBytes = 0;
920
+ generation = 0;
921
+ closed = false;
922
+ reserve(value) {
923
+ if (this.closed) return () => {
924
+ };
925
+ const availableBytes = Math.max(
926
+ 0,
927
+ this.limits.maxQueuedBytes - this.retainedBytes
928
+ );
929
+ const envelopeBytes = Math.min(2048, this.limits.maxQueuedBytes);
930
+ const charge = envelopeBytes + estimatePreparedResponseBytes(
931
+ value,
932
+ Math.max(0, availableBytes - envelopeBytes)
933
+ );
934
+ if (this.retainedCount >= this.limits.maxQueuedMessages || charge > availableBytes) {
935
+ throw new NdJsonQueueLimitError(
936
+ this.limits.maxQueuedMessages,
937
+ this.limits.maxQueuedBytes,
938
+ charge,
939
+ availableBytes
940
+ );
941
+ }
942
+ this.retainedCount++;
943
+ this.retainedBytes += charge;
944
+ const generation = this.generation;
945
+ let active = true;
946
+ return () => {
947
+ if (!active) return;
948
+ active = false;
949
+ if (this.closed || this.generation !== generation) return;
950
+ this.retainedCount--;
951
+ this.retainedBytes -= charge;
952
+ };
953
+ }
954
+ close() {
955
+ this.closed = true;
956
+ this.generation++;
957
+ this.retainedCount = 0;
958
+ this.retainedBytes = 0;
959
+ }
960
+ };
961
+ function* enumerableOwnKeys(value) {
962
+ for (const key in value) {
963
+ if (Object.hasOwn(value, key)) yield key;
964
+ }
965
+ }
966
+ __name(enumerableOwnKeys, "enumerableOwnKeys");
967
+ function estimatePreparedResponseBytes(value, limitBytes) {
968
+ let bytes = 0;
969
+ const stack = [{ kind: "value", value }];
970
+ const seen = /* @__PURE__ */ new WeakSet();
971
+ while (stack.length > 0) {
972
+ const frame = stack.pop();
973
+ if (frame.kind === "array") {
974
+ if (frame.index >= frame.value.length) continue;
975
+ if (frame.index > 0) bytes++;
976
+ if (bytes > limitBytes) return limitBytes + 1;
977
+ const descriptor = Object.getOwnPropertyDescriptor(
978
+ frame.value,
979
+ String(frame.index)
980
+ );
981
+ if (descriptor?.get || descriptor?.set) return limitBytes + 1;
982
+ stack.push({ ...frame, index: frame.index + 1 });
983
+ stack.push({ kind: "value", value: descriptor?.value });
984
+ continue;
985
+ }
986
+ if (frame.kind === "record") {
987
+ const next = frame.keys.next();
988
+ if (next.done) continue;
989
+ const descriptor = Object.getOwnPropertyDescriptor(
990
+ frame.value,
991
+ next.value
992
+ );
993
+ if (!descriptor || descriptor.get || descriptor.set) {
994
+ return limitBytes + 1;
995
+ }
996
+ bytes += (frame.first ? 0 : 1) + Buffer.byteLength(next.value) + 3;
997
+ if (bytes > limitBytes) return limitBytes + 1;
998
+ stack.push({ ...frame, first: false });
999
+ stack.push({ kind: "value", value: descriptor.value });
1000
+ continue;
1001
+ }
1002
+ const current = frame.value;
1003
+ if (current === null) {
1004
+ bytes += 4;
1005
+ } else if (current === void 0) {
1006
+ bytes += 4;
1007
+ } else if (typeof current === "string") {
1008
+ bytes += Buffer.byteLength(current) + 2;
1009
+ } else if (typeof current === "number") {
1010
+ bytes += 24;
1011
+ } else if (typeof current === "boolean") {
1012
+ bytes += 5;
1013
+ } else if (Array.isArray(current)) {
1014
+ if (seen.has(current) || Object.hasOwn(current, "toJSON")) {
1015
+ return limitBytes + 1;
1016
+ }
1017
+ seen.add(current);
1018
+ bytes += 2;
1019
+ stack.push({ kind: "array", value: current, index: 0 });
1020
+ } else if (isPlainRecord(current)) {
1021
+ if (seen.has(current) || Object.hasOwn(current, "toJSON")) {
1022
+ return limitBytes + 1;
1023
+ }
1024
+ seen.add(current);
1025
+ bytes += 2;
1026
+ stack.push({
1027
+ kind: "record",
1028
+ value: current,
1029
+ keys: enumerableOwnKeys(current),
1030
+ first: true
1031
+ });
1032
+ } else {
1033
+ return limitBytes + 1;
1034
+ }
1035
+ if (bytes > limitBytes) return limitBytes + 1;
1036
+ }
1037
+ return Math.max(1, bytes);
1038
+ }
1039
+ __name(estimatePreparedResponseBytes, "estimatePreparedResponseBytes");
1040
+ function isObjectValue(value) {
1041
+ return typeof value === "object" && value !== null;
1042
+ }
1043
+ __name(isObjectValue, "isObjectValue");
1044
+ function isPlainRecord(value) {
1045
+ if (!isObjectValue(value) || Array.isArray(value)) return false;
1046
+ const prototype = Object.getPrototypeOf(value);
1047
+ return prototype === Object.prototype || prototype === null;
1048
+ }
1049
+ __name(isPlainRecord, "isPlainRecord");
569
1050
  function getAcpMemoryArgs() {
570
1051
  if (cachedMemoryArgs) return cachedMemoryArgs;
571
1052
  const constrainedMemory = process.constrainedMemory;
@@ -680,22 +1161,71 @@ function createSpawnChannelFactory(options = {}) {
680
1161
  }
681
1162
  const writable = Writable.toWeb(child.stdin);
682
1163
  const readable = Readable.toWeb(child.stdout);
1164
+ const preparedResponses = options.pipeLimits ? new PreparedResponseBudget(options.pipeLimits) : void 0;
1165
+ const outboundOperations = options.pipeLimits ? new OutboundOperationBudget(options.pipeLimits) : void 0;
1166
+ let reportTransportFailure;
1167
+ let transportFailureReported = false;
1168
+ const transportFailed = options.pipeLimits ? new Promise((resolve) => {
1169
+ reportTransportFailure = resolve;
1170
+ }) : void 0;
1171
+ const failTransport = options.pipeLimits ? (error) => {
1172
+ if (transportFailureReported) return;
1173
+ transportFailureReported = true;
1174
+ reportTransportFailure?.(error);
1175
+ reportTransportFailure = void 0;
1176
+ preparedResponses?.close();
1177
+ outboundOperations?.close();
1178
+ child.stdout?.destroy();
1179
+ child.stdin?.destroy();
1180
+ void trackedChild.terminate().catch(() => {
1181
+ });
1182
+ options.pipeHooks?.onTransportError?.(error);
1183
+ } : void 0;
683
1184
  const pipeHooks = options.pipeLimits ? {
684
1185
  ...options.pipeHooks,
685
- onTransportError: /* @__PURE__ */ __name((error) => {
686
- void trackedChild.terminate().catch(() => {
687
- });
688
- options.pipeHooks?.onTransportError?.(error);
689
- }, "onTransportError")
1186
+ onMessageObserved: /* @__PURE__ */ __name((observation) => {
1187
+ if (observation.direction === "sent") {
1188
+ preparedResponses?.releaseMessage(observation.message);
1189
+ }
1190
+ options.pipeHooks?.onMessageObserved?.(observation);
1191
+ }, "onMessageObserved"),
1192
+ onTransportError: failTransport
690
1193
  } : options.pipeHooks;
691
1194
  const stream = ndJsonStream(
692
1195
  writable,
693
1196
  readable,
694
1197
  pipeHooks,
695
- options.pipeLimits
1198
+ options.pipeLimits,
1199
+ options.pipeLimits ? validateDaemonInboundMessage : void 0,
1200
+ options.pipeLimits !== void 0
696
1201
  );
697
1202
  return {
698
1203
  stream,
1204
+ ...transportFailed ? { transportFailed } : {},
1205
+ ...failTransport && options.pipeLimits ? {
1206
+ transportGuard: {
1207
+ maxActiveHandlers: options.pipeLimits.maxQueuedMessages,
1208
+ maxActiveHandlerBytes: options.pipeLimits.maxQueuedBytes,
1209
+ reserveOutboundOperation: /* @__PURE__ */ __name((value) => {
1210
+ try {
1211
+ return outboundOperations?.reserve(value) ?? (() => {
1212
+ });
1213
+ } catch (error) {
1214
+ failTransport(error);
1215
+ throw error;
1216
+ }
1217
+ }, "reserveOutboundOperation"),
1218
+ reservePreparedResponse: /* @__PURE__ */ __name((value) => {
1219
+ try {
1220
+ preparedResponses?.reserve(value);
1221
+ } catch (error) {
1222
+ failTransport(error);
1223
+ throw error;
1224
+ }
1225
+ }, "reservePreparedResponse"),
1226
+ fail: failTransport
1227
+ }
1228
+ } : {},
699
1229
  kill: /* @__PURE__ */ __name(() => trackedChild.terminate(), "kill"),
700
1230
  killSync: /* @__PURE__ */ __name(() => trackedChild.killSync(), "killSync"),
701
1231
  exited: trackedChild.exited