@qwen-code/qwen-code 0.20.0 → 0.20.1-nightly.20260724.7d17c44a3

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 (388) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +1 -1
  2. package/bundled/qc-helper/docs/features/auto-mode.md +19 -16
  3. package/bundled/qc-helper/docs/features/commands.md +54 -0
  4. package/bundled/qc-helper/docs/features/sub-agents.md +16 -7
  5. package/bundled/qc-helper/docs/integration-github-action.md +1 -1
  6. package/bundled/qc-helper/docs/qwen-serve.md +2 -1
  7. package/bundled/review/DESIGN.md +2 -2
  8. package/bundled/review/SKILL.md +7 -5
  9. package/chunks/MaxSizedBox-LGRTXB47.js +84 -0
  10. package/chunks/{StandaloneSessionPicker-CEGO2AZX.js → StandaloneSessionPicker-H3TBU3C3.js} +68 -56
  11. package/chunks/{acp-startup-profiler-N3RHHXJ3.js → acp-startup-profiler-RV3IV562.js} +2 -2
  12. package/chunks/{acpAgent-YUR43TLG.js → acpAgent-5D7P4BB5.js} +2061 -556
  13. package/chunks/agent-W7UAHCCI.js +80 -0
  14. package/chunks/agent-headless-KTBMPRSC.js +74 -0
  15. package/chunks/{anthropicContentGenerator-HVKLXOOU.js → anthropicContentGenerator-ZLQ3X2HI.js} +112 -45
  16. package/chunks/{artifact-tool-WBCAMD3O.js → artifact-tool-OKMWONT6.js} +3 -3
  17. package/chunks/{askUserQuestion-6DZC4UV5.js → askUserQuestion-V6FUS23G.js} +3 -3
  18. package/chunks/bridge-FFC4C6VD.js +89 -0
  19. package/chunks/{build-SSCNEHZZ.js → build-RV63TIRH.js} +2 -3
  20. package/chunks/{ca-2SL2BXTK.js → ca-GKRQZ7AM.js} +612 -201
  21. package/chunks/{channel-worker-group-53CMOPFT.js → channel-worker-group-MA3WXWYX.js} +7 -6
  22. package/chunks/{channel-worker-manager-UTXILKC2.js → channel-worker-manager-TIYYYBCT.js} +189 -29
  23. package/chunks/{channel-worker-supervisor-ZGO2W2MD.js → channel-worker-supervisor-CXRCDA4Y.js} +6 -5
  24. package/chunks/{chunk-TYQMGACW.js → chunk-22C7BQ6D.js} +508 -10967
  25. package/chunks/{chunk-4EP2PYYL.js → chunk-2G6QIHYL.js} +5 -5
  26. package/chunks/{chunk-H2XVO6NE.js → chunk-2MIN6GRR.js} +1 -1
  27. package/chunks/chunk-2RFKHEXL.js +74 -0
  28. package/chunks/{chunk-7SXZC7ID.js → chunk-2WTVWAKT.js} +7 -6
  29. package/chunks/{chunk-TIH2ZTOC.js → chunk-32A4PI3E.js} +2 -2
  30. package/chunks/chunk-36HSVBBU.js +469 -0
  31. package/chunks/{chunk-IR46U7RB.js → chunk-3FB2Y2OE.js} +3 -3
  32. package/chunks/{chunk-QR6U5QPP.js → chunk-3SJ43L4W.js} +4 -0
  33. package/chunks/chunk-3Z43GZUQ.js +32 -0
  34. package/chunks/chunk-43T5WDQ7.js +127 -0
  35. package/chunks/chunk-46UV252V.js +128 -0
  36. package/chunks/{chunk-JD3MKVKL.js → chunk-4K56OJFJ.js} +1 -1
  37. package/chunks/{chunk-KTUQMDEP.js → chunk-4K7VDKAD.js} +1 -1
  38. package/chunks/{chunk-QKYTTBYW.js → chunk-4LVZNIDO.js} +1 -1
  39. package/chunks/{chunk-OWCALFEG.js → chunk-54R2CV2G.js} +1 -1
  40. package/chunks/{chunk-ZEOZL37W.js → chunk-57FIIFJN.js} +1 -1
  41. package/chunks/chunk-5BS3KLRP.js +6194 -0
  42. package/chunks/{chunk-NEEB7UEN.js → chunk-6GMVPFB2.js} +153 -72
  43. package/chunks/{chunk-GMGDLUC7.js → chunk-6IL7KRLE.js} +1 -1
  44. package/chunks/chunk-6PVPNMXU.js +29 -0
  45. package/chunks/chunk-6QHAUJUE.js +293 -0
  46. package/chunks/chunk-6VK3IRTX.js +10017 -0
  47. package/chunks/{chunk-BDBMYST4.js → chunk-6X4GWOPW.js} +1 -1
  48. package/chunks/{chunk-AYCDXHZB.js → chunk-7Z6JQEL6.js} +1 -1
  49. package/chunks/{chunk-FSL5W5TI.js → chunk-AFFGGOF6.js} +4 -4
  50. package/chunks/chunk-AMDSOFFV.js +10860 -0
  51. package/chunks/chunk-AXUW635Q.js +934 -0
  52. package/chunks/{chunk-A5LYNIW7.js → chunk-BJBUDCM3.js} +8 -8
  53. package/chunks/chunk-BK2UNYWD.js +29 -0
  54. package/chunks/{chunk-6RLROE6G.js → chunk-BLFVGB7D.js} +30 -4
  55. package/chunks/chunk-BPJSQIJX.js +100 -0
  56. package/chunks/{chunk-FLSVD6BS.js → chunk-BRTR7S7O.js} +3 -3
  57. package/chunks/{chunk-KG3XV6FH.js → chunk-BSNWBC33.js} +32 -2
  58. package/chunks/chunk-BULDBTYC.js +153 -0
  59. package/chunks/{chunk-PBWEWI4N.js → chunk-BW5Z5NOG.js} +83 -74
  60. package/chunks/{chunk-EIAK6Q2B.js → chunk-C3VHAXP2.js} +20 -3
  61. package/chunks/{chunk-6AFUCL3D.js → chunk-CEZB3XFD.js} +1 -1
  62. package/chunks/chunk-CHMENNJV.js +1832 -0
  63. package/chunks/{chunk-TMQ6XQCX.js → chunk-CK3IEEHR.js} +416 -291
  64. package/chunks/{chunk-OYZWQNWG.js → chunk-CK6UABV2.js} +2 -2
  65. package/chunks/{chunk-VZQUV7VK.js → chunk-CKTMY3EP.js} +1 -1
  66. package/chunks/{chunk-VDWBQ5AW.js → chunk-CUPAVLRY.js} +5 -2
  67. package/chunks/{chunk-I2PYAYFM.js → chunk-CXUFILV3.js} +3 -3
  68. package/chunks/chunk-DP3IHZGG.js +1498 -0
  69. package/chunks/{chunk-BMWMT5Y2.js → chunk-DP5GT2MW.js} +7 -375
  70. package/chunks/{chunk-D22SX43D.js → chunk-DWNZ6PVQ.js} +1 -1
  71. package/chunks/{chunk-5SCI6E3E.js → chunk-E4IMU4Y5.js} +1 -1
  72. package/chunks/{chunk-DP5GXXNZ.js → chunk-EL2IQ2S5.js} +5 -1
  73. package/chunks/{chunk-EZVDJFZ7.js → chunk-ERLGR7GI.js} +1 -1
  74. package/chunks/{chunk-IVPSS6EL.js → chunk-F5MBYZSU.js} +4 -4
  75. package/chunks/{chunk-AQIEINAY.js → chunk-F6IYL66A.js} +28 -1766
  76. package/chunks/{chunk-FEOZBUMT.js → chunk-FODK6UMO.js} +0 -27
  77. package/chunks/{chunk-PGEPSDJI.js → chunk-FWNZ7CVN.js} +24 -20
  78. package/chunks/{chunk-5JBR5XIK.js → chunk-G7EFBBVF.js} +220 -141
  79. package/chunks/chunk-GLNBDYUX.js +38 -0
  80. package/chunks/{chunk-ANPINBOF.js → chunk-H4YKEV2X.js} +5 -5
  81. package/chunks/{chunk-TDKQP3M6.js → chunk-HIJQF5B5.js} +1 -1
  82. package/chunks/{chunk-FQD7GFSV.js → chunk-HJJDKFL5.js} +3 -3
  83. package/chunks/{chunk-4N3KMAIL.js → chunk-HPWHDJID.js} +152 -35
  84. package/chunks/{chunk-KQNM4EO7.js → chunk-HQCSRJ3P.js} +138 -6
  85. package/chunks/chunk-HTR4WV6U.js +327 -0
  86. package/chunks/{chunk-YWEW33JY.js → chunk-HVO55LUD.js} +7 -7
  87. package/chunks/{chunk-MJ6S23WZ.js → chunk-HZEWYOVI.js} +5 -5
  88. package/chunks/chunk-IFG6TYJ2.js +16577 -0
  89. package/chunks/{chunk-B3KGZCQN.js → chunk-IJTOWOD7.js} +322 -202
  90. package/chunks/{chunk-RS7MT2QG.js → chunk-IPUUTYMV.js} +2 -4
  91. package/chunks/{chunk-4ILMYHEI.js → chunk-IRDZJSCL.js} +3 -3
  92. package/chunks/{chunk-XU457J4V.js → chunk-IRH27ZC2.js} +2 -2
  93. package/chunks/{chunk-33XUAINQ.js → chunk-J5UKQEFG.js} +69 -9
  94. package/chunks/{chunk-G45X5TRN.js → chunk-JCW2R7WC.js} +1 -72
  95. package/chunks/{chunk-S2XVRHDN.js → chunk-JDFBBGRD.js} +1 -1
  96. package/chunks/{chunk-4XNLIGVA.js → chunk-JKCALGYN.js} +1023 -383
  97. package/chunks/{chunk-TJTKSVIV.js → chunk-JLU636DO.js} +5 -1
  98. package/chunks/{chunk-VEXFOTEO.js → chunk-JYUSL2V4.js} +3 -3
  99. package/chunks/{chunk-S2PD3EZD.js → chunk-KJEMJWNH.js} +1 -1
  100. package/chunks/{chunk-E2UVIFI2.js → chunk-KRXPRVGL.js} +0 -1
  101. package/chunks/{chunk-CZF3E5GF.js → chunk-LA5H3LM5.js} +1 -1
  102. package/chunks/{chunk-NDMQLV4Y.js → chunk-LBAO2XRA.js} +4 -4
  103. package/chunks/{chunk-7RMOXZTC.js → chunk-LDPP5VTZ.js} +4 -4
  104. package/chunks/{chunk-KDC6GNQR.js → chunk-LEEWLFHW.js} +4 -4
  105. package/chunks/{chunk-KX6UK4VJ.js → chunk-LI4I37W4.js} +22152 -18007
  106. package/chunks/{chunk-OOCI5VVU.js → chunk-LIZRAKPB.js} +1 -1
  107. package/chunks/{chunk-AJSJ5TTU.js → chunk-LP2E4MQG.js} +1 -1
  108. package/chunks/chunk-LS77BEZP.js +405 -0
  109. package/chunks/{chunk-BRRF37CO.js → chunk-LYTBLSSW.js} +5 -5
  110. package/chunks/{chunk-DBE4QFZS.js → chunk-MB7ENXPR.js} +39 -37
  111. package/chunks/{chunk-GKY2OJ7R.js → chunk-MOHAWVLH.js} +4 -4
  112. package/chunks/chunk-NABLFI57.js +82 -0
  113. package/chunks/chunk-NBQDBANR.js +411 -0
  114. package/chunks/{chunk-EAUYY7SS.js → chunk-NOAAFNTJ.js} +43 -10
  115. package/chunks/chunk-NXS53EA7.js +1462 -0
  116. package/chunks/{chunk-C27BYUX6.js → chunk-OQB4EXO4.js} +14 -11
  117. package/chunks/{chunk-NHDKSOEY.js → chunk-P3QQPMQA.js} +5 -5
  118. package/chunks/{chunk-OP4MOGXF.js → chunk-P5RRUHL7.js} +23 -1
  119. package/chunks/{chunk-KOR3XKCA.js → chunk-PBII2NFX.js} +12 -6
  120. package/chunks/{chunk-O3OCNYY5.js → chunk-PDYB7HG2.js} +2 -2
  121. package/chunks/{chunk-2HOVDT7W.js → chunk-PFSUKTZH.js} +1 -1
  122. package/chunks/chunk-PKL3HGNZ.js +2299 -0
  123. package/chunks/{chunk-5DTTYNB7.js → chunk-PQNHRFJC.js} +16 -3
  124. package/chunks/{chunk-OLMETXLX.js → chunk-PXHK5ONM.js} +41 -9
  125. package/chunks/{chunk-PF4CHQOJ.js → chunk-Q6GU6TKM.js} +11 -10
  126. package/chunks/{chunk-4ODB7WIB.js → chunk-QAFKR7WR.js} +1 -1
  127. package/chunks/{chunk-PBATSWUQ.js → chunk-QBUDF33N.js} +1 -1
  128. package/chunks/{chunk-BVLROR2T.js → chunk-QLJUC7TG.js} +1 -1
  129. package/chunks/{chunk-UEY4AYUL.js → chunk-QNLNLENL.js} +2 -2
  130. package/chunks/{chunk-333CXMNJ.js → chunk-QXZTZJLX.js} +5 -5
  131. package/chunks/chunk-R6D2CTQR.js +289 -0
  132. package/chunks/{chunk-7PZ2ATFZ.js → chunk-R6SKHK3T.js} +54 -29
  133. package/chunks/{chunk-OONJNQ42.js → chunk-RGG6M2WF.js} +4 -4
  134. package/chunks/{chunk-RFIAR4YL.js → chunk-RV4C2ZFG.js} +1 -1
  135. package/chunks/{chunk-O3Z73NBP.js → chunk-RW2NEXYJ.js} +15 -11
  136. package/chunks/{chunk-HZPN55E5.js → chunk-SJEDL7DI.js} +1 -1
  137. package/chunks/{chunk-AKX4WPPP.js → chunk-SWBJRDYC.js} +866 -183
  138. package/chunks/{chunk-NBMIC7DR.js → chunk-SX4PK3FC.js} +145 -5
  139. package/chunks/chunk-T3452DP5.js +246 -0
  140. package/chunks/{chunk-TB6UDU4T.js → chunk-THJNPLI4.js} +16 -16
  141. package/chunks/{chunk-T4TZQJ7W.js → chunk-TWPJO254.js} +5 -16
  142. package/chunks/chunk-U7ZFW55U.js +2098 -0
  143. package/chunks/{chunk-JNWZQ27S.js → chunk-UCOJC6EB.js} +72 -23
  144. package/chunks/{chunk-W7H223ZZ.js → chunk-UGYMA4EI.js} +1 -1
  145. package/chunks/{chunk-X6YQWCIJ.js → chunk-UH3WSE5L.js} +13 -1
  146. package/chunks/{chunk-2LL7TXB4.js → chunk-UH7242DI.js} +3 -3
  147. package/chunks/{chunk-CB2HFGRV.js → chunk-UJV643E2.js} +31 -6
  148. package/chunks/chunk-UO7DCGEV.js +121 -0
  149. package/chunks/{chunk-Y2ENGUD6.js → chunk-UPF7PTBI.js} +79 -2
  150. package/chunks/chunk-UW5EOVUN.js +249 -0
  151. package/chunks/{chunk-SJMV7ZBK.js → chunk-VLVO52KC.js} +8 -8
  152. package/chunks/{chunk-R3VWUU2E.js → chunk-VYPFXUCB.js} +1 -1
  153. package/chunks/{chunk-S2W2LVDU.js → chunk-WHFK6G6U.js} +8 -9
  154. package/chunks/chunk-WI3KCKZ5.js +391 -0
  155. package/chunks/{chunk-NGFEPAE6.js → chunk-WLEFWSSC.js} +8 -6
  156. package/chunks/{chunk-XVVH63JG.js → chunk-WUJXJ34P.js} +3 -3
  157. package/chunks/{chunk-MAQQGNQ5.js → chunk-WYLPWQHJ.js} +56 -717
  158. package/chunks/{chunk-D2VIDMVM.js → chunk-X6N25LXS.js} +2 -2
  159. package/chunks/chunk-XAWJ2526.js +1049 -0
  160. package/chunks/{chunk-CV63PP6U.js → chunk-YCIM6O3I.js} +1 -1
  161. package/chunks/{chunk-OEO2ERWK.js → chunk-Z44CVEUF.js} +54 -33
  162. package/chunks/{chunk-TKLLK6XQ.js → chunk-ZT4POVWC.js} +11 -11
  163. package/chunks/{chunk-NIJEXGV6.js → chunk-ZXYUQXY5.js} +148 -10
  164. package/chunks/{computer-use-NIWQNUZF.js → computer-use-UJ5T34TE.js} +50 -37
  165. package/chunks/{config-utils-AHQ6YZ66.js → config-utils-XQRXHAN3.js} +3 -3
  166. package/chunks/contextCommand-CSCB4E5M.js +79 -0
  167. package/chunks/{create-sub-session-MGNX52P3.js → create-sub-session-55F3GOLK.js} +46 -33
  168. package/chunks/{create-sub-session-P26FE5GG.js → create-sub-session-JPCSYZAJ.js} +3 -3
  169. package/chunks/{cron-create-JWFHBDRQ.js → cron-create-CUMELMPL.js} +6 -6
  170. package/chunks/{cron-delete-GDX4E26G.js → cron-delete-QZFV6U3P.js} +5 -5
  171. package/chunks/{cron-list-USMAIWPT.js → cron-list-IDKO7ZO2.js} +5 -5
  172. package/chunks/{daemon-RG2MAI6T.js → daemon-7LP7R6IU.js} +500 -133
  173. package/chunks/daemon-status-provider-6YNZ3UAE.js +88 -0
  174. package/chunks/{de-I7ZIYXZC.js → de-4IBXM7CN.js} +5 -1
  175. package/chunks/{dist-WGTQO7F2.js → dist-376652EZ.js} +114 -28
  176. package/chunks/{dist-53PZYC5B.js → dist-3YCTE6HD.js} +2 -2
  177. package/chunks/{dist-2BHAYBKP.js → dist-D7Z3HOO7.js} +14 -2
  178. package/chunks/{dist-FUTEXY6A.js → dist-MEGJFGAI.js} +40 -9
  179. package/chunks/{dist-2MIU4UUH.js → dist-NQ436QEX.js} +1 -1
  180. package/chunks/{dist-AU7NQQRP.js → dist-NQNTOIEN.js} +26 -2
  181. package/chunks/earlyInputCapture-HPUVJ2KH.js +81 -0
  182. package/chunks/{edit-3QV3JZJL.js → edit-7CMAN3F4.js} +50 -39
  183. package/chunks/{en-XE34GKAA.js → en-SALLIJS7.js} +6 -1
  184. package/chunks/{enter-worktree-4GMMF7EG.js → enter-worktree-3PH4YTY2.js} +49 -36
  185. package/chunks/{enterPlanMode-L5UWBAUC.js → enterPlanMode-MSXLSWLI.js} +55 -37
  186. package/chunks/{environment-3OV7UQOT.js → environment-KS36ZHBE.js} +48 -35
  187. package/chunks/errors-LCPFS62A.js +87 -0
  188. package/chunks/{exit-worktree-DDP57JLV.js → exit-worktree-ARA4C3CK.js} +49 -36
  189. package/chunks/{exitPlanMode-CJBLGPIP.js → exitPlanMode-GCDIQPB7.js} +49 -36
  190. package/chunks/{fast-path-M6RP2ING.js → fast-path-IDHBVIT6.js} +3 -2
  191. package/chunks/{fr-X7KDVZIY.js → fr-WVHEBDDB.js} +5 -1
  192. package/chunks/{gemini-H4PHBJTL.js → gemini-2AFQJMX5.js} +141 -105
  193. package/chunks/{geminiContentGenerator-VURJYPWP.js → geminiContentGenerator-UDIH3YI6.js} +9 -8
  194. package/chunks/{getMachineId-bsd-EXV7SWPA.js → getMachineId-bsd-QFVLPUPT.js} +1 -1
  195. package/chunks/{getMachineId-darwin-IUOMFXU3.js → getMachineId-darwin-DGMQQE2E.js} +1 -1
  196. package/chunks/{getMachineId-linux-K7XJYFHL.js → getMachineId-linux-R4Z6CSWC.js} +1 -1
  197. package/chunks/{getMachineId-unsupported-EA5FDRJ6.js → getMachineId-unsupported-Z3SBVBUV.js} +1 -1
  198. package/chunks/{getMachineId-win-KBA6RAI5.js → getMachineId-win-SCK5UFDT.js} +1 -1
  199. package/chunks/{glob-2KUSRAVQ.js → glob-HCL7HZ67.js} +49 -36
  200. package/chunks/{grep-B5RXVESV.js → grep-CJLBSCTV.js} +49 -36
  201. package/chunks/handleAutoUpdate-Q572P3FL.js +80 -0
  202. package/chunks/i18n-OBB4R7SR.js +96 -0
  203. package/chunks/initializer-LXEY6V3C.js +85 -0
  204. package/chunks/installationInfo-XUAOVMEE.js +79 -0
  205. package/chunks/{ja-2ICT3KXF.js → ja-KY4ROZTE.js} +5 -1
  206. package/chunks/{keychain-token-storage-DWRJMNH3.js → keychain-token-storage-6ACJDYIB.js} +3 -3
  207. package/chunks/{kittyProtocolDetector-HCNNKJTI.js → kittyProtocolDetector-MBRTDRBK.js} +5 -3
  208. package/chunks/list-WAXY7QOU.js +88 -0
  209. package/chunks/list-agents-AH3P5NB7.js +80 -0
  210. package/chunks/loadedSettingsAdapter-OZFNBRHE.js +82 -0
  211. package/chunks/loggingContentGenerator-7WDTTE6G.js +1068 -0
  212. package/chunks/{loop-wakeup-5GLTUBHA.js → loop-wakeup-IHRW6TNB.js} +7 -7
  213. package/chunks/{ls-FHBY3Y7I.js → ls-ZAXZ2G2W.js} +5 -5
  214. package/chunks/{lsp-B6VMEW6Y.js → lsp-R4ZG3UGQ.js} +3 -3
  215. package/chunks/managed-npm-update-N42DO5QW.js +339 -0
  216. package/chunks/mcp-6SOORKTY.js +82 -0
  217. package/chunks/{monitor-GLJZDNPS.js → monitor-4PSVNVU4.js} +51 -37
  218. package/chunks/node-UUDY34IG.js +305 -0
  219. package/chunks/nonInteractiveCli-FBR5S7IZ.js +140 -0
  220. package/chunks/{notebook-edit-AVCIWS4F.js → notebook-edit-QK26632S.js} +50 -39
  221. package/chunks/{openaiContentGenerator-B7W24G3D.js → openaiContentGenerator-IXJS6C2U.js} +33 -20
  222. package/chunks/pidfile-UCFCJOAP.js +85 -0
  223. package/chunks/{processUtils-XZPY2PBB.js → processUtils-YL2LXON2.js} +2 -2
  224. package/chunks/{pt-JJ4XPIBP.js → pt-OK455PLH.js} +5 -1
  225. package/chunks/{qwenContentGenerator-6GUTWJIC.js → qwenContentGenerator-H6WZPJKC.js} +56 -36
  226. package/chunks/{qwenOAuth2-GASEEWGU.js → qwenOAuth2-HTROHKXO.js} +10 -23
  227. package/chunks/read-file-FOYTMUNL.js +31 -0
  228. package/chunks/{read-mcp-resource-AKCL7I43.js → read-mcp-resource-65BWNF3F.js} +3 -3
  229. package/chunks/{record-artifact-PEUB7727.js → record-artifact-2RLSOP6U.js} +3 -3
  230. package/chunks/resumeHistoryUtils-ZNHTWBXS.js +90 -0
  231. package/chunks/ripGrep-K4K4QLNJ.js +72 -0
  232. package/chunks/{ru-STR4KTW7.js → ru-7SPDGMGD.js} +5 -1
  233. package/chunks/{run-qwen-serve-OZGR3FQA.js → run-qwen-serve-XI4MCAFV.js} +343 -88
  234. package/chunks/runtime-4CTBU5WX.js +115 -0
  235. package/chunks/{scheduler-Z7QLMUWA.js → scheduler-TTEITHBF.js} +46 -33
  236. package/chunks/sdk-exporters-grpc-N3OLDF63.js +23214 -0
  237. package/chunks/sdk-exporters-http-AOHAEOMC.js +563 -0
  238. package/chunks/sdk-impl-TLQOC7P4.js +9193 -0
  239. package/chunks/{send-message-3RHE7HSM.js → send-message-GEY4CNPS.js} +47 -8
  240. package/chunks/serve-W7UKJTQT.js +88 -0
  241. package/chunks/{server-SO64U3X5.js → server-JD5PIE7A.js} +3069 -517
  242. package/chunks/{session-2KL2WQAH.js → session-R4BDHLYR.js} +112 -177
  243. package/chunks/{settings-KITVOUSV.js → settings-BXZHA6TZ.js} +50 -37
  244. package/chunks/shell-XYMFCGN5.js +82 -0
  245. package/chunks/{skill-SOQHY455.js → skill-YKXYEPOF.js} +25 -20
  246. package/chunks/spawnChannel-IO4HQLFS.js +81 -0
  247. package/chunks/{src-43LM7JLB.js → src-LKKTJ4NG.js} +382 -235
  248. package/chunks/standalone-update-76JG7DVN.js +91 -0
  249. package/chunks/{startInteractiveUI-3RGTGEX5.js → startInteractiveUI-BXWQUXAS.js} +1314 -958
  250. package/chunks/{syntheticOutput-FG5PQKIR.js → syntheticOutput-2WNMXEU5.js} +4 -4
  251. package/chunks/task-create-R5H74Y76.js +25 -0
  252. package/chunks/{task-list-QWSY4ZIU.js → task-list-WXAFDSRY.js} +7 -7
  253. package/chunks/{task-stop-GWC6UWAL.js → task-stop-CHFZP23W.js} +4 -4
  254. package/chunks/{task-update-NCTAB73Q.js → task-update-Z44A4GAR.js} +11 -9
  255. package/chunks/{team-create-FXN3PEBP.js → team-create-5Y3MCAIM.js} +49 -36
  256. package/chunks/{team-delete-KK37HTOG.js → team-delete-YDCMRSI4.js} +7 -7
  257. package/chunks/{team-plan-approval-GEIZ356Q.js → team-plan-approval-HYJJZ76T.js} +49 -36
  258. package/chunks/theme-manager-3YF2SUZL.js +76 -0
  259. package/chunks/{todoWrite-ERCAMLFS.js → todoWrite-ED2IVZJL.js} +5 -5
  260. package/chunks/{tool-search-XKK7DNOK.js → tool-search-3ZO2XMEP.js} +21 -17
  261. package/chunks/total-session-admission-NDF7EVG7.js +83 -0
  262. package/chunks/trustedFolders-Q7RALK4T.js +92 -0
  263. package/chunks/{chunk-6EFTQYW7.js → undici-3FJYTMOF.js} +24 -399
  264. package/chunks/{chunk-L573Z2QZ.js → undici-PYHBDDPN.js} +1 -5
  265. package/chunks/{update-relaunch-FMVZK6XF.js → update-relaunch-BTW5XGVT.js} +17 -17
  266. package/chunks/updateCheck-MXIU6DWQ.js +91 -0
  267. package/chunks/useAutoAcceptIndicator-BJXHJW77.js +92 -0
  268. package/chunks/{validateNonInterActiveAuth-PRVEB6GG.js → validateNonInterActiveAuth-FLEPF3QQ.js} +90 -76
  269. package/chunks/{version-AZMG6KWL.js → version-75VRONIL.js} +1 -1
  270. package/chunks/{web-fetch-EPGJ5OQQ.js → web-fetch-5X27LYHB.js} +101 -41
  271. package/chunks/web-search-IDMTBJUP.js +718 -0
  272. package/chunks/{workflow-UTNVPW22.js → workflow-JOD2OPFQ.js} +54 -40
  273. package/chunks/workspace-providers-status-WDLBDLPG.js +85 -0
  274. package/chunks/{workspace-registration-store-F3ZX3YHT.js → workspace-registration-store-26Z6J6P5.js} +9 -3
  275. package/chunks/workspace-registry-IABDATX3.js +87 -0
  276. package/chunks/workspace-service-BI4KDYPD.js +97 -0
  277. package/chunks/workspace-skills-status-OVB4LPHA.js +84 -0
  278. package/chunks/write-file-276AJ7KE.js +72 -0
  279. package/chunks/{zh-6ANG2HTL.js → zh-Q54GA5SV.js} +6 -1
  280. package/chunks/{zh-TW-4RR3YHNN.js → zh-TW-VOBNFOPU.js} +6 -1
  281. package/cli-entry.js +164 -12
  282. package/cli.js +19 -12
  283. package/locales/ca.js +773 -203
  284. package/locales/de.js +8 -2
  285. package/locales/en.js +9 -2
  286. package/locales/fr.js +8 -2
  287. package/locales/ja.js +8 -2
  288. package/locales/pt.js +8 -2
  289. package/locales/ru.js +8 -2
  290. package/locales/zh-TW.js +9 -2
  291. package/locales/zh.js +9 -2
  292. package/package.json +3 -3
  293. package/web-shell/assets/{arc-Buk1besA.js → arc-CMb7lr2P.js} +1 -1
  294. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B1aUKYDC.js → architectureDiagram-3BPJPVTR-D6KQ5Kwm.js} +1 -1
  295. package/web-shell/assets/{blockDiagram-GPEHLZMM-CRTdg3Zx.js → blockDiagram-GPEHLZMM-Ce7YYSf8.js} +1 -1
  296. package/web-shell/assets/{c4Diagram-AAUBKEIU-DFdRMp5g.js → c4Diagram-AAUBKEIU-DaStHfor.js} +1 -1
  297. package/web-shell/assets/channel-Dg4f-Kry.js +1 -0
  298. package/web-shell/assets/{chunk-2J33WTMH-4rYQdkEI.js → chunk-2J33WTMH-CPaqadg9.js} +1 -1
  299. package/web-shell/assets/{chunk-4BX2VUAB-Coi-pQJy.js → chunk-4BX2VUAB-Veh9ZGKg.js} +1 -1
  300. package/web-shell/assets/{chunk-55IACEB6-BtBjz02t.js → chunk-55IACEB6-BPTX5n4q.js} +1 -1
  301. package/web-shell/assets/{chunk-727SXJPM-CGYOWorl.js → chunk-727SXJPM-CtXsE_ca.js} +1 -1
  302. package/web-shell/assets/{chunk-AQP2D5EJ-CH5AKhqx.js → chunk-AQP2D5EJ-D8DDCJ8h.js} +1 -1
  303. package/web-shell/assets/{chunk-FMBD7UC4-Cd50-w85.js → chunk-FMBD7UC4-cjMDGzHz.js} +1 -1
  304. package/web-shell/assets/{chunk-ND2GUHAM-C2wF3KCK.js → chunk-ND2GUHAM-BaZ1hNhV.js} +1 -1
  305. package/web-shell/assets/{chunk-QZHKN3VN-pCeRTaWi.js → chunk-QZHKN3VN-C7w-9w5-.js} +1 -1
  306. package/web-shell/assets/classDiagram-4FO5ZUOK-CT7Fo2aW.js +1 -0
  307. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CT7Fo2aW.js +1 -0
  308. package/web-shell/assets/{cose-bilkent-S5V4N54A-B-_fAB6D.js → cose-bilkent-S5V4N54A-DqvBEEIe.js} +1 -1
  309. package/web-shell/assets/{dagre-BM42HDAG-ChSPNHpL.js → dagre-BM42HDAG-RkPyoMAk.js} +1 -1
  310. package/web-shell/assets/{diagram-2AECGRRQ-BX7cFOF3.js → diagram-2AECGRRQ-D9b6nNyg.js} +1 -1
  311. package/web-shell/assets/{diagram-5GNKFQAL-BQUTW92n.js → diagram-5GNKFQAL-CiiNKUIy.js} +1 -1
  312. package/web-shell/assets/{diagram-KO2AKTUF-BkYPh3e4.js → diagram-KO2AKTUF-CP1qizXd.js} +1 -1
  313. package/web-shell/assets/{diagram-LMA3HP47-Cl6jsNyx.js → diagram-LMA3HP47-BGe30TWx.js} +1 -1
  314. package/web-shell/assets/{diagram-OG6HWLK6-DRWoHz8n.js → diagram-OG6HWLK6-CvoEPARH.js} +1 -1
  315. package/web-shell/assets/{erDiagram-TEJ5UH35-CGvFcZco.js → erDiagram-TEJ5UH35-DWfLzVkV.js} +1 -1
  316. package/web-shell/assets/{flowDiagram-I6XJVG4X-vms6oVdv.js → flowDiagram-I6XJVG4X-D-dTQmo6.js} +1 -1
  317. package/web-shell/assets/{ganttDiagram-6RSMTGT7-ukT_sfmi.js → ganttDiagram-6RSMTGT7-CYPHKaGY.js} +1 -1
  318. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bn2ZE2Ut.js → gitGraphDiagram-PVQCEYII-DA7_aQYD.js} +1 -1
  319. package/web-shell/assets/index-B0i-TOYM.css +5 -0
  320. package/web-shell/assets/index-CgCHD46L.js +1225 -0
  321. package/web-shell/assets/{index-wFXp7W68.js → index-DqHNAB8C.js} +1 -1
  322. package/web-shell/assets/{infoDiagram-5YYISTIA-DHJdSi7x.js → infoDiagram-5YYISTIA-B87ljDPa.js} +1 -1
  323. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DOvd2Wph.js → ishikawaDiagram-YF4QCWOH-CYSpyjaN.js} +1 -1
  324. package/web-shell/assets/{journeyDiagram-JHISSGLW-CH_urMCT.js → journeyDiagram-JHISSGLW-DAL6Js6f.js} +1 -1
  325. package/web-shell/assets/{kanban-definition-UN3LZRKU-FKiBdgbH.js → kanban-definition-UN3LZRKU-_zufKGJv.js} +1 -1
  326. package/web-shell/assets/{linear-0ZVQFVKf.js → linear-DidhMgku.js} +1 -1
  327. package/web-shell/assets/{mermaid.core-DJ05ZZIK.js → mermaid.core-DAkX3h3a.js} +5 -5
  328. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BPuUhkUm.js → mindmap-definition-RKZ34NQL-DbZxUBEH.js} +1 -1
  329. package/web-shell/assets/{pieDiagram-4H26LBE5-yLFKcXyG.js → pieDiagram-4H26LBE5-Du9uoqrf.js} +1 -1
  330. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-irWqc1pE.js → quadrantDiagram-W4KKPZXB-DwjELuKm.js} +1 -1
  331. package/web-shell/assets/{requirementDiagram-4Y6WPE33-B_4uMoIV.js → requirementDiagram-4Y6WPE33-BAqfVtBL.js} +1 -1
  332. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-ciA4GPwk.js → sankeyDiagram-5OEKKPKP--hm2VpmK.js} +1 -1
  333. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CRdZvy0U.js → sequenceDiagram-3UESZ5HK-R5MUQaIt.js} +1 -1
  334. package/web-shell/assets/{stateDiagram-AJRCARHV-DaYIkCCn.js → stateDiagram-AJRCARHV-VsX032xQ.js} +1 -1
  335. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-uPWLcSfy.js +1 -0
  336. package/web-shell/assets/{timeline-definition-PNZ67QCA-oBUKv6iH.js → timeline-definition-PNZ67QCA-BqjVRXzg.js} +1 -1
  337. package/web-shell/assets/{vennDiagram-CIIHVFJN-CGW9Sdmb.js → vennDiagram-CIIHVFJN-i2tkvlkg.js} +1 -1
  338. package/web-shell/assets/{wardley-L42UT6IY-CvwKJOCm.js → wardley-L42UT6IY-Ch8G49EM.js} +1 -1
  339. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Ipc260sN.js → wardleyDiagram-YWT4CUSO-bYpWeQNy.js} +1 -1
  340. package/web-shell/assets/{xychartDiagram-2RQKCTM6-D6-CM7pK.js → xychartDiagram-2RQKCTM6-C9NhuBqB.js} +1 -1
  341. package/web-shell/index.html +17 -13
  342. package/chunks/MaxSizedBox-B5YGZSYE.js +0 -72
  343. package/chunks/agent-H4JIDL7S.js +0 -67
  344. package/chunks/agent-headless-TTBEREQV.js +0 -61
  345. package/chunks/bridge-VL7ITBU5.js +0 -75
  346. package/chunks/chunk-542SK7KV.js +0 -8293
  347. package/chunks/chunk-CPCVCKKF.js +0 -358
  348. package/chunks/chunk-SEKHYHMS.js +0 -45
  349. package/chunks/chunk-W7FJ3N32.js +0 -49
  350. package/chunks/chunk-ZFKNWQGQ.js +0 -74639
  351. package/chunks/contextCommand-L2COEUHS.js +0 -66
  352. package/chunks/daemon-status-provider-NL4IAG7B.js +0 -74
  353. package/chunks/earlyInputCapture-L6I2A22T.js +0 -68
  354. package/chunks/errors-LEOF5QG4.js +0 -74
  355. package/chunks/handleAutoUpdate-QQVIWXKT.js +0 -67
  356. package/chunks/i18n-N6OBDORT.js +0 -83
  357. package/chunks/initializer-6WCFNDLL.js +0 -72
  358. package/chunks/installationInfo-6J3WPXNS.js +0 -64
  359. package/chunks/list-HOWQSWP6.js +0 -75
  360. package/chunks/loadedSettingsAdapter-AO4YBRXZ.js +0 -69
  361. package/chunks/mcp-QH7QNXOH.js +0 -69
  362. package/chunks/nonInteractiveCli-TI7EMPXD.js +0 -126
  363. package/chunks/pidfile-UEHAT6DH.js +0 -72
  364. package/chunks/read-file-SQJONF6A.js +0 -29
  365. package/chunks/resumeHistoryUtils-PFQ2A23X.js +0 -78
  366. package/chunks/ripGrep-QCK22GDU.js +0 -59
  367. package/chunks/runtime-SNVAP6EH.js +0 -100
  368. package/chunks/serve-BT7KS6SC.js +0 -75
  369. package/chunks/shell-BITUVH2R.js +0 -69
  370. package/chunks/spawnChannel-2BU3AULL.js +0 -68
  371. package/chunks/standalone-update-YG5JUYCM.js +0 -78
  372. package/chunks/task-create-HX32YXO7.js +0 -23
  373. package/chunks/theme-manager-IAETOI25.js +0 -63
  374. package/chunks/total-session-admission-BJLDHKJN.js +0 -69
  375. package/chunks/trustedFolders-5XCVNEUU.js +0 -79
  376. package/chunks/updateCheck-YZZB7YBU.js +0 -70
  377. package/chunks/useAutoAcceptIndicator-ZSQX4I2H.js +0 -80
  378. package/chunks/workspace-providers-status-EADV364W.js +0 -72
  379. package/chunks/workspace-registry-W6VMFYZU.js +0 -73
  380. package/chunks/workspace-service-F3KIN2UN.js +0 -84
  381. package/chunks/workspace-skills-status-YVICUR5Y.js +0 -71
  382. package/chunks/write-file-CVGF2OKV.js +0 -596
  383. package/web-shell/assets/channel-04R0vLbG.js +0 -1
  384. package/web-shell/assets/classDiagram-4FO5ZUOK-Bw9SOwAV.js +0 -1
  385. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Bw9SOwAV.js +0 -1
  386. package/web-shell/assets/index-DgkKrjw3.js +0 -1187
  387. package/web-shell/assets/index-Rv6mOAN9.css +0 -5
  388. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DWBoO4UY.js +0 -1
