@qwen-code/qwen-code 0.21.0-nightly.20260727.c003e1718 → 0.21.0-preview.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 (329) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +4 -0
  2. package/bundled/qc-helper/docs/features/channels/github.md +14 -14
  3. package/bundled/qc-helper/docs/features/hooks.md +50 -13
  4. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
  5. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  6. package/bundled/review/SKILL.md +15 -0
  7. package/chunks/{MaxSizedBox-2N5IOLMA.js → MaxSizedBox-UQGQ6O3I.js} +36 -36
  8. package/chunks/{StandaloneSessionPicker-6SNFY63D.js → StandaloneSessionPicker-QLO5COVM.js} +51 -51
  9. package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-DFVPFQ6C.js} +2 -2
  10. package/chunks/{acpAgent-6BDY452E.js → acpAgent-ECMKCJPZ.js} +1265 -505
  11. package/chunks/{agent-WPMRCC7E.js → agent-NJ4VPY5B.js} +31 -31
  12. package/chunks/{agent-headless-OSOKZOZK.js → agent-headless-JB6RF5HT.js} +31 -31
  13. package/chunks/{anthropicContentGenerator-EJEHPX2W.js → anthropicContentGenerator-V2QOGVYD.js} +54 -13
  14. package/chunks/{artifact-tool-FQYTXKFY.js → artifact-tool-6K6U7XYJ.js} +2 -2
  15. package/chunks/{askUserQuestion-DJQIJ5T4.js → askUserQuestion-GD2IJJ7I.js} +2 -2
  16. package/chunks/{bridge-VR3WL36L.js → bridge-EXKCQ7MD.js} +38 -37
  17. package/chunks/{build-47LY6L7H.js → build-S6DO7LMM.js} +1 -1
  18. package/chunks/{ca-UBSN3YSM.js → ca-6W3SK7OQ.js} +1 -1
  19. package/chunks/{channel-management-service-2WRAWZQU.js → channel-management-service-XR7GZSWF.js} +7 -7
  20. package/chunks/{channel-settings-store-3FOVM5TF.js → channel-settings-store-VA4J7HPF.js} +38 -38
  21. package/chunks/{channel-worker-group-VMGKUBUY.js → channel-worker-group-XDPTDWTX.js} +9 -5
  22. package/chunks/{channel-worker-manager-2SCF42S2.js → channel-worker-manager-YYEHVRRE.js} +9 -5
  23. package/chunks/{channel-worker-supervisor-F3HADSDC.js → channel-worker-supervisor-74HTWA2G.js} +5 -4
  24. package/chunks/{chunk-2PHWA4IO.js → chunk-2DN4J57Y.js} +2 -2
  25. package/chunks/{chunk-HHYPUCUF.js → chunk-2LKVPASC.js} +3 -3
  26. package/chunks/{chunk-ECBKZ7SV.js → chunk-2LQTH543.js} +2 -2
  27. package/chunks/{chunk-EDEO3ZXU.js → chunk-2XSLTRFZ.js} +2 -2
  28. package/chunks/{chunk-HIJQF5B5.js → chunk-3L2SPEBH.js} +1 -1
  29. package/chunks/{chunk-2KHUM3TN.js → chunk-3MGBLIXX.js} +167 -81
  30. package/chunks/{chunk-CWFC2GZB.js → chunk-3Q4TGVUX.js} +1385 -785
  31. package/chunks/{chunk-KR2UZ6QL.js → chunk-4G2BISNC.js} +1 -1
  32. package/chunks/{chunk-IUYFCE34.js → chunk-4WSL256B.js} +3 -3
  33. package/chunks/{chunk-LI4HGDLZ.js → chunk-5FNROPXI.js} +4 -4
  34. package/chunks/{chunk-ECEJ6T4L.js → chunk-5TBMQLGG.js} +2 -2
  35. package/chunks/{chunk-KW3H2FM4.js → chunk-5YKDXHUY.js} +2 -2
  36. package/chunks/{chunk-PIVH7FAY.js → chunk-5YVWMI26.js} +5 -5
  37. package/chunks/{chunk-IUNB6SUW.js → chunk-64LQLPL7.js} +3 -3
  38. package/chunks/{chunk-7R4YENCL.js → chunk-6QIGFD5W.js} +1 -1
  39. package/chunks/{chunk-SHJ4R6JF.js → chunk-727I7LJ2.js} +5 -5
  40. package/chunks/{chunk-BRKWIX5C.js → chunk-74YNMTJP.js} +30 -19
  41. package/chunks/{chunk-IM6PC55H.js → chunk-75GFAX4R.js} +1 -1
  42. package/chunks/{chunk-IXNNGTUI.js → chunk-75MIQ3LV.js} +18 -3
  43. package/chunks/{chunk-VCBKBEU7.js → chunk-7A4ZDITM.js} +27 -14
  44. package/chunks/{chunk-FZZTCEXC.js → chunk-7HRXAFCW.js} +10 -10
  45. package/chunks/{chunk-BJHP755Z.js → chunk-7I5GTCT4.js} +271 -164
  46. package/chunks/{chunk-BOWYL27T.js → chunk-7XATOOE7.js} +1 -1
  47. package/chunks/{chunk-HAZMIZP7.js → chunk-A2APC6HM.js} +2 -2
  48. package/chunks/{chunk-ZYD3KZPB.js → chunk-A3NDJ5SB.js} +2 -2
  49. package/chunks/{chunk-IIJCNWAY.js → chunk-AL62VKMS.js} +4 -4
  50. package/chunks/{chunk-NZYXKNSZ.js → chunk-AOAYOH3R.js} +1 -1
  51. package/chunks/{chunk-C6U6ZR65.js → chunk-ATZOB5Y2.js} +11 -11
  52. package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
  53. package/chunks/{chunk-JJY7H2ZU.js → chunk-BCZFQXWK.js} +2 -2
  54. package/chunks/{chunk-FUFNINKB.js → chunk-BGTQCTQW.js} +42 -3
  55. package/chunks/{chunk-6PQHZ4YW.js → chunk-BWKCTLEJ.js} +193 -149
  56. package/chunks/{chunk-3FNJBOF7.js → chunk-CVHIL5IG.js} +3 -3
  57. package/chunks/{chunk-55PWRVIR.js → chunk-DABQX74H.js} +8 -8
  58. package/chunks/{chunk-N7U3LRNS.js → chunk-DDKAZLZ7.js} +17 -6
  59. package/chunks/{chunk-CPF4NIKT.js → chunk-DIQGH5CN.js} +1 -1
  60. package/chunks/{chunk-3YAW4B2W.js → chunk-DJGYJDYR.js} +1 -1
  61. package/chunks/{chunk-4IQSPE3A.js → chunk-DNDETPES.js} +3 -3
  62. package/chunks/{chunk-4CCAX23S.js → chunk-DZLYR4U3.js} +1 -1
  63. package/chunks/{chunk-7XSFZ3FM.js → chunk-EABYVKAK.js} +2 -2
  64. package/chunks/{chunk-SJXVC6ZO.js → chunk-F3EYHTOC.js} +4 -4
  65. package/chunks/{chunk-RKMMVQDZ.js → chunk-FNMZK765.js} +1 -1
  66. package/chunks/{chunk-2KLJYA37.js → chunk-FW4M4GA7.js} +1 -1
  67. package/chunks/chunk-FYJ7W2PI.js +194 -0
  68. package/chunks/{chunk-7GC5YKSS.js → chunk-GATT5TKW.js} +1 -1
  69. package/chunks/{chunk-4CSVLZXK.js → chunk-GBAZKAZW.js} +3 -3
  70. package/chunks/{chunk-5ADNRHTY.js → chunk-GEBV2JGB.js} +28 -5
  71. package/chunks/{chunk-VV6QF662.js → chunk-GKX7E4CO.js} +1 -1
  72. package/chunks/{chunk-ELHHYF7E.js → chunk-GNR2RNMP.js} +157 -4
  73. package/chunks/{chunk-PLMOXLFY.js → chunk-GW3XHA6P.js} +2 -2
  74. package/chunks/{chunk-SAXBG6AR.js → chunk-GXIJHV66.js} +3 -3
  75. package/chunks/{chunk-4AVIERNE.js → chunk-GZ3RCT54.js} +1 -1
  76. package/chunks/{chunk-6K2CPEAB.js → chunk-HKFEPLKW.js} +1 -1
  77. package/chunks/{chunk-QVKDVURA.js → chunk-HRD7NI6D.js} +11 -3
  78. package/chunks/{chunk-G3RJEBAA.js → chunk-HUK2P4RS.js} +2510 -1273
  79. package/chunks/{chunk-RRNQGWR4.js → chunk-HWNLU2HC.js} +7 -7
  80. package/chunks/{chunk-TH6TQR5Y.js → chunk-IZO36O6O.js} +252 -15
  81. package/chunks/{chunk-67IE7N5D.js → chunk-JMONIXMJ.js} +1 -1
  82. package/chunks/{chunk-DMEKUQ5Z.js → chunk-JSD33JG6.js} +3 -3
  83. package/chunks/{chunk-CX2KLDRX.js → chunk-JYBU6YUE.js} +1 -1
  84. package/chunks/{chunk-SJOQ5GW7.js → chunk-KADQPLPX.js} +1 -1
  85. package/chunks/{chunk-PAJNXBXO.js → chunk-KBNDRM4U.js} +3 -3
  86. package/chunks/{chunk-TD665TIY.js → chunk-KFPFJAR3.js} +24 -22
  87. package/chunks/{chunk-ZGVQLKMP.js → chunk-KY3NRFJ5.js} +9 -6
  88. package/chunks/{chunk-DEKCAHRS.js → chunk-LGAOC3ZS.js} +1 -1
  89. package/chunks/{chunk-GVHHFBJ2.js → chunk-LHZRAR2Q.js} +37 -40
  90. package/chunks/{chunk-2WUAKFCQ.js → chunk-LNHZ3A4I.js} +44 -11
  91. package/chunks/{chunk-2LFSPVBC.js → chunk-LW3RFMG7.js} +3 -3
  92. package/chunks/{chunk-SEWRIH7H.js → chunk-M7OONWYU.js} +2 -2
  93. package/chunks/{chunk-CO3BKKFP.js → chunk-ML5M5XOY.js} +269 -248
  94. package/chunks/{chunk-YF6D7CRB.js → chunk-NG3V2LPY.js} +8 -13
  95. package/chunks/{chunk-ZAJIOSFI.js → chunk-NNERMV7T.js} +2 -2
  96. package/chunks/{chunk-N5JEINK3.js → chunk-NOKIVHOL.js} +15 -2
  97. package/chunks/chunk-OCPBI7J5.js +18 -0
  98. package/chunks/{chunk-YF7TVSQK.js → chunk-OKF7JF3R.js} +3 -3
  99. package/chunks/{chunk-5FQ3CINJ.js → chunk-OXWFQXKX.js} +6 -6
  100. package/chunks/{chunk-EWYICJNY.js → chunk-P2YNZWXZ.js} +3 -3
  101. package/chunks/{chunk-6LOSXNKO.js → chunk-PONHVBRT.js} +2 -2
  102. package/chunks/{chunk-FZP2GLM4.js → chunk-QQLCYEN2.js} +1 -1
  103. package/chunks/{chunk-HEVX5YOM.js → chunk-R3NOCPFB.js} +4 -4
  104. package/chunks/{chunk-WZOPR2ZP.js → chunk-R7ZITH3J.js} +3 -1
  105. package/chunks/{chunk-ACPMPDKQ.js → chunk-RPLGZJV2.js} +38 -1
  106. package/chunks/{chunk-MFBM3CQZ.js → chunk-SGFT55XI.js} +1 -1
  107. package/chunks/{chunk-QSDUHJAR.js → chunk-SGM6M3XG.js} +1 -1
  108. package/chunks/{chunk-II55VZQA.js → chunk-SUWVXF2E.js} +3 -3
  109. package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
  110. package/chunks/{chunk-UWSREISS.js → chunk-T2QMKU3R.js} +79 -1
  111. package/chunks/{chunk-7VOUXBKJ.js → chunk-TFRMVU6R.js} +1 -1
  112. package/chunks/{chunk-RGZ34F4F.js → chunk-TUQ36KWK.js} +10 -5
  113. package/chunks/{chunk-R2F2DRBY.js → chunk-U3E3UQAA.js} +4 -4
  114. package/chunks/{chunk-2XORP6RV.js → chunk-UEDIRTKG.js} +1 -1
  115. package/chunks/{chunk-VOTXHGKJ.js → chunk-UFI5GRDS.js} +3 -3
  116. package/chunks/{chunk-ATIV6G7N.js → chunk-UHUSJ6X7.js} +1 -1
  117. package/chunks/{chunk-2WVVMSPB.js → chunk-UPUG4GXM.js} +3 -3
  118. package/chunks/{chunk-TXI4LPWT.js → chunk-UWMLWVCA.js} +18 -6
  119. package/chunks/{chunk-G2W6OP2O.js → chunk-V5AWXXVA.js} +3 -3
  120. package/chunks/{chunk-5CGAUBFZ.js → chunk-VYO6YPYG.js} +3 -3
  121. package/chunks/{chunk-67ZRSECV.js → chunk-W4MIWP6M.js} +26 -15
  122. package/chunks/{chunk-OJJVALKY.js → chunk-WBSMNTSV.js} +3 -3
  123. package/chunks/{chunk-BZU6TRNQ.js → chunk-WUKGHS32.js} +5 -5
  124. package/chunks/{chunk-WTCKVXNT.js → chunk-WUNZAP5I.js} +4 -4
  125. package/chunks/{chunk-XM5V2A2E.js → chunk-WZRWHXFE.js} +1 -1
  126. package/chunks/{chunk-K2P7QBXF.js → chunk-X6XZITHR.js} +3 -3
  127. package/chunks/{chunk-ZEVUICUF.js → chunk-XBYYDKAZ.js} +7 -7
  128. package/chunks/{chunk-XL7TLW5I.js → chunk-XBZQT63P.js} +1 -1
  129. package/chunks/{chunk-DC2Y3JSV.js → chunk-XH7E5IGP.js} +1 -1
  130. package/chunks/{chunk-B5DJFAHN.js → chunk-XR2NFLNQ.js} +4 -4
  131. package/chunks/{chunk-FOT6JBY5.js → chunk-XRYM3MCI.js} +348 -126
  132. package/chunks/{chunk-IJDXG4RL.js → chunk-XWWKIXVD.js} +1 -1
  133. package/chunks/{chunk-3SJ43L4W.js → chunk-XZC5VLBZ.js} +2 -0
  134. package/chunks/{chunk-ZWL7SSVL.js → chunk-Y4IHBGBP.js} +1 -1
  135. package/chunks/{chunk-MB3M2BFP.js → chunk-Y6AXW2OG.js} +9 -3
  136. package/chunks/{chunk-6ENJ2DGB.js → chunk-Y6RATHM5.js} +2 -2
  137. package/chunks/{chunk-D33ZN3GK.js → chunk-YAKKV4WO.js} +12 -12
  138. package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
  139. package/chunks/{chunk-H6YTFKW7.js → chunk-YGF33UXG.js} +60 -7
  140. package/chunks/{chunk-BV6LBI45.js → chunk-YPCRRO7K.js} +3 -3
  141. package/chunks/{chunk-WDMODYUC.js → chunk-ZBVS26BY.js} +4 -0
  142. package/chunks/{chunk-GBJUC5ZL.js → chunk-ZHBO7WVX.js} +1 -1
  143. package/chunks/{chunk-4CKLWQQR.js → chunk-ZSQ5LDBH.js} +1 -1
  144. package/chunks/{computer-use-42W2GDED.js → computer-use-TGJRGZWO.js} +31 -31
  145. package/chunks/{config-utils-OTUC46XY.js → config-utils-NYSXDMEQ.js} +4 -4
  146. package/chunks/{contextCommand-2WIK6DG3.js → contextCommand-HGWDMG36.js} +33 -33
  147. package/chunks/{core-runtime-YFT4JKHA.js → core-runtime-WHE3LSHF.js} +31 -31
  148. package/chunks/{create-sub-session-HQMFFLL5.js → create-sub-session-OWI4RC7D.js} +31 -31
  149. package/chunks/{create-sub-session-Q4BUPKIO.js → create-sub-session-SBYUMSSS.js} +2 -2
  150. package/chunks/{cron-create-NI2G2ACR.js → cron-create-2QK6TCEC.js} +4 -4
  151. package/chunks/{cron-delete-KHD2WOMV.js → cron-delete-FDCDFYMG.js} +4 -4
  152. package/chunks/{cron-list-LZMV5V7N.js → cron-list-XN3WVBTP.js} +4 -4
  153. package/chunks/{daemon-KN3FWTYU.js → daemon-Q2AB5Z23.js} +139 -2
  154. package/chunks/{daemon-status-provider-DYVQTAZX.js → daemon-status-provider-KY35PVUR.js} +43 -42
  155. package/chunks/{daemon-trust-policy-QUHMUDOQ.js → daemon-trust-policy-QSQRPXHD.js} +37 -37
  156. package/chunks/{daemon-trust-policy-monitor-AHIPWCQD.js → daemon-trust-policy-monitor-VJQ54EM3.js} +37 -37
  157. package/chunks/{de-LVJPZWUT.js → de-SY6O76BF.js} +1 -1
  158. package/chunks/{deferred-core-runtime-VWKP5HVD.js → deferred-core-runtime-U3DDMMV2.js} +31 -31
  159. package/chunks/{dist-CWCPAMA2.js → dist-BSTVRPMT.js} +234 -78
  160. package/chunks/{dist-GWORRKWL.js → dist-DOLYHMXE.js} +2 -2
  161. package/chunks/{dist-CRNO2KXU.js → dist-HVRQ2CFL.js} +271 -11
  162. package/chunks/{dist-TPJRJ237.js → dist-IXQEQWRG.js} +1 -1
  163. package/chunks/{dist-ONF2ZUUX.js → dist-SSU66DM4.js} +1 -1
  164. package/chunks/{dist-BRVIXBFA.js → dist-SV7Q3AWJ.js} +1 -1
  165. package/chunks/{dist-2HFXMUT6.js → dist-YGBBMK3Z.js} +1 -1
  166. package/chunks/{earlyInputCapture-AZAUUSDE.js → earlyInputCapture-H4YOY6R7.js} +32 -32
  167. package/chunks/{edit-2GM73YUN.js → edit-NZWMOOX6.js} +31 -31
  168. package/chunks/{en-7JEDYSBE.js → en-NBK3JKCE.js} +4 -1
  169. package/chunks/{enter-worktree-O6MC2FZM.js → enter-worktree-6FMYNZ4S.js} +31 -31
  170. package/chunks/{enterPlanMode-NJNHHLAJ.js → enterPlanMode-RYK5P7WC.js} +31 -31
  171. package/chunks/{environment-L5QWIYKQ.js → environment-RBLY3QVX.js} +33 -33
  172. package/chunks/{errors-GO7MH572.js → errors-WVUI42QV.js} +33 -33
  173. package/chunks/{exit-worktree-FR7KKQSW.js → exit-worktree-FRFYEX6R.js} +31 -31
  174. package/chunks/{exitPlanMode-QKNK5MBZ.js → exitPlanMode-STTGKHP2.js} +31 -31
  175. package/chunks/{fast-path-7SP4KXIF.js → fast-path-OZD2JFDY.js} +3 -3
  176. package/chunks/{fast-path-settings-GTWXZLJZ.js → fast-path-settings-WQJU2LAT.js} +2 -2
  177. package/chunks/{fr-JXF5ONTD.js → fr-4KG5V7UT.js} +1 -1
  178. package/chunks/{gemini-J5WX6DS3.js → gemini-PUKYW6OF.js} +83 -82
  179. package/chunks/{geminiContentGenerator-X4FCO2IH.js → geminiContentGenerator-HYMWIERE.js} +6 -6
  180. package/chunks/{glob-UYGYQ73X.js → glob-IZATNUPS.js} +31 -31
  181. package/chunks/{grep-HWLK333D.js → grep-DWHBLRXJ.js} +33 -32
  182. package/chunks/{handleAutoUpdate-H55RTXMU.js → handleAutoUpdate-3VHGEOAV.js} +35 -35
  183. package/chunks/{i18n-6YL3VGHQ.js → i18n-A56PNKBP.js} +32 -32
  184. package/chunks/{image-gen-ZN43Y352.js → image-gen-RBLQKXQJ.js} +9 -9
  185. package/chunks/{initializer-ATU3WGM5.js → initializer-TCD6H7VY.js} +38 -38
  186. package/chunks/{installationInfo-3D4M363G.js → installationInfo-276EXQW2.js} +32 -32
  187. package/chunks/{ja-72VBFAM5.js → ja-F3GSQXMF.js} +1 -1
  188. package/chunks/{keychain-token-storage-U6BBK3IE.js → keychain-token-storage-72IYCAZV.js} +2 -2
  189. package/chunks/{list-K7TOZQ5T.js → list-NWDHWJ4D.js} +40 -40
  190. package/chunks/{list-agents-FHIQAX2Y.js → list-agents-R6KDXQR3.js} +2 -2
  191. package/chunks/{loadedSettingsAdapter-IDASCO2P.js → loadedSettingsAdapter-YXJKWUYF.js} +37 -37
  192. package/chunks/{loggingContentGenerator-C7ECOBP5.js → loggingContentGenerator-LU6TII3U.js} +18 -18
  193. package/chunks/{loop-wakeup-PSF72P7O.js → loop-wakeup-3IQKCYAH.js} +5 -5
  194. package/chunks/{ls-RVQ2JC4C.js → ls-DKZ37A7N.js} +4 -4
  195. package/chunks/{lsp-UFP2H2RG.js → lsp-QNWN7KN3.js} +2 -2
  196. package/chunks/{managed-npm-update-MWQIFEJC.js → managed-npm-update-AO3CL6VU.js} +32 -32
  197. package/chunks/{mcp-YJ4SZXFF.js → mcp-5PMHEFAR.js} +37 -37
  198. package/chunks/{monitor-MWKW6W4Q.js → monitor-2YELRQ6S.js} +31 -31
  199. package/chunks/nonInteractiveCli-74R5S76M.js +144 -0
  200. package/chunks/{notebook-edit-ALAKK5DZ.js → notebook-edit-SV6GDWUG.js} +31 -31
  201. package/chunks/{openaiContentGenerator-V5GYCLVN.js → openaiContentGenerator-FMBXX26Z.js} +19 -19
  202. package/chunks/{pidfile-I7IOGSVT.js → pidfile-HZA26WFC.js} +32 -32
  203. package/chunks/process-registry-2CHQBXH5.js +157 -0
  204. package/chunks/{processUtils-SRGJPX5P.js → processUtils-4F7EMUKQ.js} +2 -2
  205. package/chunks/{pt-E4AMXNUG.js → pt-EQ33KWEN.js} +1 -1
  206. package/chunks/{qwenContentGenerator-INCMQJG3.js → qwenContentGenerator-CXAD5IOE.js} +37 -37
  207. package/chunks/{qwenOAuth2-MIL7MEKO.js → qwenOAuth2-7V2RGLUU.js} +8 -8
  208. package/chunks/{read-file-BBQ6BN7G.js → read-file-AQKNOXOV.js} +11 -11
  209. package/chunks/{read-mcp-resource-M4IJUOXP.js → read-mcp-resource-GFTWYXMK.js} +2 -2
  210. package/chunks/{record-artifact-4NWBVHNM.js → record-artifact-XAMSFSW4.js} +2 -2
  211. package/chunks/{resumeHistoryUtils-X74IGERO.js → resumeHistoryUtils-NSHGEJZY.js} +37 -37
  212. package/chunks/{ripGrep-GCSZGI22.js → ripGrep-KVWIREMR.js} +31 -31
  213. package/chunks/{ru-OJOR34RM.js → ru-7OZAUKGG.js} +1 -1
  214. package/chunks/{run-qwen-serve-RAPQ4UBN.js → run-qwen-serve-LBBMQRWJ.js} +94 -58
  215. package/chunks/{runtime-F4YK7A5M.js → runtime-XR3VFARS.js} +42 -42
  216. package/chunks/{scheduler-JFOAST7W.js → scheduler-OLI5YERT.js} +31 -31
  217. package/chunks/{sdk-exporters-http-H6MWAYGV.js → sdk-exporters-http-WO556XNU.js} +2 -2
  218. package/chunks/{sdk-impl-U4BU6LE5.js → sdk-impl-LPAVACSF.js} +2 -2
  219. package/chunks/{send-message-GAB3K4KN.js → send-message-SAWK4DZX.js} +4 -4
  220. package/chunks/{serve-WAK4FQIT.js → serve-2WM3HPSN.js} +37 -37
  221. package/chunks/{server-GJFU7OZ6.js → server-T4C6UGPM.js} +895 -127
  222. package/chunks/{session-WFWS7D6U.js → session-IAPGXMG3.js} +78 -77
  223. package/chunks/{settings-NI7K6BOS.js → settings-LIYC7NVY.js} +39 -39
  224. package/chunks/{shell-PI52ZRBM.js → shell-M455ZXG6.js} +31 -31
  225. package/chunks/{skill-EGJY4VDT.js → skill-ZHDF6IVV.js} +15 -15
  226. package/chunks/{skill-settings-27BQIOWC.js → skill-settings-MEFO33AC.js} +36 -36
  227. package/chunks/{spawnChannel-LU6YO2IZ.js → spawnChannel-NAISQSBK.js} +33 -33
  228. package/chunks/{standalone-update-TG2BLT73.js → standalone-update-K4RNR537.js} +33 -33
  229. package/chunks/{startInteractiveUI-4NTL2RZ6.js → startInteractiveUI-HJUQMCBD.js} +426 -216
  230. package/chunks/{syntheticOutput-YCOHYBPM.js → syntheticOutput-355CB6CJ.js} +3 -3
  231. package/chunks/{task-create-YRN3PDAT.js → task-create-INGWNUG4.js} +8 -8
  232. package/chunks/{task-list-FYGHXFOT.js → task-list-5XNNGTF4.js} +5 -5
  233. package/chunks/{task-stop-I7CNWL7J.js → task-stop-4ROAOBXH.js} +2 -2
  234. package/chunks/{task-update-5QOY2AIK.js → task-update-CRK5VWWZ.js} +8 -8
  235. package/chunks/{team-create-5H4T3ENJ.js → team-create-YWCUC55A.js} +31 -31
  236. package/chunks/{team-delete-OAA4YOAC.js → team-delete-S2RCXA4P.js} +5 -5
  237. package/chunks/{team-plan-approval-44SCBFBB.js → team-plan-approval-ZJGZRKV5.js} +31 -31
  238. package/chunks/{theme-manager-HYFW3GL7.js → theme-manager-5LUFI5NY.js} +32 -32
  239. package/chunks/{todoWrite-YFIBFZO3.js → todoWrite-7WM3VDMY.js} +4 -4
  240. package/chunks/{tool-search-YAIIWTSJ.js → tool-search-LZMDLBAK.js} +13 -13
  241. package/chunks/{total-session-admission-FPF66OF6.js → total-session-admission-MDA3ANYQ.js} +39 -38
  242. package/chunks/{trustedFolders-4RSRSIO3.js → trustedFolders-NZEZRJPU.js} +32 -32
  243. package/chunks/{update-relaunch-4NKVI2H5.js → update-relaunch-D7EKBO4E.js} +5 -5
  244. package/chunks/{updateCheck-E2336RGI.js → updateCheck-AKFMZZCG.js} +34 -34
  245. package/chunks/{useAutoAcceptIndicator-YXC4OJ2B.js → useAutoAcceptIndicator-55OEL7UZ.js} +40 -40
  246. package/chunks/{validateNonInterActiveAuth-G5PREALO.js → validateNonInterActiveAuth-K5WQOFUQ.js} +72 -71
  247. package/chunks/{version-IBROP4MJ.js → version-ANSPR52A.js} +1 -1
  248. package/chunks/{web-fetch-G2GFNE3L.js → web-fetch-WFKX5SJM.js} +14 -14
  249. package/chunks/{web-search-4ISTNKIX.js → web-search-XDPHXEUC.js} +9 -9
  250. package/chunks/{workflow-OQY4Y74P.js → workflow-6YYVMHCS.js} +32 -32
  251. package/chunks/{workspace-providers-status-SRB65GMC.js → workspace-providers-status-5L4FEPYR.js} +40 -40
  252. package/chunks/{workspace-registration-store-XOUNCX5G.js → workspace-registration-store-C2HIDNXV.js} +1 -1
  253. package/chunks/{workspace-registry-XMDDRCP3.js → workspace-registry-7B7T5SC3.js} +39 -38
  254. package/chunks/{workspace-service-XUAHBWUX.js → workspace-service-VGGIWADS.js} +46 -45
  255. package/chunks/{workspace-skills-status-GGH6TYSU.js → workspace-skills-status-MZZLEGL5.js} +38 -38
  256. package/chunks/{workspace-trust-reconciler-AKKLKLJQ.js → workspace-trust-reconciler-3PA5PLHX.js} +45 -44
  257. package/chunks/{write-file-7MSTD3VC.js → write-file-5GNKRL2B.js} +31 -31
  258. package/chunks/{zh-2MA5UKNJ.js → zh-H3YDK5QW.js} +4 -1
  259. package/chunks/{zh-TW-JO4Z7CVC.js → zh-TW-JYCP7XUA.js} +4 -1
  260. package/chunks/zoom-image-JIRPKLNA.js +351 -0
  261. package/cli.js +13 -13
  262. package/locales/ca.js +2 -2
  263. package/locales/de.js +2 -2
  264. package/locales/en.js +5 -2
  265. package/locales/fr.js +2 -2
  266. package/locales/ja.js +2 -2
  267. package/locales/pt.js +2 -2
  268. package/locales/ru.js +2 -2
  269. package/locales/zh-TW.js +5 -2
  270. package/locales/zh.js +5 -2
  271. package/package.json +5 -4
  272. package/web-shell/assets/{arc-DYNfZ967.js → arc-75-Wdeo3.js} +1 -1
  273. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CkKsIF39.js → architectureDiagram-3BPJPVTR-FKeXQbyP.js} +1 -1
  274. package/web-shell/assets/{blockDiagram-GPEHLZMM-FfDv_qOy.js → blockDiagram-GPEHLZMM-CY0vc-A3.js} +1 -1
  275. package/web-shell/assets/{c4Diagram-AAUBKEIU-pA5r7guO.js → c4Diagram-AAUBKEIU-CNP-A-8u.js} +1 -1
  276. package/web-shell/assets/channel-DPYMT76A.js +1 -0
  277. package/web-shell/assets/{chunk-2J33WTMH-Bfnf2k-q.js → chunk-2J33WTMH-GybS4Gii.js} +1 -1
  278. package/web-shell/assets/{chunk-4BX2VUAB-BCpgiyb4.js → chunk-4BX2VUAB-02H91V8v.js} +1 -1
  279. package/web-shell/assets/{chunk-55IACEB6-BrwrazA2.js → chunk-55IACEB6-D3M-2VT6.js} +1 -1
  280. package/web-shell/assets/{chunk-727SXJPM-DDCxd_BK.js → chunk-727SXJPM-CCu29u4H.js} +1 -1
  281. package/web-shell/assets/{chunk-AQP2D5EJ-Ce-B1Qi5.js → chunk-AQP2D5EJ-CaFKWgrn.js} +1 -1
  282. package/web-shell/assets/{chunk-FMBD7UC4-Dl2u6_p7.js → chunk-FMBD7UC4-ZZpPqIwQ.js} +1 -1
  283. package/web-shell/assets/{chunk-ND2GUHAM-32W_JFKh.js → chunk-ND2GUHAM-D22DqGs8.js} +1 -1
  284. package/web-shell/assets/{chunk-QZHKN3VN-BmtCt0RT.js → chunk-QZHKN3VN-Bu85S0fw.js} +1 -1
  285. package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +1 -0
  286. package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +1 -0
  287. package/web-shell/assets/{cose-bilkent-S5V4N54A-D_DXerbn.js → cose-bilkent-S5V4N54A-f1CK1Gwe.js} +1 -1
  288. package/web-shell/assets/{dagre-BM42HDAG-C3fMtjq2.js → dagre-BM42HDAG-D0Ow8F_n.js} +1 -1
  289. package/web-shell/assets/{diagram-2AECGRRQ-CBiuEoIi.js → diagram-2AECGRRQ-BPrmTWp8.js} +1 -1
  290. package/web-shell/assets/{diagram-5GNKFQAL-J8DRS3up.js → diagram-5GNKFQAL-HccuFAzy.js} +1 -1
  291. package/web-shell/assets/{diagram-KO2AKTUF-DEVjvvjZ.js → diagram-KO2AKTUF-BrS76mbA.js} +1 -1
  292. package/web-shell/assets/{diagram-LMA3HP47-Bh9hEXeR.js → diagram-LMA3HP47-V7T9lU-5.js} +1 -1
  293. package/web-shell/assets/{diagram-OG6HWLK6-CgV4R96R.js → diagram-OG6HWLK6-DKidyJMR.js} +1 -1
  294. package/web-shell/assets/{erDiagram-TEJ5UH35-BGCFyfGU.js → erDiagram-TEJ5UH35-DBadZIkp.js} +1 -1
  295. package/web-shell/assets/{flowDiagram-I6XJVG4X-BCaQuiMb.js → flowDiagram-I6XJVG4X-BymfqdNJ.js} +1 -1
  296. package/web-shell/assets/{ganttDiagram-6RSMTGT7-B9J27vXf.js → ganttDiagram-6RSMTGT7-DOw340jf.js} +1 -1
  297. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-C2u3FvFn.js → gitGraphDiagram-PVQCEYII-_8EiD8sl.js} +1 -1
  298. package/web-shell/assets/{index-BF2Ug_o6.js → index-CKIadvET.js} +1 -1
  299. package/web-shell/assets/index-D1eXNRHe.js +1389 -0
  300. package/web-shell/assets/index-DVLD4CQq.css +5 -0
  301. package/web-shell/assets/{infoDiagram-5YYISTIA-VGjh3Icm.js → infoDiagram-5YYISTIA-D61KYQBu.js} +1 -1
  302. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-8AZWigme.js → ishikawaDiagram-YF4QCWOH-CsiXSpNx.js} +1 -1
  303. package/web-shell/assets/{journeyDiagram-JHISSGLW-CnAVNJU5.js → journeyDiagram-JHISSGLW-Sdfionyh.js} +1 -1
  304. package/web-shell/assets/{kanban-definition-UN3LZRKU-DAh7CFUA.js → kanban-definition-UN3LZRKU-C3WI3Cnl.js} +1 -1
  305. package/web-shell/assets/{linear-BMHEIvy4.js → linear-Dpigcc62.js} +1 -1
  306. package/web-shell/assets/{mermaid.core-CpHDMzGU.js → mermaid.core-Ct97pqgW.js} +5 -5
  307. package/web-shell/assets/{mindmap-definition-RKZ34NQL-Cf3CMPHf.js → mindmap-definition-RKZ34NQL-BzeaN0rB.js} +1 -1
  308. package/web-shell/assets/{pieDiagram-4H26LBE5-BpRfWcVA.js → pieDiagram-4H26LBE5-CvjgcbVD.js} +1 -1
  309. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-kqzUnUwh.js → quadrantDiagram-W4KKPZXB-BUzgTNdH.js} +1 -1
  310. package/web-shell/assets/{requirementDiagram-4Y6WPE33-D2FenOqg.js → requirementDiagram-4Y6WPE33-B7zKlgUQ.js} +1 -1
  311. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-dWDMUdUe.js → sankeyDiagram-5OEKKPKP-Bb9CQgrT.js} +1 -1
  312. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CYcL0MEP.js → sequenceDiagram-3UESZ5HK-DJ6V7itG.js} +1 -1
  313. package/web-shell/assets/{stateDiagram-AJRCARHV-DkpIKZM6.js → stateDiagram-AJRCARHV-IImflERY.js} +1 -1
  314. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +1 -0
  315. package/web-shell/assets/{timeline-definition-PNZ67QCA-B50fgyFY.js → timeline-definition-PNZ67QCA-6Q_uWHKh.js} +1 -1
  316. package/web-shell/assets/{vennDiagram-CIIHVFJN-DMlYXh0E.js → vennDiagram-CIIHVFJN-TmyKyjwv.js} +1 -1
  317. package/web-shell/assets/{wardley-L42UT6IY-B2iJy8jY.js → wardley-L42UT6IY-CRh9uiPv.js} +1 -1
  318. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-B-PG81LW.js → wardleyDiagram-YWT4CUSO-59TKAW8w.js} +1 -1
  319. package/web-shell/assets/{xychartDiagram-2RQKCTM6-D1N8kSF9.js → xychartDiagram-2RQKCTM6-GCSUIK2L.js} +1 -1
  320. package/web-shell/index.html +2 -2
  321. package/chunks/nonInteractiveCli-74XMYNLX.js +0 -143
  322. package/web-shell/assets/channel-C-gQ4Nim.js +0 -1
  323. package/web-shell/assets/classDiagram-4FO5ZUOK-DKEurkx0.js +0 -1
  324. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DKEurkx0.js +0 -1
  325. package/web-shell/assets/index-Du08qEb3.js +0 -1249
  326. package/web-shell/assets/index-tq1xUECo.css +0 -5
  327. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-QSG1JRm2.js +0 -1
  328. package/chunks/{chunk-IAU6HCJZ.js → chunk-D3UEZIQH.js} +6 -6
  329. /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
