@qwen-code/qwen-code 0.21.7-nightly.20260808.4ec0371e6 → 0.21.8

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 (254) hide show
  1. package/README.md +2 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +12 -8
  3. package/bundled/qc-helper/docs/features/commands.md +1 -1
  4. package/bundled/qc-helper/docs/features/hooks.md +50 -0
  5. package/bundled/qc-helper/docs/integration-jetbrains.md +1 -0
  6. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  7. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -36
  8. package/bundled/review/SKILL.md +24 -5
  9. package/chunks/{MaxSizedBox-COZBVNCI.js → MaxSizedBox-7PM6BGJ5.js} +13 -10
  10. package/chunks/{StandaloneSessionPicker-3OF2FS6S.js → StandaloneSessionPicker-3UQHM7GV.js} +29 -26
  11. package/chunks/{acp-startup-profiler-ORIQ2CCQ.js → acp-startup-profiler-B5BYAMYQ.js} +2 -2
  12. package/chunks/{acpAgent-3JCJ6KWG.js → acpAgent-5UWLFV6V.js} +369 -148
  13. package/chunks/{agent-DBSC47CD.js → agent-624T2BLO.js} +13 -10
  14. package/chunks/{agent-headless-ZJHZ7I3S.js → agent-headless-2EE5J2KX.js} +13 -10
  15. package/chunks/{bridge-NFBYT4ZI.js → bridge-JENKGFFP.js} +15 -12
  16. package/chunks/{ca-NYKNH222.js → ca-ZLKAB4K3.js} +6 -0
  17. package/chunks/{channel-management-service-LXSJXQGM.js → channel-management-service-DDWUPHMU.js} +1 -1
  18. package/chunks/{channel-settings-store-LABKDKSI.js → channel-settings-store-SA6JZSPH.js} +21 -18
  19. package/chunks/{channel-worker-group-MTW2AGT3.js → channel-worker-group-E67EN3RV.js} +2 -2
  20. package/chunks/{channel-worker-manager-UU6PTQSI.js → channel-worker-manager-SW4C45CF.js} +2 -2
  21. package/chunks/{chunk-CJXIIILK.js → chunk-2FRY5CRX.js} +1 -1
  22. package/chunks/{chunk-HKCYGZZ4.js → chunk-2ILAOM2I.js} +30 -13
  23. package/chunks/{chunk-LDY4J4G6.js → chunk-2M4K4KYS.js} +176 -119
  24. package/chunks/{chunk-22NBYCPD.js → chunk-3P2LV43B.js} +1 -1
  25. package/chunks/{chunk-XCG76UE6.js → chunk-3PY4LPJF.js} +17 -129
  26. package/chunks/{chunk-26ISE5EG.js → chunk-3SE7J4DR.js} +3 -3
  27. package/chunks/{chunk-APMRLB2H.js → chunk-3WNQOYHQ.js} +12 -12
  28. package/chunks/{chunk-O7VQ3F22.js → chunk-4ALIARFY.js} +1 -1
  29. package/chunks/{chunk-FJ6YHWHZ.js → chunk-4DU3NCHG.js} +47 -54
  30. package/chunks/{chunk-BGG4MBYD.js → chunk-4PYCZH2V.js} +4 -187
  31. package/chunks/{chunk-3HS6Y4UA.js → chunk-4WU6NY7F.js} +2 -2
  32. package/chunks/{chunk-JRIJOZXO.js → chunk-5ZGR6RKJ.js} +3 -3
  33. package/chunks/{chunk-3K7FH2KQ.js → chunk-67N6HB5H.js} +1310 -171
  34. package/chunks/{chunk-ZQGHESAS.js → chunk-6TR7CFXH.js} +1 -1
  35. package/chunks/{chunk-EZ53KMUN.js → chunk-757GB46F.js} +1 -1
  36. package/chunks/{chunk-5YT3Y33M.js → chunk-77QVBFCU.js} +3 -3
  37. package/chunks/{chunk-5PGKKSO6.js → chunk-7DVT4LVV.js} +35 -28
  38. package/chunks/{chunk-IMK3SJ43.js → chunk-7VUERJHS.js} +1066 -597
  39. package/chunks/{chunk-KPMB4JEZ.js → chunk-B52AWKBB.js} +64 -20
  40. package/chunks/{chunk-R2KZWK5Z.js → chunk-BF224XHL.js} +2 -2
  41. package/chunks/{chunk-TSYIQDG7.js → chunk-BF52U4XJ.js} +1 -1
  42. package/chunks/{chunk-LDUGDB5H.js → chunk-C5VWPTGT.js} +1 -1
  43. package/chunks/{chunk-W7U4ESW2.js → chunk-CG3WBKJK.js} +1 -1
  44. package/chunks/chunk-COBO5EBO.js +135 -0
  45. package/chunks/{chunk-ACHMWGC5.js → chunk-DQSDACD2.js} +1 -1
  46. package/chunks/{chunk-VT3VNFVW.js → chunk-DX5W5AON.js} +2 -2
  47. package/chunks/{chunk-JACAHYEN.js → chunk-E4ZBKMSF.js} +4 -4
  48. package/chunks/{chunk-MV7VUCIG.js → chunk-EIVICVHM.js} +4 -4
  49. package/chunks/{chunk-YHEEE624.js → chunk-EN2TKTFH.js} +1 -1
  50. package/chunks/chunk-F6WFNA7U.js +22 -0
  51. package/chunks/{chunk-Z6W3XDLN.js → chunk-FN6YXJOP.js} +1 -1
  52. package/chunks/{chunk-BJKFFPX2.js → chunk-FWBXMANW.js} +3 -3
  53. package/chunks/{chunk-764F335K.js → chunk-FYAXKJK7.js} +314 -63
  54. package/chunks/{chunk-XIDHBXUI.js → chunk-GBDINRIL.js} +3 -3
  55. package/chunks/{chunk-Z5ZAWED3.js → chunk-GOEVOFQI.js} +3 -3
  56. package/chunks/{chunk-ZKUJ4AO7.js → chunk-GQCEQPYQ.js} +3 -3
  57. package/chunks/{chunk-BFSQBXHV.js → chunk-GXSNGY5M.js} +399 -534
  58. package/chunks/{chunk-3ARO4N5G.js → chunk-HA3SAB64.js} +22 -69
  59. package/chunks/{chunk-3ULCB3NE.js → chunk-HV76SFIA.js} +1 -1
  60. package/chunks/{chunk-LMEIS6WW.js → chunk-HWX5HPUG.js} +3 -3
  61. package/chunks/{chunk-VLFX3L3X.js → chunk-IBYULW65.js} +6 -6
  62. package/chunks/{chunk-SDUDZNF4.js → chunk-IUQ52YJK.js} +1 -1
  63. package/chunks/{chunk-H2352CX2.js → chunk-IYES5WOT.js} +2 -2
  64. package/chunks/{chunk-CE5UCTKO.js → chunk-KAQCJO6Y.js} +1 -1
  65. package/chunks/{chunk-DPH3MUAP.js → chunk-KKDVZLGL.js} +1 -1
  66. package/chunks/{chunk-R574ATRM.js → chunk-M2PNLYGY.js} +41 -0
  67. package/chunks/{chunk-P7HUJDBZ.js → chunk-M3STHEMM.js} +11 -16
  68. package/chunks/{chunk-VDS2WYM5.js → chunk-NGYI5EF5.js} +2 -2
  69. package/chunks/{chunk-ALGGS7UH.js → chunk-NPQ5ZKRP.js} +82 -1
  70. package/chunks/{chunk-GUFY6D3E.js → chunk-NPUXXRJI.js} +1 -1
  71. package/chunks/{chunk-4Q6N3SNL.js → chunk-NVRDQFCX.js} +1 -1
  72. package/chunks/{chunk-77WOUGCA.js → chunk-OHKJVAKG.js} +7 -7
  73. package/chunks/{chunk-TAOSTUHI.js → chunk-PG62DFWD.js} +10 -10
  74. package/chunks/{chunk-REHWPCG2.js → chunk-PLFATELK.js} +1 -1
  75. package/chunks/{chunk-APNNM3JC.js → chunk-QGHSP65Z.js} +2 -2
  76. package/chunks/{chunk-HY2INPTA.js → chunk-QQWD7LZV.js} +4 -4
  77. package/chunks/{chunk-P74TZRXD.js → chunk-QXVSWG66.js} +1 -1
  78. package/chunks/{chunk-TX3KSSDN.js → chunk-S3Y3GBFD.js} +1 -1
  79. package/chunks/{chunk-B23P3YWE.js → chunk-SNRT2TJJ.js} +6 -23
  80. package/chunks/chunk-SR7RZ4MS.js +202 -0
  81. package/chunks/{chunk-F3LPXDJP.js → chunk-TE3ZAJE7.js} +13 -3
  82. package/chunks/{chunk-AB4A73VL.js → chunk-TKSZJ5BV.js} +1 -1
  83. package/chunks/{chunk-RZMGG3HP.js → chunk-U5SLIG7E.js} +1 -1
  84. package/chunks/chunk-UA5H3DS2.js +203 -0
  85. package/chunks/{chunk-JSJTZ6GO.js → chunk-VWMUDKLC.js} +3 -3
  86. package/chunks/{chunk-RGTB44BO.js → chunk-VXZ5HAOV.js} +1 -1
  87. package/chunks/{chunk-BCMJPTXV.js → chunk-WG6542MA.js} +1 -1
  88. package/chunks/{chunk-AG3P2RES.js → chunk-WV5J6Q6N.js} +1 -1
  89. package/chunks/{chunk-MIA37QO3.js → chunk-XHD7CRP2.js} +2 -2
  90. package/chunks/{chunk-KKRGVSHC.js → chunk-XZKQT2B2.js} +4 -4
  91. package/chunks/{chunk-4QJJHIZ5.js → chunk-Y4TETC74.js} +5 -5
  92. package/chunks/{chunk-QKJT5K4Q.js → chunk-YEF7XEO2.js} +3 -3
  93. package/chunks/{chunk-UKAYEQDU.js → chunk-YHJFF7KH.js} +131 -38
  94. package/chunks/{chunk-64YLXLMY.js → chunk-YOM7DEGB.js} +2 -2
  95. package/chunks/{chunk-BN3OROB3.js → chunk-ZCLLJARV.js} +9 -9
  96. package/chunks/{chunk-RFA6VDCR.js → chunk-ZHA242R4.js} +2 -2
  97. package/chunks/{chunk-L4OW63GW.js → chunk-ZPLALRXZ.js} +17 -9
  98. package/chunks/{computer-use-QLJ27OCZ.js → computer-use-ESQYJ3JY.js} +13 -10
  99. package/chunks/{config-utils-KIEXWA4F.js → config-utils-XQHBJP7G.js} +2 -2
  100. package/chunks/{contextCommand-JDTOJRBO.js → contextCommand-CX3YF4ZE.js} +15 -12
  101. package/chunks/{core-runtime-MZIAVYQC.js → core-runtime-DIAU7JMG.js} +13 -10
  102. package/chunks/{create-sub-session-YBBCNSHE.js → create-sub-session-HDPD6HOA.js} +13 -10
  103. package/chunks/{daemon-SCTQMM7Z.js → daemon-VZBGJUNL.js} +30 -0
  104. package/chunks/{daemon-status-provider-BZ7RD4ZJ.js → daemon-status-provider-H6O4UQ4F.js} +19 -16
  105. package/chunks/{daemon-trust-policy-2E4C3M7S.js → daemon-trust-policy-BNUXG6MT.js} +20 -17
  106. package/chunks/{daemon-trust-policy-monitor-UYLFH6RW.js → daemon-trust-policy-monitor-E4EQ7GF4.js} +20 -17
  107. package/chunks/{de-VL76CPLV.js → de-LIW4XVLN.js} +5 -0
  108. package/chunks/{deferred-core-runtime-6XZYMJZB.js → deferred-core-runtime-CBMSHPAU.js} +13 -10
  109. package/chunks/{dist-BATY7GI4.js → dist-EEEQGCZA.js} +731 -136
  110. package/chunks/{dist-26RK5XZO.js → dist-MKX5OSFF.js} +4 -3
  111. package/chunks/{earlyInputCapture-LATQCGDC.js → earlyInputCapture-UIOP7OIN.js} +13 -10
  112. package/chunks/{edit-72DP57CD.js → edit-ITMZYFKA.js} +13 -10
  113. package/chunks/{en-IRJ2WN5T.js → en-SY5GTIGX.js} +6 -0
  114. package/chunks/{enter-worktree-B4FY2ZPP.js → enter-worktree-S4PL5UV6.js} +13 -10
  115. package/chunks/{enterPlanMode-TQBWGCPL.js → enterPlanMode-YV52NNJT.js} +13 -10
  116. package/chunks/{environment-MOGZGZDS.js → environment-NGOWPRZV.js} +17 -14
  117. package/chunks/{errors-PGON5GH7.js → errors-BU26DTDX.js} +15 -12
  118. package/chunks/{exit-worktree-EYUD4YP2.js → exit-worktree-XRM6LH5F.js} +13 -10
  119. package/chunks/{exitPlanMode-4Q7BSQXR.js → exitPlanMode-ZLI5F7KR.js} +13 -10
  120. package/chunks/{fast-path-WI7D5MER.js → fast-path-UJWORIED.js} +3 -3
  121. package/chunks/{fast-path-settings-YBRL24DB.js → fast-path-settings-37WQD5B2.js} +6 -3
  122. package/chunks/{fr-GK3HQYVB.js → fr-RQFO7U4P.js} +5 -0
  123. package/chunks/{gemini-ZXURGM6Y.js → gemini-ZSKNDUMU.js} +55 -48
  124. package/chunks/{geminiContentGenerator-EOODO75Y.js → geminiContentGenerator-YGEXOEKD.js} +1 -1
  125. package/chunks/{glob-QNRIUOS6.js → glob-7KZG44BR.js} +13 -10
  126. package/chunks/{goal-tools-QSYW65HV.js → goal-tools-PXWN5VK3.js} +3 -1
  127. package/chunks/{grep-56MTW67B.js → grep-6ZFC7RJ5.js} +13 -10
  128. package/chunks/{handleAutoUpdate-XGFIPVT4.js → handleAutoUpdate-KSEL3TQS.js} +17 -14
  129. package/chunks/{i18n-RZB35L4B.js → i18n-ZIUXBW5V.js} +14 -11
  130. package/chunks/{image-gen-OE2EEKN3.js → image-gen-AUIZJJNK.js} +6 -4
  131. package/chunks/{initializer-YPVMTMKD.js → initializer-7AHY3N6Q.js} +20 -17
  132. package/chunks/{installationInfo-ZTMTMYNW.js → installationInfo-VGBXMYLY.js} +14 -11
  133. package/chunks/{ja-3FA46IKD.js → ja-KOZKHJHZ.js} +5 -0
  134. package/chunks/{list-NIW3WID5.js → list-PSFKQHLB.js} +23 -20
  135. package/chunks/{loadedSettingsAdapter-VSLILTOZ.js → loadedSettingsAdapter-FTMRCTOF.js} +20 -17
  136. package/chunks/{loggingContentGenerator-KFZYVAGV.js → loggingContentGenerator-MZAN52UV.js} +5 -3
  137. package/chunks/{managed-npm-update-WHTA2K5V.js → managed-npm-update-O4NHK45X.js} +14 -11
  138. package/chunks/{mcp-7KGK3CS3.js → mcp-6CFP2AYQ.js} +20 -17
  139. package/chunks/{monitor-FDWEJQWP.js → monitor-DAKD6OU4.js} +13 -10
  140. package/chunks/{nonInteractiveCli-2MVJ6TCS.js → nonInteractiveCli-RC7VIUZL.js} +49 -44
  141. package/chunks/{notebook-edit-ZUVK2XWE.js → notebook-edit-474DPMRL.js} +13 -10
  142. package/chunks/{openaiContentGenerator-TNLWOPH5.js → openaiContentGenerator-2NFY2MWO.js} +6 -3
  143. package/chunks/{pidfile-BB6SKPH2.js → pidfile-KBFVDNQP.js} +13 -10
  144. package/chunks/{processUtils-WKHJOPDH.js → processUtils-6GRYH4Y3.js} +2 -2
  145. package/chunks/{pt-3AOBKPIJ.js → pt-U6AOCTMF.js} +5 -0
  146. package/chunks/{qwenContentGenerator-FZS2DYF7.js → qwenContentGenerator-KAHU6IZY.js} +14 -11
  147. package/chunks/{qwenOAuth2-UYMYRXBB.js → qwenOAuth2-RRQTCP4W.js} +6 -4
  148. package/chunks/{read-file-FMTE6LPA.js → read-file-3M6WXDXP.js} +4 -2
  149. package/chunks/{resumeHistoryUtils-Z34RCZFF.js → resumeHistoryUtils-D6TAY3HX.js} +16 -13
  150. package/chunks/{ripGrep-DUIYUZGM.js → ripGrep-PLPENT3E.js} +13 -10
  151. package/chunks/{ru-VJRAMC4W.js → ru-CMX4UMYP.js} +5 -0
  152. package/chunks/{run-qwen-serve-KOHHR3F4.js → run-qwen-serve-ZAFIJKJC.js} +93 -40
  153. package/chunks/{runtime-K4NTZSAU.js → runtime-ZED7CYOZ.js} +23 -20
  154. package/chunks/{scheduler-6G6AMURS.js → scheduler-MD3AL2W5.js} +13 -10
  155. package/chunks/{serve-NMG2TM5K.js → serve-E3VUDRZN.js} +20 -17
  156. package/chunks/{server-FS7KDELS.js → server-OWMEMAKR.js} +381 -192
  157. package/chunks/{session-XZADUVKJ.js → session-HZ57QK7K.js} +141 -81
  158. package/chunks/{settings-G75R6FOA.js → settings-V7BR3RKP.js} +19 -16
  159. package/chunks/{shell-3D3PMQHE.js → shell-23OMNMW6.js} +13 -10
  160. package/chunks/{skill-TSEYMVQ2.js → skill-6HBDYZRS.js} +4 -2
  161. package/chunks/{skill-settings-HJC2CPBJ.js → skill-settings-HWJLTU7M.js} +19 -16
  162. package/chunks/{spawnChannel-YWCN74G5.js → spawnChannel-N6KKUW5B.js} +13 -10
  163. package/chunks/{standalone-update-HLYOLX6V.js → standalone-update-QGIKHATD.js} +15 -12
  164. package/chunks/{startInteractiveUI-ROUIQ5KU.js → startInteractiveUI-GX2CRL42.js} +269 -118
  165. package/chunks/{team-create-OTP5SSB2.js → team-create-CFFKU7KL.js} +13 -10
  166. package/chunks/{team-plan-approval-TQX5TMXU.js → team-plan-approval-6EFOKR6A.js} +13 -10
  167. package/chunks/{terminal-image-renderer-KF3GKNWW.js → terminal-image-renderer-TLDNACQY.js} +13 -10
  168. package/chunks/{theme-manager-XVWAAGAM.js → theme-manager-5LJ3H7VO.js} +13 -10
  169. package/chunks/{tool-search-7N4D4O56.js → tool-search-UJV3A24H.js} +4 -2
  170. package/chunks/{total-session-admission-ZQ4VKIRW.js → total-session-admission-D63QYXGO.js} +15 -12
  171. package/chunks/{trustedFolders-4XYFPWVV.js → trustedFolders-KZCOB53W.js} +17 -12
  172. package/chunks/{update-relaunch-L4GSBLUU.js → update-relaunch-IFILM3SA.js} +5 -5
  173. package/chunks/{updateCheck-PCUTVRFE.js → updateCheck-YZ2CRCFC.js} +16 -13
  174. package/chunks/{useAutoAcceptIndicator-WMXY7MND.js → useAutoAcceptIndicator-AXEVNA3Q.js} +22 -19
  175. package/chunks/{validateNonInterActiveAuth-5S3U2D56.js → validateNonInterActiveAuth-3WTOJFWA.js} +44 -41
  176. package/chunks/{version-P57IQU2T.js → version-GXK7OHZY.js} +1 -1
  177. package/chunks/{web-fetch-5ZLLLCDD.js → web-fetch-ILB4GAVR.js} +10 -6
  178. package/chunks/{web-search-NELKANTW.js → web-search-HKRPGPZZ.js} +5 -3
  179. package/chunks/{workflow-RXKBF3LO.js → workflow-FXIPRQQA.js} +735 -134
  180. package/chunks/{workspace-providers-status-HAEMNAWC.js → workspace-providers-status-NYHC7HSR.js} +22 -19
  181. package/chunks/{workspace-registration-store-U3U3YM6V.js → workspace-registration-store-AKEB7OMW.js} +1 -1
  182. package/chunks/{workspace-registry-ZFP33GVB.js → workspace-registry-CDAS5TVZ.js} +15 -12
  183. package/chunks/{workspace-service-QMISJBMA.js → workspace-service-PAMUKMAV.js} +23 -20
  184. package/chunks/{workspace-skills-status-K7EOUGXL.js → workspace-skills-status-YQSHCCMS.js} +20 -17
  185. package/chunks/{workspace-trust-reconciler-BFPKULDZ.js → workspace-trust-reconciler-RPTXOIY2.js} +22 -19
  186. package/chunks/{write-file-2F76RRFE.js → write-file-CGS57TS4.js} +13 -10
  187. package/chunks/{zh-ARWDLDLR.js → zh-AGL2FVBI.js} +6 -0
  188. package/chunks/{zh-TW-Y4RGI3P7.js → zh-TW-KI66MHQY.js} +6 -0
  189. package/chunks/{zoom-image-DPR22XWY.js → zoom-image-E7D72GYV.js} +4 -2
  190. package/cli.js +13 -13
  191. package/locales/ca.js +10 -0
  192. package/locales/de.js +9 -0
  193. package/locales/en.js +10 -0
  194. package/locales/fr.js +9 -0
  195. package/locales/ja.js +9 -0
  196. package/locales/pt.js +9 -0
  197. package/locales/ru.js +9 -0
  198. package/locales/zh-TW.js +10 -0
  199. package/locales/zh.js +10 -0
  200. package/package.json +3 -3
  201. package/web-shell/assets/{arc-CunFPPcQ.js → arc-DybZaz32.js} +1 -1
  202. package/web-shell/assets/{architectureDiagram-3BPJPVTR-D3SqCgeM.js → architectureDiagram-3BPJPVTR-jN3qBd19.js} +1 -1
  203. package/web-shell/assets/{blockDiagram-GPEHLZMM-CPRx90S_.js → blockDiagram-GPEHLZMM-Ct5DZPrj.js} +1 -1
  204. package/web-shell/assets/{c4Diagram-AAUBKEIU-CahP9Ue4.js → c4Diagram-AAUBKEIU-CUAFMlUG.js} +1 -1
  205. package/web-shell/assets/channel-BMwLrwLW.js +1 -0
  206. package/web-shell/assets/{chunk-2J33WTMH-DckIWZ12.js → chunk-2J33WTMH-CuV8n90B.js} +1 -1
  207. package/web-shell/assets/{chunk-4BX2VUAB-D2Kfctyn.js → chunk-4BX2VUAB-BUzl_kls.js} +1 -1
  208. package/web-shell/assets/{chunk-55IACEB6-DkI11FTX.js → chunk-55IACEB6-BnDBLX6A.js} +1 -1
  209. package/web-shell/assets/{chunk-727SXJPM-rR-TSCIi.js → chunk-727SXJPM-B83uTOjm.js} +1 -1
  210. package/web-shell/assets/{chunk-AQP2D5EJ-DFGKcGRO.js → chunk-AQP2D5EJ-DM3HLgpT.js} +1 -1
  211. package/web-shell/assets/{chunk-FMBD7UC4-CjWqcTPE.js → chunk-FMBD7UC4-CSQ5hgyb.js} +1 -1
  212. package/web-shell/assets/{chunk-ND2GUHAM-RXe-87UV.js → chunk-ND2GUHAM-BWOF4SxX.js} +1 -1
  213. package/web-shell/assets/{chunk-QZHKN3VN-Dz0c_Yrn.js → chunk-QZHKN3VN-BsOH9LMi.js} +1 -1
  214. package/web-shell/assets/classDiagram-4FO5ZUOK-BGDv98jY.js +1 -0
  215. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BGDv98jY.js +1 -0
  216. package/web-shell/assets/{cose-bilkent-S5V4N54A-ZHF0-jvV.js → cose-bilkent-S5V4N54A-IENqH2iJ.js} +1 -1
  217. package/web-shell/assets/{dagre-BM42HDAG-7Umz_ygJ.js → dagre-BM42HDAG--dyzDTGo.js} +1 -1
  218. package/web-shell/assets/{diagram-2AECGRRQ-DomN8nxq.js → diagram-2AECGRRQ-BE7Dcqof.js} +1 -1
  219. package/web-shell/assets/{diagram-5GNKFQAL-eebvj2OL.js → diagram-5GNKFQAL-Cr8-5OTj.js} +1 -1
  220. package/web-shell/assets/{diagram-KO2AKTUF-IR1mmn9d.js → diagram-KO2AKTUF-Bzey3uAY.js} +1 -1
  221. package/web-shell/assets/{diagram-LMA3HP47-CKysx5KF.js → diagram-LMA3HP47-sErl28Xb.js} +1 -1
  222. package/web-shell/assets/{diagram-OG6HWLK6-cBy5puHn.js → diagram-OG6HWLK6-Dq30ATIo.js} +1 -1
  223. package/web-shell/assets/{erDiagram-TEJ5UH35-B5RJagPG.js → erDiagram-TEJ5UH35-BkCoEfVW.js} +1 -1
  224. package/web-shell/assets/{flowDiagram-I6XJVG4X-CfHgDmPg.js → flowDiagram-I6XJVG4X-DHwO0rrI.js} +1 -1
  225. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DUfFF5nb.js → ganttDiagram-6RSMTGT7-s7vAPxWq.js} +1 -1
  226. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-M9dt57k5.js → gitGraphDiagram-PVQCEYII-CQxhwPOU.js} +1 -1
  227. package/web-shell/assets/{index-B8e-CkuC.css → index-Bckpjr-I.css} +1 -1
  228. package/web-shell/assets/{index-CKjO4myk.js → index-CF4wApWp.js} +1 -1
  229. package/web-shell/assets/{index-Dc-fTO0V.js → index-DwEr9HEW.js} +316 -316
  230. package/web-shell/assets/{infoDiagram-5YYISTIA-CTKMmIro.js → infoDiagram-5YYISTIA-BnFrD0bq.js} +1 -1
  231. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DJIJDP4s.js → ishikawaDiagram-YF4QCWOH-Bf9zK5NK.js} +1 -1
  232. package/web-shell/assets/{journeyDiagram-JHISSGLW-DgRnvn6S.js → journeyDiagram-JHISSGLW-CyGAhsxi.js} +1 -1
  233. package/web-shell/assets/{kanban-definition-UN3LZRKU-VUwO8yrg.js → kanban-definition-UN3LZRKU-CbsK5akB.js} +1 -1
  234. package/web-shell/assets/{linear-BCvgV5I_.js → linear-cQsF4P8D.js} +1 -1
  235. package/web-shell/assets/{mermaid.core-mv_kVV6q.js → mermaid.core-Z4HVqrKY.js} +5 -5
  236. package/web-shell/assets/{mindmap-definition-RKZ34NQL-sfnjMlOd.js → mindmap-definition-RKZ34NQL-CYnrBo_f.js} +1 -1
  237. package/web-shell/assets/{pieDiagram-4H26LBE5-BlhICse4.js → pieDiagram-4H26LBE5-CBzOfhrs.js} +1 -1
  238. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BgTQzwen.js → quadrantDiagram-W4KKPZXB-D4LK1Ebn.js} +1 -1
  239. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CZ-FTrrN.js → requirementDiagram-4Y6WPE33-Bzti2Lcj.js} +1 -1
  240. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-G5Wp_jn3.js → sankeyDiagram-5OEKKPKP-yTBw5Z2s.js} +1 -1
  241. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-C8MKZ3i1.js → sequenceDiagram-3UESZ5HK-D07UVRiZ.js} +1 -1
  242. package/web-shell/assets/{stateDiagram-AJRCARHV-Bo0ZDm7y.js → stateDiagram-AJRCARHV-UE_lHsTn.js} +1 -1
  243. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DC6xgXjX.js +1 -0
  244. package/web-shell/assets/{timeline-definition-PNZ67QCA-M3L9E01f.js → timeline-definition-PNZ67QCA-DRvYdiTs.js} +1 -1
  245. package/web-shell/assets/{vennDiagram-CIIHVFJN-DD4eHCrm.js → vennDiagram-CIIHVFJN-CQLIXs0u.js} +1 -1
  246. package/web-shell/assets/{wardley-L42UT6IY-DNEL_3g4.js → wardley-L42UT6IY-JZz_Xqse.js} +1 -1
  247. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-q484OoqI.js → wardleyDiagram-YWT4CUSO--i7BiJwB.js} +1 -1
  248. package/web-shell/assets/{xychartDiagram-2RQKCTM6-4mcNt1Yg.js → xychartDiagram-2RQKCTM6-Bkc-bW0S.js} +1 -1
  249. package/web-shell/index.html +2 -2
  250. package/chunks/chunk-ALFTV7GA.js +0 -92
  251. package/web-shell/assets/channel-zbv7GWAw.js +0 -1
  252. package/web-shell/assets/classDiagram-4FO5ZUOK-DSjLkJJZ.js +0 -1
  253. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DSjLkJJZ.js +0 -1
  254. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-31TSCPcH.js +0 -1