@@ -2,16 +2,16 @@
2
2
  "use strict";
3
3
  import {
4
4
  useKeypress
5
- } from "./chunk-O3Z73NBP.js";
5
+ } from "./chunk-RW2NEXYJ.js";
6
6
  import {
7
7
  require_react
8
8
  } from "./chunk-5QWWOFGG.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-TKLLK6XQ.js";
11
+ } from "./chunk-ZT4POVWC.js";
12
12
  import {
13
13
  APPROVAL_MODES
14
- } from "./chunk-CPCVCKKF.js";
14
+ } from "./chunk-XAWJ2526.js";
15
15
  import {
16
16
  init_esbuild_shims
17
17
  } from "./chunk-5O2XNYP6.js";
@@ -3,16 +3,16 @@
3
3
  import {
4
4
  settleChatRecording,
5
5
  subscribeToHeadlessChatRecordingFailures
6
- } from "./chunk-O3OCNYY5.js";
6
+ } from "./chunk-PDYB7HG2.js";
7
+ import {
8
+ handleAtCommand
9
+ } from "./chunk-F5MBYZSU.js";
7
10
  import {
8
11
  JsonOutputAdapter
9
- } from "./chunk-6AFUCL3D.js";
12
+ } from "./chunk-CEZB3XFD.js";
10
13
  import {
11
14
  StreamJsonOutputAdapter
12
- } from "./chunk-4EP2PYYL.js";
13
- import {
14
- handleAtCommand
15
- } from "./chunk-IVPSS6EL.js";
15
+ } from "./chunk-2G6QIHYL.js";
16
16
  import {
17
17
  buildInitialSystemReminders,
18
18
  buildSystemMessage,
@@ -24,10 +24,11 @@ import {
24
24
  insertAfterFunctionResponses,
25
25
  isSlashCommand,
26
26
  normalizePartList
27
- } from "./chunk-PBWEWI4N.js";
27
+ } from "./chunk-BW5Z5NOG.js";
28
28
  import {
29
- RunBudgetEnforcer
30
- } from "./chunk-4XNLIGVA.js";
29
+ RunBudgetEnforcer,
30
+ cleanupReviewWorktreeLeases
31
+ } from "./chunk-JKCALGYN.js";
31
32
  import {
32
33
  AlreadyReportedError,
33
34
  handleBudgetExceededError,
@@ -35,39 +36,51 @@ import {
35
36
  handleError,
36
37
  handleMaxTurnsExceededError,
37
38
  handleToolError
38
- } from "./chunk-VEXFOTEO.js";
39
+ } from "./chunk-JYUSL2V4.js";
39
40
  import {
40
41
  isInlineModelOverrideAllowed
41
- } from "./chunk-NGFEPAE6.js";
42
+ } from "./chunk-WLEFWSSC.js";
42
43
  import {
44
+ PLAN_MODE_ENTRY_SIBLING_SKIP_MESSAGE,
43
45
  buildSessionRecoveryPlanFromApiHistory,
44
46
  canonicalToolName,
45
47
  createDuplicateProviderToolCallResponse,
46
48
  detectAutonomousSentinel,
47
49
  detectLoopSentinel,
48
50
  executeToolCall,
51
+ finalizeToolResponses,
52
+ findPlanModeEntryBatchBoundaryIndex,
49
53
  findRepeatedDuplicateProviderToolCall,
50
- isSystemReminderContent,
51
54
  isToolCallConcurrencySafe,
52
55
  markDuplicateProviderToolCallResponseSent,
53
56
  parseAndFormatApiError,
54
- parsePositiveIntegerEnv,
55
57
  partitionByConcurrencySafety,
56
58
  promptIdContext,
57
59
  restoreWorktreeContext
58
- } from "./chunk-KX6UK4VJ.js";
60
+ } from "./chunk-LI4I37W4.js";
61
+ import {
62
+ parsePositiveIntegerEnv
63
+ } from "./chunk-6PVPNMXU.js";
64
+ import {
65
+ isSystemReminderContent
66
+ } from "./chunk-XAWJ2526.js";
59
67
  import {
60
- isTelemetrySdkInitialized,
61
- shutdownTelemetry,
62
68
  uiTelemetryService
63
- } from "./chunk-ZFKNWQGQ.js";
69
+ } from "./chunk-IFG6TYJ2.js";
70
+ import {
71
+ isTelemetrySdkInitialized,
72
+ shutdownTelemetry
73
+ } from "./chunk-PKL3HGNZ.js";
64
74
  import {
65
75
  ToolNames
66
- } from "./chunk-OP4MOGXF.js";
76
+ } from "./chunk-P5RRUHL7.js";
67
77
  import {
68
78
  FatalInputError,
69
79
  createDebugLogger
70
- } from "./chunk-C27BYUX6.js";
80
+ } from "./chunk-OQB4EXO4.js";
81
+ import {
82
+ registerCleanup
83
+ } from "./chunk-EL2IQ2S5.js";
71
84
  import {
72
85
  init_esbuild_shims
73
86
  } from "./chunk-5O2XNYP6.js";