@@ -3,16 +3,20 @@
3
3
  import {
4
4
  ChannelWorkerReconcileError,
5
5
  createChannelWorkerGroup
6
- } from "./chunk-UWSREISS.js";
7
- import "./chunk-ELHHYF7E.js";
6
+ } from "./chunk-T2QMKU3R.js";
7
+ import "./chunk-XZC5VLBZ.js";
8
+ import "./chunk-B4AJNNOL.js";
9
+ import "./chunk-2RFKHEXL.js";
10
+ import "./chunk-GNR2RNMP.js";
11
+ import "./chunk-FYJ7W2PI.js";
8
12
  import "./chunk-U4VTUMMK.js";
9
- import "./chunk-4AVIERNE.js";
13
+ import "./chunk-GZ3RCT54.js";
10
14
  import "./chunk-ALMR3E6Q.js";
11
15
  import "./chunk-BK2UNYWD.js";
12
16
  import "./chunk-M5GB774H.js";
13
- import "./chunk-BJHP755Z.js";
14
- import "./chunk-UDXSXLER.js";
15
17
  import "./chunk-5HBA2Z7V.js";
18
+ import "./chunk-7I5GTCT4.js";
19
+ import "./chunk-UDXSXLER.js";
16
20
  import "./chunk-TWPJO254.js";