@@ -1,39 +1,40 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
+ TurnInterruptedError,
4
5
  runNonInteractive
5
- } from "./chunk-HKCYGZZ4.js";
6
- import "./chunk-BCMJPTXV.js";
6
+ } from "./chunk-2ILAOM2I.js";
7
+ import "./chunk-WG6542MA.js";
7
8
  import {
8
9
  buildPermissionSuggestions
9
10
  } from "./chunk-43T5WDQ7.js";
10
11
  import {
11
12
  settleChatRecording,
12
13
  subscribeToHeadlessChatRecordingFailures
13
- } from "./chunk-RZMGG3HP.js";
14
+ } from "./chunk-U5SLIG7E.js";
14
15
  import {
15
16
  StreamJsonOutputAdapter
16
- } from "./chunk-5YT3Y33M.js";
17
- import "./chunk-BJKFFPX2.js";
17
+ } from "./chunk-77QVBFCU.js";
18
+ import "./chunk-FWBXMANW.js";
18
19
  import {
19
20
  getAvailableCommands
20
- } from "./chunk-UKAYEQDU.js";
21
- import "./chunk-IMK3SJ43.js";
22
- import "./chunk-MIA37QO3.js";
21
+ } from "./chunk-YHJFF7KH.js";
22
+ import "./chunk-7VUERJHS.js";
23
+ import "./chunk-XHD7CRP2.js";
23
24
  import "./chunk-NYX53SV4.js";