@@ -78,6 +91,7 @@ import {
78
91
  // packages/cli/src/nonInteractiveCli.ts
79
92
  init_esbuild_shims();
80
93
  var debugLogger = createDebugLogger("NON_INTERACTIVE_CLI");
94
+ var restoredBackgroundAgentSessions = /* @__PURE__ */ new WeakMap();
81
95
  var STRUCTURED_SHUTDOWN_HOLDBACK_MS = 500;
82
96
  function isHeadlessLoopSentinel(prompt) {
83
97
  return detectLoopSentinel(prompt) !== null || detectAutonomousSentinel(prompt) !== null;
@@ -201,6 +215,15 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
201
215
  }, "emitResult");
202
216
  const sessionId = config.getSessionId();
203
217
  const permissionMode = config.getApprovalMode();
218
+ const cleanupReviewWorktrees = /* @__PURE__ */ __name((gitTimeout) => cleanupReviewWorktreeLeases({
219
+ sessionId,
220
+ promptId: prompt_id,
221
+ repositoryRoot: config.getProjectRoot(),
222
+ gitTimeout
223
+ }), "cleanupReviewWorktrees");
224
+ const unregisterReviewWorktreeCleanup = registerCleanup(
225
+ () => cleanupReviewWorktrees(1e3)
226
+ );
204
227
  let turnCount = 0;