17
21
  import "./chunk-H6XPXXMH.js";
18
22
  import "./chunk-5O2XNYP6.js";
@@ -2,22 +2,26 @@
2
2
  "use strict";
3
3
  import {
4
4
  ChannelWorkerReconcileError
5
- } from "./chunk-UWSREISS.js";
5
+ } from "./chunk-T2QMKU3R.js";
6
+ import "./chunk-XZC5VLBZ.js";
7
+ import "./chunk-B4AJNNOL.js";
8
+ import "./chunk-2RFKHEXL.js";
6
9
  import {
7
10
  ChannelWorkerStartupError,
8
11
  ChannelWorkerStopError
9
- } from "./chunk-ELHHYF7E.js";
12
+ } from "./chunk-GNR2RNMP.js";
13
+ import "./chunk-FYJ7W2PI.js";
10
14
  import {
11
15
  ChannelDeliveryError,
12
16
  ChannelWebhookEnqueueError
13
17
  } from "./chunk-U4VTUMMK.js";
14
- import "./chunk-4AVIERNE.js";
18
+ import "./chunk-GZ3RCT54.js";
15
19
  import "./chunk-ALMR3E6Q.js";
16
20
  import "./chunk-BK2UNYWD.js";
17
21
  import "./chunk-M5GB774H.js";