24
- import "./chunk-YHEEE624.js";
25
- import "./chunk-Z5ZAWED3.js";
25
+ import "./chunk-EN2TKTFH.js";
26
+ import "./chunk-GOEVOFQI.js";
26
27
  import "./chunk-4WGODMVR.js";
27
- import "./chunk-RFA6VDCR.js";
28
+ import "./chunk-ZHA242R4.js";
28
29
  import "./chunk-YAF2MQZ6.js";
29
30
  import "./chunk-CTJLZLB5.js";
30
- import "./chunk-LMEIS6WW.js";
31
+ import "./chunk-HWX5HPUG.js";
31
32
  import "./chunk-6H67XLET.js";
32
- import "./chunk-MV7VUCIG.js";
33
- import "./chunk-H2352CX2.js";
34
- import "./chunk-LDY4J4G6.js";
33
+ import "./chunk-EIVICVHM.js";
34
+ import "./chunk-IYES5WOT.js";
35
+ import "./chunk-2M4K4KYS.js";
35
36
  import "./chunk-OWMAZHIX.js";
36
- import "./chunk-O7VQ3F22.js";
37
+ import "./chunk-4ALIARFY.js";
37
38
  import "./chunk-4NFY2S7N.js";
38
39
  import "./chunk-2MIN6GRR.js";