205
228
  let totalApiDurationMs = 0;
206
229
  const startTime = Date.now();
@@ -226,6 +249,9 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
226
249
  }, "routeAbort");
227
250
  const localQueue = [];
228
251
  const sdkOnlyMonitorQueue = [];
252
+ const isCancelledMonitorEvent = /* @__PURE__ */ __name((item) => Boolean(
253
+ item.monitorId && item.sdkNotification?.status === "running" && config.getMonitorRegistry().get(item.monitorId)?.status === "cancelled"
254
+ ), "isCancelledMonitorEvent");
229
255
  const emitNotificationToSdk = /* @__PURE__ */ __name((item) => {
230
256
  if (item.sendMessageType !== "notification" /* Notification */) return;
231
257
  adapter.emitUserMessage([{ text: item.displayText }]);
@@ -235,7 +261,10 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
235
261
  }, "emitNotificationToSdk");
236
262
  const flushQueuedNotificationsToSdk = /* @__PURE__ */ __name((queue) => {
237
263
  while (queue.length > 0) {
238
- emitNotificationToSdk(queue.shift());
264
+ const item = queue.shift();
265
+ if (!isCancelledMonitorEvent(item)) {
266
+ emitNotificationToSdk(item);
267
+ }
239
268
  }
240
269
  }, "flushQueuedNotificationsToSdk");