18
- import "./chunk-BJHP755Z.js";
19
- import "./chunk-UDXSXLER.js";
20
22
  import "./chunk-5HBA2Z7V.js";
23
+ import "./chunk-7I5GTCT4.js";
24
+ import "./chunk-UDXSXLER.js";
21
25
  import "./chunk-TWPJO254.js";
22
26
  import "./chunk-H6XPXXMH.js";
23
27
  import {
@@ -4,15 +4,16 @@ import {
4
4
  ChannelWorkerStartupError,
5
5
  ChannelWorkerStopError,
6
6
  createChannelWorkerSupervisor
7
- } from "./chunk-ELHHYF7E.js";
7
+ } from "./chunk-GNR2RNMP.js";
8
+ import "./chunk-FYJ7W2PI.js";
8
9
  import "./chunk-U4VTUMMK.js";
9
- import "./chunk-4AVIERNE.js";
10
+ import "./chunk-GZ3RCT54.js";
10
11
  import "./chunk-ALMR3E6Q.js";
11
12
  import "./chunk-BK2UNYWD.js";
12
13
  import "./chunk-M5GB774H.js";
13
- import "./chunk-BJHP755Z.js";
14
- import "./chunk-UDXSXLER.js";
15
14
  import "./chunk-5HBA2Z7V.js";