39
40
  import "./chunk-QHTIBUWB.js";
@@ -41,20 +42,20 @@ import "./chunk-EKTCKZV5.js";
41
42
  import "./chunk-3Z43GZUQ.js";
42
43
  import "./chunk-RXFQM6FQ.js";
43
44
  import "./chunk-HGCQ5SE7.js";
44
- import "./chunk-XIDHBXUI.js";
45
- import "./chunk-LDUGDB5H.js";
45
+ import "./chunk-GBDINRIL.js";
46
+ import "./chunk-C5VWPTGT.js";
46
47
  import "./chunk-AOHJKPKL.js";
47
48
  import "./chunk-Z4X5MTRT.js";
48
- import "./chunk-JACAHYEN.js";
49
- import "./chunk-HY2INPTA.js";
49
+ import "./chunk-E4ZBKMSF.js";
50
+ import "./chunk-QQWD7LZV.js";
50
51
  import "./chunk-57OAHC2Y.js";
51
- import "./chunk-26ISE5EG.js";
52
+ import "./chunk-3SE7J4DR.js";
52
53
  import "./chunk-3SH53ANB.js";
53
54
  import "./chunk-MZSJ43WV.js";
54
55
  import "./chunk-XCGIMOLN.js";
55
- import "./chunk-P74TZRXD.js";
56
+ import "./chunk-QXVSWG66.js";
56
57
  import "./chunk-KJZ26VBX.js";