241
270
  let captureMonitorTurnsInLocalQueue = true;
@@ -290,7 +319,9 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
290
319
  } else {
291
320
  approvalListener = /* @__PURE__ */ __name((event) => {
292
321
  const mode = config.getApprovalMode();
293
- if (mode === "yolo" /* YOLO */) {
322
+ const confirmationDetails = event.confirmationDetails;
323
+ const requiresExplicitHostApproval = confirmationDetails?.type !== "plan" && confirmationDetails !== void 0 && "hideAlwaysAllow" in confirmationDetails && confirmationDetails.hideAlwaysAllow === true;
324
+ if (mode === "yolo" /* YOLO */ && !requiresExplicitHostApproval) {
294
325
  event.respond("proceed_once" /* ProceedOnce */).catch((err) => {
295
326
  debugLogger.warn(
296
327
  "Teammate approval ProceedOnce failed:",
@@ -299,7 +330,7 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
299
330
  });
300
331
  return;
301
332
  }
302
- const reason = `Auto-cancelling tool ${event.toolName} requested by teammate "${event.teammateName}": current approval mode (${mode}) cannot prompt in non-stream-json mode. Use --yolo or stream-json to allow teammate tool calls.`;
333
+ const reason = requiresExplicitHostApproval ? mode === "yolo" /* YOLO */ ? `Auto-cancelling tool ${event.toolName} requested by teammate "${event.teammateName}": this request requires an explicit interactive approval surface and cannot be bypassed by YOLO mode.` : `Auto-cancelling tool ${event.toolName} requested by teammate "${event.teammateName}": this request requires an explicit interactive approval surface, which is unavailable in non-stream-json mode with the current approval mode (${mode}). Use --input-format stream-json --output-format stream-json to review it.` : `Auto-cancelling tool ${event.toolName} requested by teammate "${event.teammateName}": current approval mode (${mode}) cannot prompt in non-stream-json mode. Use --yolo or stream-json to allow teammate tool calls.`;
303
334
  process.stderr.write(`[team] ${reason}
304
335
  `);
305
336
  pendingTeammateMessages.push(
@@ -331,6 +362,15 @@ ${reason}
331
362
  permissionMode
332
363
  );
333
364
  adapter.emitMessage(systemMessage);
365
+ const resumedSessionData = config.getResumedSessionData();
366
+ if (resumedSessionData) {
367
+ const restoredSessions = restoredBackgroundAgentSessions.get(config) ?? /* @__PURE__ */ new Set();
368
+ if (!restoredSessions.has(sessionId)) {
369
+ await config.loadPausedBackgroundAgents(sessionId);
370
+ restoredSessions.add(sessionId);
371
+ restoredBackgroundAgentSessions.set(config, restoredSessions);
372
+ }
373
+ }
334
374
  let initialPartList = extractPartsFromUserMessage(
335
375
  options.userMessage
336
376
  );
@@ -475,7 +515,7 @@ ${text}
475
515
  adapter.emitSystemMessage("worktree_started", {
476
516
  notice: startupNotice
477
517
  });
478
- } else if (!options.continueInterrupted && config.getResumedSessionData()) {
518
+ } else if (!options.continueInterrupted && resumedSessionData) {
479
519
  try {
480
520
  const sessionPath = config.getSessionService().getWorktreeSessionPath(sessionId);
481
521
  const restored = await restoreWorktreeContext(sessionPath);
@@ -494,6 +534,10 @@ ${text}
494
534
  debugLogger.warn(`worktree restore failed (non-fatal):`, error);
495
535
  }
496
536
  }
537
+ const recoveredAgentsNotice = resumedSessionData && !options.continueInterrupted && !isSlashCommand(input) ? config.consumePendingRecoveredAgentsNotice() : null;
538
+ if (recoveredAgentsNotice) {
539
+ initialPartList = withReminder(initialPartList, recoveredAgentsNotice);
540
+ }
497
541
  const initialParts = normalizePartList(initialPartList);
498
542
  let currentMessages = [{ role: "user", parts: initialParts }];
499
543
  const registry = config.getBackgroundTaskRegistry();
@@ -534,6 +578,7 @@ ${text}
534
578
  displayText,
535
579
  modelText,
536
580
  sendMessageType: "notification" /* Notification */,
581
+ monitorId: meta.monitorId,
537
582
  sdkNotification: {
538
583
  task_id: meta.monitorId,
539
584
  tool_use_id: meta.toolUseId,
@@ -619,7 +664,8 @@ ${text}
619
664
  const handledProviderToolCallIds = geminiClient.getHistoryFunctionResponseIds();
620
665
  const duplicateProviderToolCallResponseIds = /* @__PURE__ */ new Set();
621
666
  const processToolCallBatch = /* @__PURE__ */ __name(async (batchRequests, setModelOverride) => {
622
- const toolResponseParts = [];
667
+ const responseByRequest = /* @__PURE__ */ new Map();
668
+ const statusByResponse = /* @__PURE__ */ new Map();
623
669
  const structuredOutputActive = config.getJsonSchema() && batchRequests.some((r) => r.name === ToolNames.STRUCTURED_OUTPUT);
624
670
  const getProviderResponseId = /* @__PURE__ */ __name((request) => request.providerCallId ?? (structuredOutputActive ? void 0 : request.callId || void 0), "getProviderResponseId");
625
671
  const seenBatchCallIds = /* @__PURE__ */ new Set();
@@ -658,7 +704,6 @@ ${text}
658
704
  }
659
705
  const respondedRequests = /* @__PURE__ */ new Set();
660
706
  const executableBatchRequests = [];
661
- const duplicatePendingResponses = [];
662
707
  for (const requestInfo of uniqueBatchRequests) {
663
708
  const providerCallId = getProviderResponseId(requestInfo);
664
709
  if (!providerCallId) {
@@ -680,15 +725,18 @@ ${text}
680
725
  );
681
726
  respondedRequests.add(requestInfo);
682
727
  adapter.emitToolResult(requestInfo, toolResponse);
683
- duplicatePendingResponses.push(...toolResponse.responseParts);
728
+ responseByRequest.set(requestInfo, toolResponse);
684
729
  }
685
- toolResponseParts.push(...duplicatePendingResponses);
686
730
  let requestsToExecute = executableBatchRequests;
687
731
  if (structuredOutputActive) {
688
732
  requestsToExecute = executableBatchRequests.filter(
689
733
  (r) => r.name === ToolNames.STRUCTURED_OUTPUT
690
734
  );
691
735
  }
736
+ const planModeEntryBoundaryIndex = findPlanModeEntryBatchBoundaryIndex(
737
+ requestsToExecute.map((request) => request.name)
738
+ );
739
+ const planModeEntryBoundary = planModeEntryBoundaryIndex === void 0 ? void 0 : requestsToExecute[planModeEntryBoundaryIndex];
692
740
  const executedRequests = new Set(
693
741
  respondedRequests
694
742
  );
@@ -714,7 +762,13 @@ ${text}
714
762
  requestInfo,
715
763
  abortController.signal,
716
764
  {
765
+ recordToolResult: false,
717
766
  outputUpdateHandler,
767
+ onAllToolCallsComplete: /* @__PURE__ */ __name(async (completedCalls) => {
768
+ for (const call of completedCalls) {
769
+ statusByResponse.set(call.response, call.status);
770
+ }
771
+ }, "onAllToolCallsComplete"),
718
772
  ...toolCallUpdateCallback && {
719
773
  onToolCallsUpdate: toolCallUpdateCallback
720
774
  }
@@ -736,13 +790,11 @@ ${text}
736
790
  );
737
791
  }
738
792
  adapter.emitToolResult(requestInfo, toolResponse);
793
+ responseByRequest.set(requestInfo, toolResponse);
739
794
  config.getGeminiClient().recordCompletedToolCall(
740
795
  requestInfo.name,
741
796
  requestInfo.args
742
797
  );
743
- if (toolResponse.responseParts) {
744
- toolResponseParts.push(...toolResponse.responseParts);
745
- }
746
798
  if ("modelOverride" in toolResponse) {
747
799
  setModelOverride(toolResponse.modelOverride);
748
800
  }
@@ -752,6 +804,33 @@ ${text}
752
804
  }
753
805
  return false;
754
806
  }, "finalizeToolCall");
807
+ const finalizePlanModeEntrySiblingSkip = /* @__PURE__ */ __name((requestInfo) => {
808
+ const error = new Error(PLAN_MODE_ENTRY_SIBLING_SKIP_MESSAGE);
809
+ const responseParts = [
810
+ {
811
+ functionResponse: {
812
+ id: requestInfo.callId,
813
+ name: requestInfo.name,
814
+ response: { error: error.message }
815
+ }
816
+ }
817
+ ];
818
+ adapter.emitToolResult(requestInfo, {
819
+ callId: requestInfo.callId,
820
+ responseParts,
821
+ resultDisplay: error.message,
822
+ error,
823
+ errorType: "execution_denied" /* EXECUTION_DENIED */
824
+ });
825
+ responseByRequest.set(requestInfo, {
826
+ callId: requestInfo.callId,
827
+ responseParts,
828
+ resultDisplay: error.message,
829
+ error,
830
+ errorType: "execution_denied" /* EXECUTION_DENIED */
831
+ });
832
+ executedRequests.add(requestInfo);
833
+ }, "finalizePlanModeEntrySiblingSkip");
755
834
  const maxToolConcurrency = parsePositiveIntegerEnv(
756
835
  process.env["QWEN_CODE_MAX_TOOL_CONCURRENCY"],
757
836
  10
@@ -763,6 +842,10 @@ ${text}
763
842
  const launched = [];
764
843
  const inFlight = /* @__PURE__ */ new Set();
765
844
  for (const requestInfo of batch.calls) {
845
+ if (planModeEntryBoundary && requestInfo !== planModeEntryBoundary) {
846
+ finalizePlanModeEntrySiblingSkip(requestInfo);
847
+ continue;
848
+ }
766
849
  if (!isBudgetExempt(requestInfo)) {
767
850
  budgetEnforcer.tickToolCall();
768
851
  }
@@ -801,6 +884,10 @@ ${text}
801
884
  }
802
885
  } else {
803
886
  for (const requestInfo of batch.calls) {
887
+ if (planModeEntryBoundary && requestInfo !== planModeEntryBoundary) {
888
+ finalizePlanModeEntrySiblingSkip(requestInfo);
889
+ continue;
890
+ }
804
891
  if (!isBudgetExempt(requestInfo)) {
805
892
  budgetEnforcer.tickToolCall();
806
893
  }
@@ -831,14 +918,15 @@ ${text}
831
918
  }
832
919
  }
833
920
  ];
834
- adapter.emitToolResult(call, {
921
+ const toolResponse = {
835
922
  callId: call.callId,
836
923
  responseParts,
837
924
  resultDisplay: skippedOutput,
838
925
  error: void 0,
839
926
  errorType: void 0
840
- });
841
- toolResponseParts.push(...responseParts);
927
+ };
928
+ adapter.emitToolResult(call, toolResponse);
929
+ responseByRequest.set(call, toolResponse);
842
930
  }