15
+ import "./chunk-7I5GTCT4.js";
16
+ import "./chunk-UDXSXLER.js";
16
17
  import "./chunk-TWPJO254.js";
17
18
  import "./chunk-H6XPXXMH.js";
18
19
  import "./chunk-5O2XNYP6.js";
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  createDebugLogger,
5
5
  isNodeError
6
- } from "./chunk-ATIV6G7N.js";
6
+ } from "./chunk-UHUSJ6X7.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-5O2XNYP6.js";
@@ -818,7 +818,7 @@ var QwenIgnoreParser = class {
818
818
  }
819
819
  continue;
820
820
  }
821
- const patterns = (content ?? "").split("\n").map((p) => p.trim()).filter((p) => p !== "" && !p.startsWith("#"));
821
+ const patterns = (content ?? "").split("\n").map((p) => p.endsWith("\r") ? p.slice(0, -1) : p).filter((p) => p.trim() !== "" && !p.startsWith("#"));
822
822
  if (patterns.length > 0) {
823
823
  const sourceIgnorer = (0, import_ignore.default)();
824
824
  sourceIgnorer.add(patterns);
@@ -5,17 +5,17 @@ import {
5
5
  } from "./chunk-NAVJD2PQ.js";
6
6
  import {
7
7
  formatFetchErrorForUser
8
- } from "./chunk-2LFSPVBC.js";
8
+ } from "./chunk-LW3RFMG7.js";
9
9
  import {
10
10
  combineAbortSignals
11
11
  } from "./chunk-DJ2GSRLV.js";