57
- import "./chunk-VDS2WYM5.js";
58
+ import "./chunk-NGYI5EF5.js";
58
59
  import "./chunk-V6WHFGST.js";
59
60
  import "./chunk-6PLDPT2C.js";
60
61
  import "./chunk-FYJ7W2PI.js";
@@ -68,21 +69,21 @@ import "./chunk-UVX4Y6IN.js";
68
69
  import "./chunk-ZWBUH5UP.js";
69
70
  import "./chunk-DIWZNWZT.js";
70
71
  import "./chunk-UDXSXLER.js";
71
- import "./chunk-4QJJHIZ5.js";
72
+ import "./chunk-Y4TETC74.js";
72
73
  import {
73
74
  createMinimalSettings
74
- } from "./chunk-77WOUGCA.js";
75
+ } from "./chunk-OHKJVAKG.js";
75
76
  import "./chunk-RKUWKYED.js";
76
77
  import "./chunk-GOXKNSDZ.js";
77
78
  import "./chunk-IDS7MSUP.js";
78
- import "./chunk-TAOSTUHI.js";
79
- import "./chunk-KPMB4JEZ.js";
80
- import "./chunk-ALFTV7GA.js";
81
- import "./chunk-SDUDZNF4.js";
82
- import "./chunk-Z6W3XDLN.js";
79
+ import "./chunk-PG62DFWD.js";
80
+ import "./chunk-B52AWKBB.js";
81
+ import "./chunk-UA5H3DS2.js";
82
+ import "./chunk-IUQ52YJK.js";
83
+ import "./chunk-FN6YXJOP.js";
83
84
  import "./chunk-VJNBRRZG.js";
84
- import "./chunk-3ARO4N5G.js";
85
- import "./chunk-ALGGS7UH.js";
85
+ import "./chunk-HA3SAB64.js";
86
+ import "./chunk-NPQ5ZKRP.js";
86
87
  import "./chunk-MR3PXB6E.js";
87
88
  import "./chunk-XFSFZCM5.js";
88
89
  import {
@@ -90,7 +91,7 @@ import {
90
91
  TURN_INTERRUPTION_HISTORY_TAIL_COUNT,
91
92
  buildSessionRecoveryPlanFromApiHistory,
92
93
  loadUsageDashboard
93
- } from "./chunk-BFSQBXHV.js";
94
+ } from "./chunk-GXSNGY5M.js";
94
95
  import "./chunk-GOFAQQZA.js";
95
96
  import "./chunk-5M6IDOMF.js";
96
97
  import "./chunk-TWPJO254.js";
@@ -100,7 +101,7 @@ import "./chunk-MVUQRLOH.js";
100
101
  import "./chunk-XCWO3SMQ.js";
101
102
  import "./chunk-7MH4J33A.js";
102
103
  import "./chunk-6PVPNMXU.js";
103
- import "./chunk-RGTB44BO.js";
104
+ import "./chunk-VXZ5HAOV.js";
104
105
  import "./chunk-IRH27ZC2.js";
105
106
  import "./chunk-QHWCP53L.js";
106
107
  import "./chunk-GNPNYXJB.js";
@@ -113,10 +114,10 @@ import "./chunk-J6SZID63.js";
113
114
  import "./chunk-KRXPRVGL.js";
114
115
  import "./chunk-GM463R2B.js";
115
116
  import "./chunk-SEZ556DZ.js";
116
- import "./chunk-CJXIIILK.js";
117
- import "./chunk-3K7FH2KQ.js";
117
+ import "./chunk-2FRY5CRX.js";
118
+ import "./chunk-67N6HB5H.js";
118
119
  import "./chunk-WAUGQKUU.js";
119
- import "./chunk-REHWPCG2.js";
120
+ import "./chunk-PLFATELK.js";
120
121
  import "./chunk-L4N6TIP7.js";
121
122
  import "./chunk-SAH4BD2J.js";
122
123
  import "./chunk-CPG6P4GG.js";
@@ -126,11 +127,12 @@ import "./chunk-IA7TGCN2.js";
126
127
  import "./chunk-K623ENWT.js";
127
128
  import "./chunk-AQ37AY7B.js";
128
129
  import "./chunk-EQL65XGA.js";
129
- import "./chunk-22NBYCPD.js";
130
+ import "./chunk-3P2LV43B.js";
130
131
  import "./chunk-NAVJD2PQ.js";
131
- import "./chunk-3ULCB3NE.js";
132
- import "./chunk-BGG4MBYD.js";
132
+ import "./chunk-HV76SFIA.js";
133
+ import "./chunk-4PYCZH2V.js";
133
134
  import "./chunk-P3QQPMQA.js";
135
+ import "./chunk-SR7RZ4MS.js";
134
136
  import "./chunk-M6HMMKVG.js";