843
931
  }
844
932
  for (const requestInfo of duplicateBatchRequests) {
@@ -850,7 +938,34 @@ ${text}
850
938
  );
851
939
  const toolResponse = createDuplicateProviderToolCallResponse(requestInfo);
852
940
  adapter.emitToolResult(requestInfo, toolResponse);
853
- toolResponseParts.push(...toolResponse.responseParts);
941
+ responseByRequest.set(requestInfo, toolResponse);
942
+ }
943
+ const orderedResponses = batchRequests.flatMap((request) => {
944
+ const response = responseByRequest.get(request);
945
+ return response ? [{ request, response }] : [];
946
+ });
947
+ const finalized = await finalizeToolResponses(
948
+ config,
949
+ orderedResponses.map(({ request, response }) => ({
950
+ callId: request.callId,
951
+ toolName: request.name,
952
+ responseParts: response.responseParts,
953
+ persistedOutputFiles: response.persistedOutputFiles
954
+ }))
955
+ );
956
+ const chatRecordingService = config.getChatRecordingService?.();
957
+ const toolResponseParts = [];
958
+ for (let index = 0; index < orderedResponses.length; index++) {
959
+ const { request, response } = orderedResponses[index];
960
+ const finalizedParts = finalized[index].responseParts;
961
+ toolResponseParts.push(...finalizedParts);
962
+ chatRecordingService?.recordToolResult?.(finalizedParts, {
963
+ callId: request.callId,
964
+ status: statusByResponse.get(response) ?? (response.error ? "error" : "success"),
965
+ resultDisplay: response.resultDisplay,
966
+ error: response.error,
967
+ errorType: response.errorType
968
+ });
854
969
  }