12
12
  import {
13
13
  atomicWriteFile
14
- } from "./chunk-BOWYL27T.js";
14
+ } from "./chunk-7XATOOE7.js";
15
15
  import {
16
16
  Storage,
17
17
  createDebugLogger
18
- } from "./chunk-ATIV6G7N.js";
18
+ } from "./chunk-UHUSJ6X7.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -10,11 +10,11 @@ import {
10
10
  } from "./chunk-CPBF7KYF.js";
11
11
  import {
12
12
  atomicWriteJSON
13
- } from "./chunk-BOWYL27T.js";
13
+ } from "./chunk-7XATOOE7.js";
14
14
  import {
15
15
  Storage,
16
16
  isNodeError
17
- } from "./chunk-ATIV6G7N.js";
17
+ } from "./chunk-UHUSJ6X7.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolveChannelCwd
5
- } from "./chunk-7VOUXBKJ.js";
5
+ } from "./chunk-TFRMVU6R.js";
6
6
  import {
7
7
  getPlugin,
8
8
  supportedTypes
9
- } from "./chunk-ZEVUICUF.js";
9
+ } from "./chunk-XBYYDKAZ.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  CHANNEL_STARTUP_PROFILE_VERSION
5
- } from "./chunk-3SJ43L4W.js";
5
+ } from "./chunk-XZC5VLBZ.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  MissingCliEntryError
5
- } from "./chunk-WZOPR2ZP.js";
5
+ } from "./chunk-R7ZITH3J.js";
6
6
  import {
7
7
  redactLogCredentials
8
8
  } from "./chunk-M5GB774H.js";