135
137
  import {
136
138
  normalizeReasoningEffort
@@ -140,15 +142,17 @@ import "./chunk-AXMWHKXA.js";
140
142
  import "./chunk-GLCZKT5V.js";
141
143
  import "./chunk-DJ2GSRLV.js";
142
144
  import "./chunk-EI3HZX6C.js";
143
- import "./chunk-XCG76UE6.js";
145
+ import "./chunk-3PY4LPJF.js";
144
146
  import "./chunk-WOJZWRAZ.js";
145
147
  import "./chunk-VGC4I5JJ.js";
146
148
  import "./chunk-FVKHVJZQ.js";
149
+ import "./chunk-COBO5EBO.js";
147
150
  import "./chunk-6ZRFAKXK.js";
148
151
  import {
149
152
  ToolNames
150
153
  } from "./chunk-PYQADEFD.js";
151
- import "./chunk-P7HUJDBZ.js";
154
+ import "./chunk-M3STHEMM.js";
155
+ import "./chunk-F6WFNA7U.js";
152
156
  import "./chunk-46UV252V.js";
153
157
  import "./chunk-ZBVS26BY.js";
154
158
  import "./chunk-KKBPOU75.js";
@@ -161,13 +165,13 @@ import {
161
165
  createDebugLogger
162
166
  } from "./chunk-OIVKILPI.js";
163
167
  import "./chunk-VOQXFAY5.js";
164
- import "./chunk-TSYIQDG7.js";
168
+ import "./chunk-BF52U4XJ.js";
165
169
  import {
166
170
  finalizeStartupProfile,
167
171
  profileCheckpoint
168
172
  } from "./chunk-QSWDGAIC.js";
169
173
  import "./chunk-Q7YDKOGY.js";
170
- import "./chunk-ZQGHESAS.js";
174
+ import "./chunk-6TR7CFXH.js";
171
175
  import "./chunk-KGJGEEVR.js";
172
176
  import "./chunk-75DOP5OR.js";
173
177
  import "./chunk-DMTGGOSA.js";
@@ -251,6 +255,7 @@ var ControlContext = class {
251
255
  streamJson;
252
256
  sessionId;
253
257
  abortSignal;
258
+ getActiveTurnAbortSignal;
254
259
  debugMode;
255
260
  settings;
256
261
  permissionMode;
@@ -265,6 +270,7 @@ var ControlContext = class {
265
270
  this.streamJson = options.streamJson;
266
271
  this.sessionId = options.sessionId;
267
272
  this.abortSignal = options.abortSignal;
273
+ this.getActiveTurnAbortSignal = options.getActiveTurnAbortSignal;
268
274
  this.debugMode = options.config.getDebugMode();
269
275
  this.settings = options.settings;
270
276
  this.permissionMode = options.permissionMode || "default";
@@ -300,6 +306,16 @@ var BaseController = class {
300
306
  this.controllerName = controllerName;
301
307
  this.debugLogger = createDebugLogger();
302
308
  }
309
+ /**
310
+ * Capture cancellation for a request owned by the current turn. Session
311
+ * cancellation always applies; when a turn is active, interrupting that
312
+ * turn also cancels the request. Call this when creating each request so a
313
+ * later active turn cannot take ownership of work already in flight.
314
+ */
315
+ getTurnRequestAbortSignal() {
316
+ const activeTurnSignal = this.context.getActiveTurnAbortSignal?.();
317
+ return activeTurnSignal ? AbortSignal.any([this.context.abortSignal, activeTurnSignal]) : this.context.abortSignal;
318
+ }
303
319
  /**
304
320
  * Handle an incoming control request
305
321
  *
@@ -466,7 +482,7 @@ var SystemController = class extends BaseController {
466
482
  throw new Error("Request aborted");
467
483
  }
468
484
  try {
469
- const mod = await import("./contextCommand-JDTOJRBO.js");
485
+ const mod = await import("./contextCommand-CX3YF4ZE.js");
470
486
  if (signal.aborted) {
471
487
  throw new Error("Request aborted");
472
488
  }
@@ -1103,13 +1119,14 @@ var PermissionController = class extends BaseController {
1103
1119
  * This is passed to executeToolCall to hook into CoreToolScheduler updates
1104
1120
  */
1105
1121
  getToolCallUpdateCallback() {
1122
+ const turnSignal = this.getTurnRequestAbortSignal();
1106
1123
  return (toolCalls) => {
1107
1124
  for (const call of toolCalls) {
1108
1125
  if (call && typeof call === "object" && call.status === "awaiting_approval") {
1109
1126
  const awaiting = call;
1110
1127
  if (typeof awaiting.confirmationDetails?.onConfirm === "function" && !this.pendingOutgoingRequests.has(awaiting.request.callId)) {
1111
1128
  this.pendingOutgoingRequests.add(awaiting.request.callId);
1112
- void this.handleOutgoingPermissionRequest(awaiting);
1129
+ void this.handleOutgoingPermissionRequest(awaiting, turnSignal);
1113
1130
  }
1114
1131
  }
1115
1132
  }
@@ -1152,7 +1169,7 @@ var PermissionController = class extends BaseController {
1152
1169
  */
1153
1170
  async handleTeammateApproval(event) {
1154
1171
  try {
1155
- if (this.context.abortSignal?.aborted) {
1172
+ if (this.context.abortSignal.aborted) {
1156
1173
  await event.respond("cancel" /* Cancel */);
1157
1174
  return;
1158
1175
  }
@@ -1279,11 +1296,11 @@ var PermissionController = class extends BaseController {
1279
1296
  * - stream-json mode: Send can_use_tool to SDK and await response
1280
1297
  * - Other modes: Check local approval mode and decide immediately
1281
1298
  */
1282
- async handleOutgoingPermissionRequest(toolCall) {
1299
+ async handleOutgoingPermissionRequest(toolCall, signal) {
1283
1300
  const requiresUserInteraction = toolCall.invocation?.requiresUserInteraction?.() === true;
1284
1301
  const interactionUnavailableMessage = toolCall.request.name === ToolNames.EXIT_PLAN_MODE ? "The host could not present plan-exit approval. Use the host mode selector or /plan exit to leave plan mode." : `The host could not present the required approval for "${toolCall.request.name}".`;
1285
1302
  try {
1286
- if (this.context.abortSignal?.aborted) {
1303
+ if (signal.aborted) {
1287
1304
  await toolCall.confirmationDetails.onConfirm(
1288
1305
  "cancel" /* Cancel */
1289
1306
  );
@@ -1319,7 +1336,7 @@ var PermissionController = class extends BaseController {
1319
1336
  blocked_path: null
1320
1337
  },
1321
1338
  this.context.sdkCanUseToolTimeoutMs ?? DEFAULT_CAN_USE_TOOL_TIMEOUT_MS,
1322
- this.context.abortSignal
1339
+ signal
1323
1340
  );
1324
1341
  if (response.subtype !== "success") {
1325
1342
  await toolCall.confirmationDetails.onConfirm(
@@ -1447,6 +1464,7 @@ var SdkMcpController = class extends BaseController {
1447
1464
  `[SdkMcpController] Sending MCP message to SDK server '${serverName}':`,
1448
1465
  JSON.stringify(message)
1449
1466
  );
1467
+ const signal = this.getTurnRequestAbortSignal();
1450
1468
  const response = await this.sendControlRequest(
1451
1469
  {
1452
1470
  subtype: "mcp_message",
@@ -1454,7 +1472,7 @@ var SdkMcpController = class extends BaseController {
1454
1472
  message
1455
1473
  },
1456
1474
  MCP_REQUEST_TIMEOUT,
1457
- this.context.abortSignal
1475
+ signal
1458
1476
  );
1459
1477
  const responsePayload = response.response;
1460
1478
  const mcpResponse = responsePayload?.["mcp_response"];
@@ -1497,6 +1515,7 @@ var ControlDispatcher = class {
1497
1515
  pendingIncomingRequests = /* @__PURE__ */ new Map();
1498
1516
  pendingOutgoingRequests = /* @__PURE__ */ new Map();
1499
1517
  abortHandler = null;
1518
+ isShutdown = false;
1500
1519
  constructor(context) {
1501
1520
  this.context = context;
1502
1521
  this.systemController = new SystemController(
@@ -1617,6 +1636,10 @@ var ControlDispatcher = class {
1617
1636
  * Stops all pending requests and cleans up all controllers
1618
1637
  */
1619
1638
  shutdown() {
1639
+ if (this.isShutdown) {
1640
+ return;
1641
+ }
1642
+ this.isShutdown = true;
1620
1643
  debugLogger2.debug("[ControlDispatcher] Shutting down");
1621
1644
  if (this.abortHandler) {
1622
1645
  this.context.abortSignal.removeEventListener("abort", this.abortHandler);
@@ -1951,7 +1974,8 @@ var Session = class {
1951
1974
  monitorQueue = [];
1952
1975
  pendingContinueTurn = false;
1953
1976
  continueTurnInProgress = false;
1954
- abortController;
1977
+ sessionAbortController;
1978
+ activeTurnAbortController = null;
1955
1979
  config;
1956
1980
  sessionId;
1957
1981
  promptIdCounter = 0;
@@ -1979,7 +2003,7 @@ var Session = class {
1979
2003
  this.config = config;
1980
2004
  this.settings = settings;
1981
2005
  this.sessionId = config.getSessionId();
1982
- this.abortController = new AbortController();
2006
+ this.sessionAbortController = new AbortController();
1983
2007
  this.initialPrompt = initialPrompt ?? null;
1984
2008
  this.inputReader = new StreamJsonInputReader();
1985
2009
  this.outputAdapter = new StreamJsonOutputAdapter(
@@ -2052,7 +2076,7 @@ var Session = class {
2052
2076
  }
2053
2077
  const registry = this.config.getMonitorRegistry();
2054
2078
  registry.setNotificationCallback((displayText, modelText, meta) => {
2055
- if (this.isShuttingDown || this.abortController.signal.aborted) {
2079
+ if (this.isShuttingDown || this.sessionAbortController.signal.aborted) {
2056
2080
  return;
2057
2081
  }
2058
2082
  if (meta.status === "running" && typeof registry.get === "function") {
@@ -2077,7 +2101,7 @@ var Session = class {
2077
2101
  }
2078
2102
  const registry = this.config.getMonitorRegistry();
2079
2103
  registry.setRegisterCallback((entry) => {
2080
- if (this.isShuttingDown || this.abortController.signal.aborted) {
2104
+ if (this.isShuttingDown || this.sessionAbortController.signal.aborted) {
2081
2105
  return;
2082
2106
  }
2083
2107
  this.enqueueMonitorStarted({
@@ -2127,7 +2151,8 @@ var Session = class {
2127
2151
  config: this.config,
2128
2152
  streamJson: this.outputAdapter,
2129
2153
  sessionId: this.sessionId,
2130
- abortSignal: this.abortController.signal,
2154
+ abortSignal: this.sessionAbortController.signal,
2155
+ getActiveTurnAbortSignal: /* @__PURE__ */ __name(() => this.activeTurnAbortController?.signal, "getActiveTurnAbortSignal"),
2131
2156
  settings: this.settings,
2132
2157
  permissionMode: this.config.getApprovalMode(),
2133
2158
  onInterrupt: /* @__PURE__ */ __name(() => this.handleInterrupt(), "onInterrupt"),
@@ -2252,16 +2277,20 @@ var Session = class {
2252
2277
  }
2253
2278
  await this.waitForInitialization();
2254
2279
  const promptId = this.getNextPromptId();
2280
+ const turnAbortController = this.startTurn();
2255
2281
  try {
2256
2282
  await runNonInteractive(this.config, this.settings, input, promptId, {
2257
- abortController: this.abortController,
2283
+ abortController: turnAbortController,
2258
2284
  adapter: this.outputAdapter,
2259
2285
  controlService: this.controlService ?? void 0,
2260
2286
  captureMonitorNotifications: false,
2261
- captureMonitorRegistrations: false
2287
+ captureMonitorRegistrations: false,
2288
+ recoverableCancellation: true
2262
2289
  });
2263
2290
  } catch (error) {
2264
2291
  debugLogger3.error("[Session] Query execution error:", error);
2292
+ } finally {
2293
+ this.finishTurn(turnAbortController);
2265
2294
  }
2266
2295
  }
2267
2296
  /**
@@ -2272,7 +2301,7 @@ var Session = class {
2272
2301
  */
2273
2302
  async requestContinueLastTurn() {
2274
2303
  await this.waitForInitialization();
2275
- if (this.isShuttingDown || this.abortController.signal.aborted) {
2304
+ if (this.isShuttingDown || this.sessionAbortController.signal.aborted) {
2276
2305
  debugLogger3.debug(
2277
2306
  "[Session] continue_last_turn rejected: session is shutting down"
2278
2307
  );
@@ -2326,16 +2355,19 @@ var Session = class {
2326
2355
  async processContinueTurn() {
2327
2356
  this.continueTurnInProgress = true;
2328
2357
  let resultAlreadyEmitted = false;
2358
+ let turnAbortController = null;
2329
2359
  try {
2330
2360
  await this.waitForInitialization();
2331
2361
  const promptId = this.getNextPromptId();
2362
+ turnAbortController = this.startTurn();
2332
2363
  await runNonInteractive(this.config, this.settings, "", promptId, {
2333
- abortController: this.abortController,
2364
+ abortController: turnAbortController,
2334
2365
  adapter: this.outputAdapter,
2335
2366
  controlService: this.controlService ?? void 0,
2336
2367
  continueInterrupted: true,
2337
2368
  captureMonitorNotifications: false,
2338
2369
  captureMonitorRegistrations: false,
2370
+ recoverableCancellation: true,
2339
2371
  onResultEmitted: /* @__PURE__ */ __name(() => {
2340
2372
  resultAlreadyEmitted = true;
2341
2373
  }, "onResultEmitted")
@@ -2351,6 +2383,9 @@ var Session = class {
2351
2383
  }
2352
2384
  throw new Error(`Continue turn failed: ${message}`, { cause: error });
2353
2385
  } finally {
2386
+ if (turnAbortController) {
2387
+ this.finishTurn(turnAbortController);
2388
+ }
2354
2389
  this.continueTurnInProgress = false;
2355
2390
  }
2356
2391
  }
@@ -2375,27 +2410,33 @@ var Session = class {
2375
2410
  const combinedModelText = batch.map((n) => n.modelText).join("\n\n");
2376
2411
  const combinedDisplayText = batch.map((n) => n.displayText).join("; ");
2377
2412
  const promptId = this.getNextPromptId();
2378
- await runNonInteractive(
2379
- this.config,
2380
- this.settings,
2381
- combinedModelText,
2382
- promptId,
2383
- {
2384
- abortController: this.abortController,
2385
- adapter: this.outputAdapter,
2386
- controlService: this.controlService ?? void 0,
2387
- sendMessageType: "notification" /* Notification */,
2388
- notificationDisplayText: combinedDisplayText,
2389
- captureMonitorNotifications: false,
2390
- captureMonitorRegistrations: false
2391
- }
2392
- );
2413
+ const turnAbortController = this.startTurn();
2414
+ try {
2415
+ await runNonInteractive(
2416
+ this.config,
2417
+ this.settings,
2418
+ combinedModelText,
2419
+ promptId,
2420
+ {
2421
+ abortController: turnAbortController,
2422
+ adapter: this.outputAdapter,
2423
+ controlService: this.controlService ?? void 0,
2424
+ sendMessageType: "notification" /* Notification */,
2425
+ notificationDisplayText: combinedDisplayText,
2426
+ captureMonitorNotifications: false,
2427
+ captureMonitorRegistrations: false,
2428
+ recoverableCancellation: true
2429
+ }
2430
+ );
2431
+ } finally {
2432
+ this.finishTurn(turnAbortController);
2433
+ }
2393
2434
  }
2394
2435
  async processPendingWork() {
2395
- if (this.isShuttingDown || this.abortController.signal.aborted) {
2436
+ if (this.isShuttingDown || this.sessionAbortController.signal.aborted) {
2396
2437
  return;
2397
2438
  }
2398
- while ((this.pendingContinueTurn || this.userMessageQueue.length > 0 || this.monitorStartedQueue.length > 0 || this.monitorQueue.length > 0) && !this.isShuttingDown && !this.abortController.signal.aborted) {
2439
+ while ((this.pendingContinueTurn || this.userMessageQueue.length > 0 || this.monitorStartedQueue.length > 0 || this.monitorQueue.length > 0) && !this.isShuttingDown && !this.sessionAbortController.signal.aborted) {
2399
2440
  if (this.pendingContinueTurn) {
2400
2441
  this.pendingContinueTurn = false;
2401
2442
  try {
@@ -2454,7 +2495,7 @@ var Session = class {
2454
2495
  }
2455
2496
  this.processingPromise = this.processPendingWork().finally(() => {
2456
2497
  this.processingPromise = null;
2457
- if ((this.pendingContinueTurn || this.userMessageQueue.length > 0 || this.monitorStartedQueue.length > 0 || this.monitorQueue.length > 0) && !this.isShuttingDown && !this.abortController.signal.aborted) {
2498
+ if ((this.pendingContinueTurn || this.userMessageQueue.length > 0 || this.monitorStartedQueue.length > 0 || this.monitorQueue.length > 0) && !this.isShuttingDown && !this.sessionAbortController.signal.aborted) {
2458
2499
  this.ensureProcessingStarted();
2459
2500
  }
2460
2501
  });
@@ -2473,13 +2514,30 @@ var Session = class {
2473
2514
  }
2474
2515
  handleInterrupt() {
2475
2516
  debugLogger3.info("[Session] Interrupt requested");
2476
- this.abortController.abort();
2517
+ this.activeTurnAbortController?.abort(new TurnInterruptedError());
2518
+ }
2519
+ startTurn() {
2520
+ const controller = new AbortController();
2521
+ if (this.sessionAbortController.signal.aborted) {
2522
+ controller.abort(this.sessionAbortController.signal.reason);
2523
+ }
2524
+ this.activeTurnAbortController = controller;
2525
+ return controller;
2526
+ }
2527
+ finishTurn(controller) {
2528
+ if (this.activeTurnAbortController === controller) {
2529
+ this.activeTurnAbortController = null;
2530
+ }
2531
+ }
2532
+ abortSession() {
2533
+ this.activeTurnAbortController?.abort();
2534
+ this.sessionAbortController.abort();
2477
2535
  }
2478
2536
  setupSignalHandlers() {
2479
2537
  this.shutdownHandler = () => {
2480
2538
  debugLogger3.info("[Session] Shutdown signal received");
2481
2539
  this.isShuttingDown = true;
2482
- this.abortController.abort();
2540
+ this.abortSession();
2483
2541
  };
2484
2542
  process.on("SIGINT", this.shutdownHandler);
2485
2543
  process.on("SIGTERM", this.shutdownHandler);
@@ -2523,6 +2581,7 @@ var Session = class {
2523
2581
  async shutdown() {
2524
2582
  debugLogger3.debug("[Session] Shutting down");
2525
2583
  this.isShuttingDown = true;
2584
+ this.abortSession();
2526
2585
  this.abortTaskRegistries();
2527
2586
  this.stopMonitorCallbacks();
2528
2587
  await this.waitForAllPendingWork();
@@ -2543,6 +2602,7 @@ var Session = class {
2543
2602
  this.config.getBackgroundTaskRegistry().abortAll();
2544
2603
  }
2545
2604
  finishShutdown() {
2605
+ this.abortSession();
2546
2606
  this.dispatcher?.shutdown();
2547
2607
  this.cleanupSignalHandlers();
2548
2608
  }
@@ -2593,7 +2653,7 @@ var Session = class {
2593
2653
  }
2594
2654
  try {
2595
2655
  for await (const message of this.inputReader.read()) {
2596
- if (this.abortController.signal.aborted) {
2656
+ if (this.sessionAbortController.signal.aborted) {
2597
2657
  break;
2598
2658
  }
2599
2659
  if (isControlResponse(message)) {
@@ -13,14 +13,14 @@ import {
13
13
  loadSettings,
14
14
  migrateLegacyPermissions,
15
15
  saveSettings
16
- } from "./chunk-77WOUGCA.js";
16
+ } from "./chunk-OHKJVAKG.js";
17
17
  import "./chunk-RKUWKYED.js";
18
18
  import "./chunk-GOXKNSDZ.js";
19
19
  import {
20
20
  getSystemDefaultsPath,
21
21
  getSystemSettingsPath
22
22
  } from "./chunk-IDS7MSUP.js";
23
- import "./chunk-TAOSTUHI.js";
23
+ import "./chunk-PG62DFWD.js";
24
24
  import {
25
25
  SETTINGS_DIRECTORY_NAME,
26
26
  getHomeEnvFallbackVars,
@@ -30,16 +30,16 @@ import {
30
30
  resetEnvironmentTrackingForTesting,
31
31
  resetHomeEnvBootstrapForTesting,
32
32
  setUpCloudShellEnvironment
33
- } from "./chunk-KPMB4JEZ.js";
33
+ } from "./chunk-B52AWKBB.js";
34
34
  import {
35
35
  DEFAULT_EXCLUDED_ENV_VARS,
36
36
  ENV_CORRUPTED_PATH,
37
37
  ENV_WAS_RECOVERED
38
- } from "./chunk-ALFTV7GA.js";
39
- import "./chunk-3ARO4N5G.js";
40
- import "./chunk-ALGGS7UH.js";
38
+ } from "./chunk-UA5H3DS2.js";
39
+ import "./chunk-HA3SAB64.js";
40
+ import "./chunk-NPQ5ZKRP.js";
41
41
  import "./chunk-MR3PXB6E.js";
42
- import "./chunk-BFSQBXHV.js";
42
+ import "./chunk-GXSNGY5M.js";
43
43
  import "./chunk-GOFAQQZA.js";
44
44
  import "./chunk-5M6IDOMF.js";
45
45
  import "./chunk-TWPJO254.js";
@@ -49,7 +49,7 @@ import "./chunk-MVUQRLOH.js";
49
49
  import "./chunk-XCWO3SMQ.js";
50
50
  import "./chunk-7MH4J33A.js";
51
51
  import "./chunk-6PVPNMXU.js";
52
- import "./chunk-RGTB44BO.js";
52
+ import "./chunk-VXZ5HAOV.js";
53
53
  import "./chunk-IRH27ZC2.js";
54
54
  import "./chunk-QHWCP53L.js";
55
55
  import "./chunk-GNPNYXJB.js";
@@ -62,10 +62,10 @@ import "./chunk-J6SZID63.js";
62
62
  import "./chunk-KRXPRVGL.js";
63
63
  import "./chunk-GM463R2B.js";
64
64
  import "./chunk-SEZ556DZ.js";
65
- import "./chunk-CJXIIILK.js";
66
- import "./chunk-3K7FH2KQ.js";
65
+ import "./chunk-2FRY5CRX.js";
66
+ import "./chunk-67N6HB5H.js";
67
67
  import "./chunk-WAUGQKUU.js";
68
- import "./chunk-REHWPCG2.js";
68
+ import "./chunk-PLFATELK.js";
69
69
  import "./chunk-L4N6TIP7.js";
70
70
  import "./chunk-SAH4BD2J.js";
71
71
  import "./chunk-CPG6P4GG.js";
@@ -75,11 +75,12 @@ import "./chunk-IA7TGCN2.js";
75
75
  import "./chunk-K623ENWT.js";
76
76
  import "./chunk-AQ37AY7B.js";
77
77
  import "./chunk-EQL65XGA.js";
78
- import "./chunk-22NBYCPD.js";
78
+ import "./chunk-3P2LV43B.js";
79
79
  import "./chunk-NAVJD2PQ.js";
80
- import "./chunk-3ULCB3NE.js";
81
- import "./chunk-BGG4MBYD.js";
80
+ import "./chunk-HV76SFIA.js";
81
+ import "./chunk-4PYCZH2V.js";
82
82
  import "./chunk-P3QQPMQA.js";
83
+ import "./chunk-SR7RZ4MS.js";
83
84
  import "./chunk-M6HMMKVG.js";
84
85
  import "./chunk-DGEIYUC3.js";
85
86
  import "./chunk-MPHPFVKK.js";
@@ -87,13 +88,15 @@ import "./chunk-AXMWHKXA.js";
87
88
  import "./chunk-GLCZKT5V.js";
88
89
  import "./chunk-DJ2GSRLV.js";
89
90
  import "./chunk-EI3HZX6C.js";
90
- import "./chunk-XCG76UE6.js";
91
+ import "./chunk-3PY4LPJF.js";
91
92
  import "./chunk-WOJZWRAZ.js";
92
93
  import "./chunk-VGC4I5JJ.js";
93
94
  import "./chunk-FVKHVJZQ.js";
95
+ import "./chunk-COBO5EBO.js";
94
96
  import "./chunk-6ZRFAKXK.js";
95
97
  import "./chunk-PYQADEFD.js";
96
- import "./chunk-P7HUJDBZ.js";
98
+ import "./chunk-M3STHEMM.js";
99
+ import "./chunk-F6WFNA7U.js";
97
100
  import "./chunk-46UV252V.js";
98
101
  import "./chunk-ZBVS26BY.js";
99
102
  import "./chunk-KKBPOU75.js";