855
970
  return {
856
971
  responseParts: toolResponseParts,
@@ -1015,7 +1130,7 @@ ${text}
1015
1130
  splitIdx++;
1016
1131
  }
1017
1132
  }
1018
- const batch = localQueue.splice(0, splitIdx);
1133
+ const batch = localQueue.splice(0, splitIdx).filter((item2) => !isCancelledMonitorEvent(item2));
1019
1134
  if (batch.length === 0) return;
1020
1135
  for (const queueItem of batch) {
1021
1136
  emitNotificationToSdk(queueItem);
@@ -1281,6 +1396,8 @@ ${text}
1281
1396
  }
1282
1397
  await handleError(error, config);
1283
1398
  } finally {
1399
+ cleanupReviewWorktrees();
1400
+ unregisterReviewWorktreeCleanup();
1284
1401
  config.onTeamManagerChange(null, onTeamManagerChangeHandler);
1285
1402
  if (boundManager) {
1286
1403
  detachFromManager(boundManager);
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  MAX_WORKSPACE_PATH_LENGTH,
5
5
  canonicalizeWorkspace
6
- } from "./chunk-W7FJ3N32.js";
6
+ } from "./chunk-2RFKHEXL.js";
7
7
  import {
8
8
  MAX_DAEMON_WORKSPACES
9
9
  } from "./chunk-5HBA2Z7V.js";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-MR3PXB6E.js";
16
16
  import {
17
17
  require_proper_lockfile
18
- } from "./chunk-E2UVIFI2.js";
18
+ } from "./chunk-KRXPRVGL.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -124,6 +124,7 @@ __name(resolveWorkspaceInputs, "resolveWorkspaceInputs");
124
124
  var SCHEMA_VERSION = 1;
125
125
  var MAX_SECONDARY_WORKSPACES = MAX_REGISTERED_WORKSPACES - 1;
126
126
  var MAX_STORE_BYTES = 256 * 1024;
127
+ var MAX_WORKSPACE_DISPLAY_NAME_LENGTH = 256;
127
128
  var LOCK_OPTIONS = {
128
129
  realpath: false,
129
130
  stale: 1e4,
@@ -136,6 +137,43 @@ var LOCK_OPTIONS = {
136
137
  randomize: true
137
138
  }
138
139
  };