@@ -125,6 +125,144 @@ function callHook(hook, value) {
125
125
  }
126
126
  __name(callHook, "callHook");
127
127
 
128
+ // packages/acp-bridge/src/process-registry.ts
129
+ init_esbuild_shims();
130
+ var TERM_GRACE_MS = 5e3;
131
+ var EXIT_DEADLINE_MS = 1e4;
132
+ var ProcessRegistry = class {
133
+ static {
134
+ __name(this, "ProcessRegistry");
135
+ }
136
+ reservations = /* @__PURE__ */ new Set();
137
+ children = /* @__PURE__ */ new Set();
138
+ draining = false;
139
+ shutdownPromise;
140
+ reserve() {
141
+ if (this.draining) {
142
+ throw new Error("ACP process registry is draining");
143
+ }
144
+ const token = Symbol("acp-child");
145
+ this.reservations.add(token);
146
+ let settled = false;
147
+ return {
148
+ attach: /* @__PURE__ */ __name((child) => {
149
+ if (settled || !this.reservations.delete(token)) {
150
+ throw new Error("ACP process reservation is no longer active");
151
+ }
152
+ settled = true;
153
+ const tracked = new TrackedChild(child, () => {
154
+ this.children.delete(tracked);
155
+ });
156
+ this.children.add(tracked);
157
+ if (this.draining) void tracked.terminate().catch(() => {
158
+ });
159
+ return tracked;
160
+ }, "attach"),
161
+ cancel: /* @__PURE__ */ __name(() => {
162
+ if (settled) return;
163
+ settled = true;
164
+ this.reservations.delete(token);
165
+ }, "cancel")
166
+ };
167
+ }
168
+ shutdown() {
169
+ if (this.shutdownPromise) return this.shutdownPromise;
170
+ this.draining = true;
171
+ this.shutdownPromise = Promise.allSettled(
172
+ [...this.children].map((child) => child.terminate())
173
+ ).then((results) => {
174
+ const failures = results.flatMap(
175
+ (result) => result.status === "rejected" ? [result.reason] : []
176
+ );
177
+ if (failures.length > 0) {
178
+ throw new AggregateError(failures, "ACP child process shutdown failed");
179
+ }
180
+ });
181
+ return this.shutdownPromise;
182
+ }
183
+ killAllSync() {
184
+ this.draining = true;
185
+ for (const child of this.children) child.killSync();
186
+ }
187
+ get activeProcessCount() {
188
+ return this.children.size;
189
+ }
190
+ };
191
+ var TrackedChild = class {
192
+ constructor(child, onExit) {
193
+ this.child = child;
194
+ this.onExit = onExit;
195
+ this.exited = new Promise((resolve) => {
196
+ const finish = /* @__PURE__ */ __name((info) => {
197
+ if (this.exitedSettled) return;
198
+ this.exitedSettled = true;
199
+ this.onExit();
200
+ resolve(info);
201
+ }, "finish");
202
+ child.once("exit", (exitCode, signalCode) => {
203
+ finish({ exitCode, signalCode });
204
+ });
205
+ child.once("spawn", () => {
206
+ this.spawnConfirmed = true;
207
+ });
208
+ child.once("error", () => {
209
+ if (!this.spawnConfirmed) finish(void 0);
210
+ });
211
+ });
212
+ }
213
+ static {
214
+ __name(this, "TrackedChild");
215
+ }
216
+ exited;
217
+ exitedSettled = false;
218
+ spawnConfirmed = false;
219
+ terminatePromise;
220
+ terminate() {
221
+ this.terminatePromise ??= this.terminateOnce();
222
+ return this.terminatePromise;
223
+ }
224
+ killSync() {
225
+ if (this.exitedSettled) return;
226
+ try {
227
+ this.child.kill("SIGKILL");
228
+ } catch {
229
+ }
230
+ }
231
+ async terminateOnce() {
232
+ if (this.exitedSettled) return;
233
+ try {
234
+ this.child.kill("SIGTERM");
235
+ } catch {
236
+ if (this.exitedSettled) return;
237
+ }
238
+ let hardKillTimer;
239
+ let deadlineTimer;
240
+ const deadline = new Promise((_, reject) => {
241
+ hardKillTimer = setTimeout(() => this.killSync(), TERM_GRACE_MS);
242
+ hardKillTimer.unref();
243
+ deadlineTimer = setTimeout(() => {
244
+ reject(
245
+ new Error(
246
+ `ACP child pid=${this.child.pid ?? "unknown"} did not exit within ${EXIT_DEADLINE_MS}ms`
247
+ )
248
+ );
249
+ }, EXIT_DEADLINE_MS);
250
+ deadlineTimer.unref();
251
+ });
252
+ try {
253
+ const exitInfo = await Promise.race([this.exited, deadline]);
254
+ if (exitInfo && (exitInfo.exitCode !== 0 || exitInfo.signalCode !== null)) {
255
+ throw new Error(
256
+ `ACP child pid=${this.child.pid ?? "unknown"} exited uncleanly during shutdown (code=${exitInfo.exitCode ?? "none"}, signal=${exitInfo.signalCode ?? "none"})`
257
+ );
258
+ }
259
+ } finally {
260
+ if (hardKillTimer) clearTimeout(hardKillTimer);
261
+ if (deadlineTimer) clearTimeout(deadlineTimer);
262
+ }
263
+ }
264
+ };
265
+
128
266
  // packages/acp-bridge/src/spawnChannel.ts