140
+ var WorkspaceDisplayNameValidationError = class extends Error {
141
+ static {
142
+ __name(this, "WorkspaceDisplayNameValidationError");
143
+ }
144
+ constructor(message) {
145
+ super(message);
146
+ this.name = "WorkspaceDisplayNameValidationError";
147
+ }
148
+ };
149
+ function containsDisplayNameControlCharacter(value) {
150
+ for (const character of value) {
151
+ const codePoint = character.codePointAt(0);
152
+ if (codePoint <= 31 || codePoint === 127) return true;
153
+ }
154
+ return false;
155
+ }
156
+ __name(containsDisplayNameControlCharacter, "containsDisplayNameControlCharacter");
157
+ function normalizeWorkspaceDisplayName(value) {
158
+ if (typeof value !== "string") {
159
+ throw new WorkspaceDisplayNameValidationError(
160
+ "Workspace display name must be a string"
161
+ );
162
+ }
163
+ const trimmed = value.trim();
164
+ if (trimmed.length > MAX_WORKSPACE_DISPLAY_NAME_LENGTH) {
165
+ throw new WorkspaceDisplayNameValidationError(
166
+ `Workspace display name exceeds ${MAX_WORKSPACE_DISPLAY_NAME_LENGTH} characters`
167
+ );
168
+ }
169
+ if (containsDisplayNameControlCharacter(trimmed)) {
170
+ throw new WorkspaceDisplayNameValidationError(
171
+ "Workspace display name contains control characters"
172
+ );
173
+ }
174
+ return trimmed.length === 0 ? void 0 : trimmed;
175
+ }
176
+ __name(normalizeWorkspaceDisplayName, "normalizeWorkspaceDisplayName");
139
177
  var WorkspaceRegistrationStoreError = class extends Error {
140
178
  static {
141
179
  __name(this, "WorkspaceRegistrationStoreError");
@@ -196,6 +234,38 @@ function validateWorkspacePath(value, label) {
196
234
  return value;
197
235
  }
198
236
  __name(validateWorkspacePath, "validateWorkspacePath");
237
+ function validateStoredDisplayName(value, label) {
238
+ let displayName;
239
+ try {
240
+ displayName = normalizeWorkspaceDisplayName(value);
241
+ } catch (err) {
242
+ throw new WorkspaceRegistrationStoreError(
243
+ `${label} is invalid: ${err instanceof Error ? err.message : String(err)}`
244
+ );
245
+ }
246
+ if (displayName === void 0) {
247
+ throw new WorkspaceRegistrationStoreError(`${label} must not be empty`);
248
+ }
249
+ return displayName;
250
+ }
251
+ __name(validateStoredDisplayName, "validateStoredDisplayName");
252
+ function setSnapshotDisplayName(snapshot, registrationId, displayName) {
253
+ if (displayName === void 0) {
254
+ if (!snapshot.displayNames || !Object.hasOwn(snapshot.displayNames, registrationId)) {
255
+ return false;
256
+ }
257
+ delete snapshot.displayNames[registrationId];
258
+ if (Object.keys(snapshot.displayNames).length === 0) {
259
+ delete snapshot.displayNames;
260
+ }
261
+ return true;
262
+ }
263
+ if (snapshot.displayNames?.[registrationId] === displayName) return false;
264
+ snapshot.displayNames ??= {};
265
+ snapshot.displayNames[registrationId] = displayName;
266
+ return true;
267
+ }
268
+ __name(setSnapshotDisplayName, "setSnapshotDisplayName");
199
269
  function parseSnapshot(raw, primaryWorkspace) {
200
270
  let value;
201
271
  try {
@@ -252,7 +322,34 @@ function parseSnapshot(raw, primaryWorkspace) {
252
322
  seen.add(normalizedWorkspace);
253
323
  return workspace;
254
324
  });
255
- return { schemaVersion: SCHEMA_VERSION, primaryWorkspace, workspaces };
325
+ const rawDisplayNames = record["displayNames"];
326
+ let displayNames;
327
+ if (rawDisplayNames !== void 0) {
328
+ if (typeof rawDisplayNames !== "object" || rawDisplayNames === null || Array.isArray(rawDisplayNames)) {
329
+ throw new WorkspaceRegistrationStoreError(
330
+ "Workspace registration store displayNames must be an object"
331
+ );
332
+ }
333
+ const registrationIds = new Set(workspaces.map(workspaceRegistrationId));
334
+ for (const [registrationId, value2] of Object.entries(rawDisplayNames)) {
335
+ if (!registrationIds.has(registrationId)) {
336
+ throw new WorkspaceRegistrationStoreError(
337
+ `Workspace registration store displayNames contains unknown registration id ${JSON.stringify(registrationId)}`
338
+ );
339
+ }
340
+ displayNames ??= {};
341
+ displayNames[registrationId] = validateStoredDisplayName(
342
+ value2,
343
+ `displayNames[${JSON.stringify(registrationId)}]`
344
+ );
345
+ }
346
+ }
347
+ return {
348
+ schemaVersion: SCHEMA_VERSION,
349
+ primaryWorkspace,
350
+ workspaces,
351
+ ...displayNames ? { displayNames } : {}
352
+ };
256
353
  }
257
354
  __name(parseSnapshot, "parseSnapshot");
258
355
  var updateChains = /* @__PURE__ */ new Map();
@@ -391,8 +488,9 @@ var WorkspaceRegistrationStore = class {
391
488
  await file.close();
392
489
  }
393
490
  }
394
- async add(workspace) {
491
+ async add(workspace, displayName) {
395
492
  validateWorkspacePath(workspace, "workspace");
493
+ const normalizedDisplayName = displayName === void 0 ? void 0 : normalizeWorkspaceDisplayName(displayName);
396
494
  if (normalizedScopePath(workspace) === normalizedScopePath(this.primaryWorkspace)) {
397
495
  throw new WorkspaceRegistrationStoreError(
398
496
  "Primary workspace cannot be stored as a secondary registration"
@@ -411,30 +509,61 @@ var WorkspaceRegistrationStore = class {
411
509
  );
412
510
  }
413
511
  snapshot.workspaces.push(workspace);
512
+ if (normalizedDisplayName !== void 0) {
513
+ snapshot.displayNames ??= {};
514
+ snapshot.displayNames[workspaceRegistrationId(workspace)] = normalizedDisplayName;
515
+ }
414
516
  return true;
415
517
  });
416
518
  }
417
519
  async removeById(id) {
418
520
  return await this.removeByIds([id]) > 0;
419
521
  }
522
+ async setDisplayNameByIds(ids, displayName) {
523
+ const normalizedDisplayName = displayName === void 0 ? void 0 : normalizeWorkspaceDisplayName(displayName);
524
+ const requested = new Set(ids);
525
+ if (requested.size === 0) return 0;
526
+ let matched = 0;
527
+ await this.update((snapshot) => {
528
+ let changed = false;
529
+ for (const workspace of snapshot.workspaces) {
530
+ const registrationId = workspaceRegistrationId(workspace);
531
+ if (!requested.has(registrationId)) continue;
532
+ matched++;
533
+ changed = setSnapshotDisplayName(
534
+ snapshot,
535
+ registrationId,
536
+ normalizedDisplayName
537
+ ) || changed;
538
+ }
539
+ return changed;
540
+ });
541
+ return matched;
542
+ }
420
543
  async removeByIds(ids) {
421
544
  const requested = new Set(ids);
422
545
  if (requested.size === 0) return 0;
423
546
  let removed = 0;
424
547
  await this.update((snapshot) => {
548
+ const removedIds = /* @__PURE__ */ new Set();
425
549
  const retained = snapshot.workspaces.filter((workspace) => {
426
- if (!requested.has(workspaceRegistrationId(workspace))) return true;
550
+ const registrationId = workspaceRegistrationId(workspace);
551
+ if (!requested.has(registrationId)) return true;
427
552
  removed++;
553
+ removedIds.add(registrationId);
428
554
  return false;
429
555
  });
430
556
  if (removed === 0) return false;
431
557
  snapshot.workspaces.splice(0, snapshot.workspaces.length, ...retained);
558
+ for (const registrationId of removedIds) {
559
+ setSnapshotDisplayName(snapshot, registrationId, void 0);
560
+ }
432
561
  return true;
433
562
  });
434
563
  return removed;
435
564
  }
436
565
  async update(mutate) {
437
- const { atomicWriteFile } = await import("./src-43LM7JLB.js");
566
+ const { atomicWriteFile } = await import("./src-LKKTJ4NG.js");
438
567
  return withInProcessLock(this.filePath, async () => {
439
568
  const lock = await acquireFileLock(this.filePath);
440
569
  let committed = false;
@@ -478,6 +607,9 @@ var WorkspaceRegistrationStore = class {
478
607
  export {
479
608
  MAX_REGISTERED_WORKSPACES,
480
609
  resolveWorkspaceInputs,
610
+ MAX_WORKSPACE_DISPLAY_NAME_LENGTH,
611
+ WorkspaceDisplayNameValidationError,
612
+ normalizeWorkspaceDisplayName,
481
613
  WorkspaceRegistrationStoreError,
482
614
  WorkspaceRegistrationStoreLimitError,
483
615
  WorkspaceRegistrationStoreCommittedError,