129
267
  var cachedMemoryArgs;
130
268
  function getAcpMemoryArgs() {
@@ -178,6 +316,7 @@ function createStderrForwarder(opts) {
178
316
  }
179
317
  __name(createStderrForwarder, "createStderrForwarder");
180
318
  function createSpawnChannelFactory(options = {}) {
319
+ const processRegistry = options.processRegistry ?? new ProcessRegistry();
181
320
  return async (workspaceCwd, childEnvOverrides) => {
182
321
  const sourceEnv = options.sourceEnv ?? process.env;
183
322
  const cliEntry = sourceEnv["QWEN_CLI_ENTRY"] || process.argv[1];
@@ -194,21 +333,29 @@ function createSpawnChannelFactory(options = {}) {
194
333
  const execArgs = process.execArgv.filter(
195
334
  (a) => !/^--inspect(-brk)?($|=)/.test(a)
196
335
  );
197
- const child = spawn(
198
- process.execPath,
199
- [
200
- ...execArgs,
201
- ...memoryArgs,
202
- cliEntry,
203
- "--acp",
204
- ...options.extraArgs ?? []
205
- ],
206
- {
207
- cwd: workspaceCwd,
208
- stdio: ["pipe", "pipe", "pipe"],
209
- env: childEnv
210
- }
211
- );
336
+ const reservation = processRegistry.reserve();
337
+ let child;
338
+ try {
339
+ child = spawn(
340
+ process.execPath,
341
+ [
342
+ ...execArgs,
343
+ ...memoryArgs,
344
+ cliEntry,
345
+ "--acp",
346
+ ...options.extraArgs ?? []
347
+ ],
348
+ {
349
+ cwd: workspaceCwd,
350
+ stdio: ["pipe", "pipe", "pipe"],
351
+ env: childEnv
352
+ }
353
+ );
354
+ } catch (error) {
355
+ reservation.cancel();
356
+ throw error;
357
+ }
358
+ const trackedChild = reservation.attach(child);
212
359
  if (child.stderr) {
213
360
  const prefix = `[serve pid=${child.pid} cwd=${workspaceCwd}] `;
214
361
  const forwarder = createStderrForwarder({
@@ -221,21 +368,8 @@ function createSpawnChannelFactory(options = {}) {
221
368
  child.stderr.on("error", () => {
222
369
  });
223
370
  }
224
- const exited = new Promise((resolve) => {
225
- let resolved = false;
226
- const finish = /* @__PURE__ */ __name((info) => {
227
- if (resolved) return;
228
- resolved = true;
229
- resolve(info);
230
- }, "finish");
231
- child.once(
232
- "exit",
233
- (code, signal) => finish({ exitCode: code, signalCode: signal })
234
- );
235
- child.once("error", () => finish(void 0));
236
- });
237
371
  if (!child.stdin || !child.stdout) {
238
- child.kill("SIGKILL");
372
+ trackedChild.killSync();
239
373
  throw new Error(
240
374
  "Spawned ACP child has no stdin/stdout \u2014 cannot establish NDJSON channel."
241
375
  );
@@ -245,22 +379,14 @@ function createSpawnChannelFactory(options = {}) {
245
379
  const stream = ndJsonStream(writable, readable, options.pipeHooks);
246
380
  return {
247
381
  stream,
248
- kill: /* @__PURE__ */ __name(() => killChild(child), "kill"),
249
- killSync: /* @__PURE__ */ __name(() => {
250
- if (child.exitCode === null && child.signalCode === null) {
251
- try {
252
- child.kill("SIGKILL");
253
- } catch {
254
- }
255
- }
256
- }, "killSync"),
257
- exited
382
+ kill: /* @__PURE__ */ __name(() => trackedChild.terminate(), "kill"),
383
+ killSync: /* @__PURE__ */ __name(() => trackedChild.killSync(), "killSync"),
384
+ exited: trackedChild.exited
258
385
  };
259
386
  };
260
387
  }
261
388
  __name(createSpawnChannelFactory, "createSpawnChannelFactory");
262
389
  var defaultSpawnChannelFactory = createSpawnChannelFactory();
263
- var KILL_HARD_DEADLINE_MS = 1e4;
264
390
  var SCRUBBED_CHILD_ENV_KEYS = /* @__PURE__ */ new Set([
265
391
  "QWEN_SERVER_TOKEN",
266
392
  "QWEN_CODE_SIMPLE"
@@ -283,46 +409,6 @@ function scrubChildEnv(source, scrubbed, overrides) {
283
409
  return childEnv;
284
410
  }
285
411
  __name(scrubChildEnv, "scrubChildEnv");
286
- function killChild(child) {
287
- return new Promise((resolve) => {
288
- if (child.exitCode !== null || child.signalCode !== null) {
289
- resolve();
290
- return;
291
- }
292
- let resolved = false;
293
- const finish = /* @__PURE__ */ __name(() => {
294
- if (resolved) return;
295
- resolved = true;
296
- child.removeListener("exit", finish);
297
- resolve();
298
- }, "finish");
299
- child.once("exit", finish);
300
- try {
301
- child.kill("SIGTERM");
302
- } catch {
303
- finish();
304
- return;
305
- }
306
- setTimeout(() => {
307
- if (!resolved && child.exitCode === null && child.signalCode === null) {
308
- try {
309
- child.kill("SIGKILL");
310
- } catch {
311
- }
312
- }
313
- }, 5e3).unref();
314
- setTimeout(() => {
315
- if (!resolved) {
316
- process.stderr.write(
317
- `qwen serve: killChild hard deadline (${KILL_HARD_DEADLINE_MS}ms) reached; child pid=${child.pid} still alive (uninterruptible sleep?) \u2014 abandoning. Operator should check for zombie qwen --acp processes holding workspace resources.
318
- `
319
- );
320
- finish();
321
- }
322
- }, KILL_HARD_DEADLINE_MS).unref();
323
- });
324
- }
325
- __name(killChild, "killChild");
326
412
 
327
413
  export {
328
414
  ndJsonStream,