@qwen-code/qwen-code 0.19.2 → 0.19.3-nightly.20260630.e00fe6a27

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 (286) hide show
  1. package/bundled/extension-creator/SKILL.md +357 -0
  2. package/bundled/loop/SKILL.md +21 -7
  3. package/bundled/loop/SKILL.test.ts +41 -0
  4. package/bundled/loop/loop-task-file.test.ts +1064 -0
  5. package/bundled/loop/loop-task-file.ts +404 -0
  6. package/bundled/loop/loop-tick-resolver.test.ts +665 -0
  7. package/bundled/loop/loop-tick-resolver.ts +347 -0
  8. package/bundled/qc-helper/SKILL.md +26 -19
  9. package/bundled/qc-helper/docs/configuration/auth.md +11 -11
  10. package/bundled/qc-helper/docs/configuration/model-providers.md +13 -13
  11. package/bundled/qc-helper/docs/configuration/settings.md +76 -75
  12. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
  13. package/bundled/qc-helper/docs/features/commands.md +108 -77
  14. package/bundled/qc-helper/docs/features/hooks.md +6 -1
  15. package/bundled/qc-helper/docs/features/memory.md +52 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +24 -2
  17. package/bundled/qc-helper/docs/support/tos-privacy.md +16 -3
  18. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -0
  19. package/chunks/{MaxSizedBox-7RERNLFK.js → MaxSizedBox-T5X5MN5Q.js} +29 -27
  20. package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-P3E3WTOQ.js} +42 -37
  21. package/chunks/{acpAgent-4MCETHF2.js → acpAgent-QEP6DXFW.js} +864 -175
  22. package/chunks/{agent-K3ENVYSB.js → agent-UDANDUF7.js} +24 -23
  23. package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-KYVSZHSO.js} +24 -23
  24. package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-KWSJAQ7B.js} +33 -12
  25. package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-D2X7G3C3.js} +2 -2
  26. package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-UGETICJQ.js} +2 -2
  27. package/chunks/{bridge-4LV2HBH2.js → bridge-X42LXPTA.js} +31 -30
  28. package/chunks/{ca-7WC7ELX6.js → ca-IUFWESZL.js} +1 -0
  29. package/chunks/{chunk-JXQ23SNT.js → chunk-2JKEQWDZ.js} +623 -78
  30. package/chunks/{chunk-2TJ3YN6Q.js → chunk-2RJA6J57.js} +416 -401
  31. package/chunks/{chunk-3UALQ56H.js → chunk-3227DZO4.js} +1 -1
  32. package/chunks/{chunk-BGUDAULQ.js → chunk-3CPCDXFR.js} +5 -5
  33. package/chunks/{chunk-5RVSM6NW.js → chunk-3HUHAQF3.js} +1 -1
  34. package/chunks/{chunk-D5E5TMYH.js → chunk-3M4W4U5G.js} +16 -2
  35. package/chunks/{chunk-DBZUXSSV.js → chunk-4X7NIEQJ.js} +3 -3
  36. package/chunks/chunk-5GOVVXEV.js +73 -0
  37. package/chunks/{chunk-2BAQ3ACS.js → chunk-5SM4VT6V.js} +405 -5
  38. package/chunks/{chunk-NYOHZYHM.js → chunk-5XQ4A26L.js} +45 -3
  39. package/chunks/{chunk-CI5O6SQL.js → chunk-6FKEVYCD.js} +4 -4
  40. package/chunks/{chunk-ZD3NW5KL.js → chunk-7LM4XHPE.js} +63 -9
  41. package/chunks/chunk-7UNP2XM7.js +840 -0
  42. package/chunks/{chunk-OQHQHJRK.js → chunk-ARYCHZ4B.js} +151 -4775
  43. package/chunks/chunk-BC3C4F3Q.js +40 -0
  44. package/chunks/{chunk-CGEGHF2C.js → chunk-BKXBARJZ.js} +1 -1
  45. package/chunks/chunk-BMFMJINR.js +45 -0
  46. package/chunks/chunk-BOJWHRMX.js +11273 -0
  47. package/chunks/{chunk-CGOMICBE.js → chunk-BSZEQNUA.js} +34 -1
  48. package/chunks/{chunk-OIC6S73E.js → chunk-BUUQ5HPX.js} +1 -1
  49. package/chunks/{chunk-2BIF2NVV.js → chunk-BVSVIN45.js} +2 -2
  50. package/chunks/{chunk-TOEGRAVX.js → chunk-BX5YO7UW.js} +17 -5
  51. package/chunks/{chunk-4W4T77MO.js → chunk-BXVWV4GI.js} +109 -6
  52. package/chunks/{chunk-VQRYPFCV.js → chunk-CYHVPQYT.js} +10 -460
  53. package/chunks/{chunk-PRYMDRBV.js → chunk-DDMOU62Q.js} +1 -1
  54. package/chunks/{chunk-S566HKUS.js → chunk-DHXWNSJA.js} +15 -1
  55. package/chunks/{chunk-F6XNTYNE.js → chunk-E6XQPQXW.js} +30 -307
  56. package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
  57. package/chunks/{chunk-EL5IHQON.js → chunk-EWYQFWYF.js} +6 -27
  58. package/chunks/{chunk-HG6YKEBI.js → chunk-F2DOT6UZ.js} +161 -30
  59. package/chunks/{chunk-JTYRZODB.js → chunk-FOOIZCWL.js} +16 -7
  60. package/chunks/{chunk-EX4W6ZYG.js → chunk-G5G4TFZ7.js} +1 -1
  61. package/chunks/{chunk-EW6C27XX.js → chunk-GEHVIWAT.js} +9 -3
  62. package/chunks/chunk-HEVBZSXG.js +4923 -0
  63. package/chunks/chunk-HFQ2XSE7.js +690 -0
  64. package/chunks/{chunk-PF523XJX.js → chunk-HPGTGMP3.js} +1 -1
  65. package/chunks/{chunk-OTBK43JR.js → chunk-HYCC3XM3.js} +1 -1
  66. package/chunks/{chunk-TMBPDHXD.js → chunk-I4H7PRWQ.js} +1 -1
  67. package/chunks/{chunk-EEEZIVFJ.js → chunk-JOLIREYR.js} +1 -1
  68. package/chunks/{chunk-TZM5JIAX.js → chunk-JYPQTRA3.js} +10 -7
  69. package/chunks/chunk-K5XU6E4T.js +167 -0
  70. package/chunks/{chunk-BS64PXY3.js → chunk-KFVU7ODN.js} +1 -1
  71. package/chunks/{chunk-3RJ3ZPPR.js → chunk-KKQWC6WS.js} +7 -7
  72. package/chunks/{chunk-3QFE4OTE.js → chunk-LBW7NW7X.js} +4 -4
  73. package/chunks/{chunk-Z7XXFPGP.js → chunk-LDWTYE33.js} +1 -1
  74. package/chunks/{chunk-EXMX5YHG.js → chunk-LP5E4YIH.js} +1 -1
  75. package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
  76. package/chunks/{chunk-I5T6PIBQ.js → chunk-MBV2CTRL.js} +1010 -925
  77. package/chunks/{chunk-5JZLXFPD.js → chunk-MTHMXSNT.js} +11 -11
  78. package/chunks/{chunk-FPACXT7T.js → chunk-MTJVHQDP.js} +534 -164
  79. package/chunks/chunk-NDOC6M5S.js +481 -0
  80. package/chunks/{chunk-HGNSRCRB.js → chunk-NL4C3H6C.js} +1 -1
  81. package/chunks/{chunk-GZCJS5WH.js → chunk-O2VBQ3Y2.js} +2 -2
  82. package/chunks/{chunk-UN3C6GOR.js → chunk-PPFWEV7G.js} +10 -108
  83. package/chunks/{chunk-RS4HRC75.js → chunk-QI2CFVRF.js} +85 -8
  84. package/chunks/{chunk-XU5P23GN.js → chunk-QLDPRILK.js} +3 -3
  85. package/chunks/chunk-QYUE6W3T.js +123 -0
  86. package/chunks/{chunk-USGMPVOY.js → chunk-R3LHDWF2.js} +21 -12
  87. package/chunks/{chunk-BNXANYLH.js → chunk-RD6YJJJ6.js} +81 -1
  88. package/chunks/{chunk-PXFFKNCO.js → chunk-RIP623NO.js} +4877 -2469
  89. package/chunks/{chunk-XKBP7M7A.js → chunk-RYBSUGOR.js} +142 -30
  90. package/chunks/{chunk-BG4BIP7F.js → chunk-SBBN4BWR.js} +4 -2
  91. package/chunks/{chunk-T2VDEFUU.js → chunk-SKQZZVAV.js} +2 -2
  92. package/chunks/{chunk-5R4SBCX6.js → chunk-SL5MOGQH.js} +3 -3
  93. package/chunks/chunk-SMXULRAN.js +37 -0
  94. package/chunks/{chunk-WA5OJGFL.js → chunk-SS6WJMQK.js} +363 -76
  95. package/chunks/{chunk-UAARVVBI.js → chunk-TNWFHGN6.js} +1 -1
  96. package/chunks/{chunk-I2RFAW6Q.js → chunk-TT6Q3EN4.js} +7 -5
  97. package/chunks/chunk-UAKXW3DN.js +30 -0
  98. package/chunks/{chunk-C4K3FEQ2.js → chunk-UX4SGCGN.js} +32 -3
  99. package/chunks/{chunk-J6AW7O5D.js → chunk-WHDQZHRU.js} +2 -2
  100. package/chunks/{chunk-WGAEWQTF.js → chunk-WN6K47NR.js} +1 -2
  101. package/chunks/{chunk-UAARJR2G.js → chunk-WQT5SOI6.js} +2 -2
  102. package/chunks/{chunk-VYFMN7C6.js → chunk-WUMVIRTN.js} +225 -37
  103. package/chunks/{chunk-R36VMVEP.js → chunk-XJMKOTVV.js} +5 -5
  104. package/chunks/{chunk-TXVGVZYR.js → chunk-XJYUPHRC.js} +3 -3
  105. package/chunks/{chunk-2JD55C6G.js → chunk-Y6YMRS3U.js} +2 -2
  106. package/chunks/{chunk-LLFFKXZZ.js → chunk-YALKC62D.js} +56 -29
  107. package/chunks/{chunk-GYZQA2FO.js → chunk-YLZJCUH6.js} +1 -1
  108. package/chunks/chunk-YTFBURQD.js +313 -0
  109. package/chunks/{chunk-KBXLIVWQ.js → chunk-ZFPRYHWR.js} +2 -2
  110. package/chunks/{chunk-X6EDWN44.js → chunk-ZP6UKOPB.js} +1 -1
  111. package/chunks/{computer-use-6BBRNT6S.js → computer-use-LF2S6LUZ.js} +103 -49
  112. package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-VPX5UG55.js} +26 -25
  113. package/chunks/{cron-create-4KQE6YLH.js → cron-create-SKEY55RG.js} +4 -4
  114. package/chunks/{cron-delete-THME66UP.js → cron-delete-I3NAT32Z.js} +6 -6
  115. package/chunks/{cron-list-7A54SJ5N.js → cron-list-6XRRL6TH.js} +5 -5
  116. package/chunks/{daemon-status-provider-CSL3BUOY.js → daemon-status-provider-5JAWZS4V.js} +34 -34
  117. package/chunks/{de-ACHALDED.js → de-EOW5PVHF.js} +1 -0
  118. package/chunks/{dist-BD27IA3L.js → dist-4FCNM6KJ.js} +2 -2
  119. package/chunks/{dist-OD2FY543.js → dist-O3H4PABL.js} +2 -2
  120. package/chunks/{dist-BOOH5JWN.js → dist-SCAAUWPS.js} +18 -4
  121. package/chunks/{dist-QHJRBCMP.js → dist-UKPWQJCL.js} +44 -2
  122. package/chunks/{dist-QFFZWACU.js → dist-VD7HXTML.js} +20 -9
  123. package/chunks/{earlyInputCapture-X6KMCSHD.js → earlyInputCapture-7FRQMU4P.js} +25 -24
  124. package/chunks/{edit-7J6WXARF.js → edit-REKJDIRL.js} +68 -27
  125. package/chunks/{en-NCUBOJOY.js → en-HPWEJBTR.js} +8 -0
  126. package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-GBKUDCD3.js} +24 -23
  127. package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-WB3Y4FGT.js} +24 -23
  128. package/chunks/{errors-6G2JYR54.js → errors-2XJDYO3M.js} +26 -25
  129. package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-KKC7O2ZV.js} +24 -23
  130. package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-7HMS3TF7.js} +24 -23
  131. package/chunks/{fast-path-35JJFS3C.js → fast-path-XVNIYWGG.js} +4 -4
  132. package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-UQLRFDQP.js} +3 -2
  133. package/chunks/{fr-GVKZ27MF.js → fr-BN5NKSAC.js} +1 -0
  134. package/chunks/{gemini-NDTG7WAX.js → gemini-U5TPU3IQ.js} +210 -104
  135. package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-ZVWRHXOO.js} +4 -4
  136. package/chunks/{glob-SJ2JBZK4.js → glob-FEJWIH2W.js} +24 -23
  137. package/chunks/{grep-BRMWFEWR.js → grep-KMP25IIA.js} +24 -23
  138. package/chunks/{headlessSafetyWarnings-LJ6FJX77.js → headlessSafetyWarnings-5DEDET4M.js} +24 -23
  139. package/chunks/{initializer-P5AXF7PV.js → initializer-FJTACLOH.js} +31 -28
  140. package/chunks/{ja-FKZ2WZ4D.js → ja-7DEUB2TS.js} +1 -0
  141. package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-YLMDLKXT.js} +2 -2
  142. package/chunks/{list-6COK34BP.js → list-SCQXYJUW.js} +32 -29
  143. package/chunks/{loadedSettingsAdapter-XIUTN245.js → loadedSettingsAdapter-P6KPNAG7.js} +30 -27
  144. package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-FYEQEJUA.js} +7 -7
  145. package/chunks/{ls-BYQY7RVV.js → ls-R5WP4BGZ.js} +4 -4
  146. package/chunks/{lsp-X54RO4IV.js → lsp-GSICJMMW.js} +2 -2
  147. package/chunks/{monitor-DH7KFSJV.js → monitor-JU3HHHVY.js} +24 -23
  148. package/chunks/nonInteractiveCli-IZEKUHU3.js +100 -0
  149. package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-YHY3Z2QQ.js} +52 -23
  150. package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-4WUVA3Q2.js} +13 -12
  151. package/chunks/{pt-SY5NCFGR.js → pt-TNZRNLQB.js} +1 -0
  152. package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-MVYYR44B.js} +26 -25
  153. package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-6HNGHALT.js} +5 -4
  154. package/chunks/{read-file-767G23OY.js → read-file-NABEO2X4.js} +8 -8
  155. package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-DQQW7H7T.js} +2 -2
  156. package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-YXLK6UTX.js} +24 -23
  157. package/chunks/{ru-FWNXJG4F.js → ru-NIAUBKCN.js} +1 -0
  158. package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-4B5QBMLQ.js} +144 -41
  159. package/chunks/{scheduler-UNTFDQLG.js → scheduler-XAKIYBDL.js} +24 -23
  160. package/chunks/{send-message-2DAFXEYP.js → send-message-EE4TWKVU.js} +2 -2
  161. package/chunks/{serve-KZ56QB5S.js → serve-4RXVLUKD.js} +30 -28
  162. package/chunks/{server-BV5TZUMU.js → server-7PA5QGIA.js} +11037 -8747
  163. package/chunks/{session-OIBXFSGD.js → session-WNVWRYAH.js} +194 -57
  164. package/chunks/{settings-WJTCBIRA.js → settings-YJH32TFF.js} +30 -27
  165. package/chunks/{shell-WC52IBHW.js → shell-YFLABOS5.js} +24 -23
  166. package/chunks/{skill-U7F7JR4M.js → skill-N3J7FUAY.js} +38 -11
  167. package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-D6WVMFZJ.js} +26 -25
  168. package/chunks/{src-4F6FBZFI.js → src-IU5GDBEH.js} +88 -28
  169. package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-QIPQTRT4.js} +2784 -2474
  170. package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-T5YHQ6S2.js} +3 -3
  171. package/chunks/{task-create-OUYCA553.js → task-create-BLY7RHXX.js} +6 -6
  172. package/chunks/{task-list-WAX7I2IA.js → task-list-3QUYNVYR.js} +5 -5
  173. package/chunks/{task-stop-CAIL6FNH.js → task-stop-U4RATK2V.js} +2 -2
  174. package/chunks/{task-update-AHEO5OUT.js → task-update-U54O7KJX.js} +6 -6
  175. package/chunks/{team-create-3WC7CIIW.js → team-create-TP4CLLM3.js} +24 -23
  176. package/chunks/{team-delete-HGHFG23B.js → team-delete-LKBYPASD.js} +5 -5
  177. package/chunks/{theme-manager-DICFCT3P.js → theme-manager-N2TBIBZT.js} +25 -24
  178. package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-OYXKTVYN.js} +4 -4
  179. package/chunks/{tool-search-L5K7HLER.js → tool-search-GBBSICYB.js} +101 -16
  180. package/chunks/trustedFolders-F7TBU5CD.js +76 -0
  181. package/chunks/types-QX5C3CHJ.js +12 -0
  182. package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-EQDQPSMI.js} +55 -50
  183. package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-PCVCML2X.js} +29 -15
  184. package/chunks/{workflow-OB3AND7I.js → workflow-ANJ4FYBK.js} +32 -30
  185. package/chunks/{workspace-providers-status-ZIR5EPOO.js → workspace-providers-status-462QQKQM.js} +32 -29
  186. package/chunks/workspace-service-VTG4G6CW.js +75 -0
  187. package/chunks/{write-file-SEXBNDZM.js → write-file-3P3WMQQW.js} +63 -27
  188. package/chunks/{zh-RBEGQVQT.js → zh-5EUYXASN.js} +8 -0
  189. package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-TR3XYGE5.js} +8 -0
  190. package/cli-entry.js +20 -9
  191. package/cli.js +6 -6
  192. package/locales/ca.js +2 -0
  193. package/locales/de.js +2 -0
  194. package/locales/en.js +14 -0
  195. package/locales/fr.js +2 -0
  196. package/locales/ja.js +1 -0
  197. package/locales/pt.js +2 -0
  198. package/locales/ru.js +2 -0
  199. package/locales/zh-TW.js +12 -0
  200. package/locales/zh.js +12 -0
  201. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +35 -0
  202. package/node_modules/@qwen-code/audio-capture/dist/index.js +48 -0
  203. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +1 -0
  204. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +7 -0
  205. package/node_modules/@qwen-code/audio-capture/dist/platform.js +18 -0
  206. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +1 -0
  207. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +21 -0
  208. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +58 -0
  209. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +5 -0
  210. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +84 -0
  211. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +19 -0
  212. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +6 -0
  213. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  214. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +7 -0
  215. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +43 -0
  216. package/node_modules/@qwen-code/audio-capture/package.json +30 -0
  217. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  218. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  219. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  220. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  221. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  222. package/package.json +18 -6
  223. package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
  224. package/postinstall.js +50 -0
  225. package/web-shell/assets/{arc-D_ae_Y9k.js → arc-DIemsO_F.js} +1 -1
  226. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-CTlUvIQv.js} +1 -1
  227. package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-DG0jmIZK.js} +1 -1
  228. package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-WljDBi55.js} +1 -1
  229. package/web-shell/assets/channel-CbzRbdpA.js +1 -0
  230. package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-8nc6onr2.js} +1 -1
  231. package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-EopXix8Z.js} +1 -1
  232. package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-BE4Jz3N3.js} +1 -1
  233. package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-C_eErgDN.js} +1 -1
  234. package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-DFtVW-Is.js} +1 -1
  235. package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-CJPyxIg9.js} +1 -1
  236. package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-Bk-xgj6M.js} +1 -1
  237. package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-p3Y4yaFB.js} +1 -1
  238. package/web-shell/assets/classDiagram-4FO5ZUOK-BFdyQ52h.js +1 -0
  239. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BFdyQ52h.js +1 -0
  240. package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-BCMO6Js3.js} +1 -1
  241. package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-DUMrwASf.js} +1 -1
  242. package/web-shell/assets/default-aEtf0G7-.svg +1 -0
  243. package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-C5d7qJbL.js} +1 -1
  244. package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-CjLzMhbT.js} +1 -1
  245. package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-RCoNWeAm.js} +1 -1
  246. package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-KThXjaNV.js} +1 -1
  247. package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-DKsC2BWz.js} +1 -1
  248. package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-DJ2ukmq0.js} +1 -1
  249. package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-zzqaARRX.js} +1 -1
  250. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-kFUg-gqT.js} +1 -1
  251. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-C6JnMVzD.js} +1 -1
  252. package/web-shell/assets/index-B3XUm7dw.js +713 -0
  253. package/web-shell/assets/index-CHmzAWys.css +5 -0
  254. package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-XqPVhp89.js} +1 -1
  255. package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
  256. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D2k8sGpf.js} +1 -1
  257. package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-CQEST1GE.js} +1 -1
  258. package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-DZ7kqVBC.js} +1 -1
  259. package/web-shell/assets/{linear-DGGM2kcP.js → linear-B6C_6q_E.js} +1 -1
  260. package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-CsyNP1qt.js} +5 -5
  261. package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-B1VDIzJq.js} +1 -1
  262. package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-DN0E7Jwu.js} +1 -1
  263. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-UKTQdHKm.js} +1 -1
  264. package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
  265. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-BRGceQvN.js} +1 -1
  266. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-2DDyu41v.js} +1 -1
  267. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-CT5iE8ZU.js} +1 -1
  268. package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-CqMQ_s4G.js} +1 -1
  269. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CamhV5pM.js +1 -0
  270. package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-Di37QSZU.js} +1 -1
  271. package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-DCXvpz5S.js} +1 -1
  272. package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-CpUCk6OX.js} +1 -1
  273. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-D01pVEBg.js} +1 -1
  274. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-DOu5JDoz.js} +1 -1
  275. package/web-shell/index.html +2 -2
  276. package/chunks/chunk-B6HQGTYR.js +0 -410
  277. package/chunks/chunk-R2BXK7SX.js +0 -13
  278. package/chunks/chunk-RKIZXJMB.js +0 -13
  279. package/chunks/nonInteractiveCli-7575LBXP.js +0 -91
  280. package/chunks/workspace-service-OM5D4OI2.js +0 -60
  281. package/web-shell/assets/channel-DYPNiTww.js +0 -1
  282. package/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js +0 -1
  283. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js +0 -1
  284. package/web-shell/assets/index-CpOXWDPh.js +0 -714
  285. package/web-shell/assets/index-oVK7qhre.css +0 -5
  286. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js +0 -1
@@ -2,94 +2,103 @@
2
2
  "use strict";
3
3
  import {
4
4
  runNonInteractive
5
- } from "./chunk-HG6YKEBI.js";
6
- import "./chunk-B6HQGTYR.js";
7
- import "./chunk-EX4W6ZYG.js";
5
+ } from "./chunk-F2DOT6UZ.js";
6
+ import "./chunk-7UNP2XM7.js";
7
+ import "./chunk-G5G4TFZ7.js";
8
8
  import {
9
9
  StreamJsonOutputAdapter
10
- } from "./chunk-J6AW7O5D.js";
10
+ } from "./chunk-WHDQZHRU.js";
11
11
  import {
12
12
  getAvailableCommands
13
- } from "./chunk-2TJ3YN6Q.js";
14
- import "./chunk-ZUAXI2OA.js";
15
- import "./chunk-JTYRZODB.js";
16
- import "./chunk-MRO43B25.js";
17
- import "./chunk-UAARJR2G.js";
18
- import "./chunk-JZSY4WP3.js";
19
- import "./chunk-TZM5JIAX.js";
13
+ } from "./chunk-2RJA6J57.js";
14
+ import "./chunk-BOJWHRMX.js";
15
+ import "./chunk-JYPQTRA3.js";
16
+ import "./chunk-5GOVVXEV.js";
17
+ import "./chunk-FOOIZCWL.js";
20
18
  import "./chunk-KSPVDFE4.js";
19
+ import "./chunk-MRO43B25.js";
20
+ import "./chunk-SMXULRAN.js";
21
+ import "./chunk-WQT5SOI6.js";
21
22
  import "./chunk-KYMBIKIW.js";
22
- import "./chunk-I2RFAW6Q.js";
23
+ import "./chunk-I4H7PRWQ.js";
24
+ import "./chunk-JZSY4WP3.js";
25
+ import "./chunk-4X7NIEQJ.js";
26
+ import "./chunk-TT6Q3EN4.js";
23
27
  import "./chunk-3GONHQOA.js";
24
- import "./chunk-5R4SBCX6.js";
25
- import "./chunk-Z7XXFPGP.js";
26
- import "./chunk-JXQ23SNT.js";
27
- import "./chunk-TMBPDHXD.js";
28
- import "./chunk-NYOHZYHM.js";
29
- import "./chunk-CGOMICBE.js";
30
- import "./chunk-CI5O6SQL.js";
28
+ import "./chunk-SL5MOGQH.js";
29
+ import "./chunk-LDWTYE33.js";
30
+ import "./chunk-2JKEQWDZ.js";
31
+ import "./chunk-NDOC6M5S.js";
32
+ import "./chunk-M2U5NM24.js";
33
+ import "./chunk-BSZEQNUA.js";
34
+ import "./chunk-6FKEVYCD.js";
31
35
  import "./chunk-KHDZHZMH.js";
32
- import "./chunk-RS4HRC75.js";
33
- import "./chunk-BS64PXY3.js";
34
- import "./chunk-DBZUXSSV.js";
35
- import "./chunk-R2BXK7SX.js";
36
36
  import "./chunk-ALX6BUYW.js";
37
+ import "./chunk-UFC57OYT.js";
38
+ import "./chunk-QI2CFVRF.js";
39
+ import "./chunk-5XQ4A26L.js";
40
+ import "./chunk-BC3C4F3Q.js";
41
+ import "./chunk-KFVU7ODN.js";
37
42
  import "./chunk-5DWXLGOM.js";
38
43
  import {
39
44
  createMinimalSettings
40
- } from "./chunk-OQHQHJRK.js";
41
- import "./chunk-5JZLXFPD.js";
45
+ } from "./chunk-HEVBZSXG.js";
46
+ import "./chunk-MTHMXSNT.js";
42
47
  import "./chunk-TLRYABYP.js";
48
+ import "./chunk-PPFWEV7G.js";
49
+ import "./chunk-ARYCHZ4B.js";
43
50
  import "./chunk-Y6Z2O3WR.js";
44
- import "./chunk-UFC57OYT.js";
45
- import "./chunk-UN3C6GOR.js";
51
+ import "./chunk-QYUE6W3T.js";
46
52
  import {
47
- MCPServerConfig
48
- } from "./chunk-PXFFKNCO.js";
53
+ MCPServerConfig,
54
+ TURN_INTERRUPTION_HISTORY_TAIL_COUNT,
55
+ detectTurnInterruption
56
+ } from "./chunk-RIP623NO.js";
49
57
  import "./chunk-K5PGHDBN.js";
50
58
  import "./chunk-5P5XGNYH.js";
51
59
  import "./chunk-SKAZWEV5.js";
52
- import "./chunk-TXVGVZYR.js";
53
- import "./chunk-XU5P23GN.js";
54
- import "./chunk-2BIF2NVV.js";
55
- import "./chunk-BG4BIP7F.js";
56
- import "./chunk-ZD3NW5KL.js";
60
+ import "./chunk-XJYUPHRC.js";
61
+ import "./chunk-QLDPRILK.js";
62
+ import "./chunk-BVSVIN45.js";
63
+ import "./chunk-SBBN4BWR.js";
64
+ import "./chunk-7LM4XHPE.js";
57
65
  import "./chunk-2MPVVENX.js";
58
66
  import "./chunk-ZTQ26VBE.js";
59
- import "./chunk-GZCJS5WH.js";
67
+ import "./chunk-O2VBQ3Y2.js";
60
68
  import "./chunk-MLZQVCF3.js";
61
69
  import "./chunk-LQ7TMOCE.js";
62
70
  import "./chunk-LD2XBG6Z.js";
63
- import "./chunk-OTBK43JR.js";
64
- import "./chunk-HGNSRCRB.js";
65
- import "./chunk-EEEZIVFJ.js";
66
- import "./chunk-PRYMDRBV.js";
67
- import "./chunk-WA5OJGFL.js";
71
+ import "./chunk-HYCC3XM3.js";
72
+ import "./chunk-NL4C3H6C.js";
73
+ import "./chunk-JOLIREYR.js";
74
+ import "./chunk-DDMOU62Q.js";
75
+ import "./chunk-SS6WJMQK.js";
68
76
  import "./chunk-3PJXIDKI.js";
69
77
  import "./chunk-UWCTAVOD.js";
70
78
  import "./chunk-OFEVLU4C.js";
71
79
  import "./chunk-OMX7CUOE.js";
72
- import "./chunk-BNXANYLH.js";
73
- import "./chunk-T2VDEFUU.js";
74
- import "./chunk-OIC6S73E.js";
75
- import "./chunk-TOEGRAVX.js";
76
- import "./chunk-BGUDAULQ.js";
77
- import "./chunk-EW6C27XX.js";
80
+ import "./chunk-RD6YJJJ6.js";
81
+ import "./chunk-SKQZZVAV.js";
82
+ import "./chunk-BUUQ5HPX.js";
83
+ import "./chunk-BX5YO7UW.js";
84
+ import "./chunk-3CPCDXFR.js";
85
+ import "./chunk-GEHVIWAT.js";
78
86
  import "./chunk-22IFUCVR.js";
79
- import "./chunk-64WXLC72.js";
80
- import "./chunk-3UALQ56H.js";
81
- import "./chunk-F6XNTYNE.js";
82
- import "./chunk-CGEGHF2C.js";
87
+ import "./chunk-3227DZO4.js";
88
+ import "./chunk-YTFBURQD.js";
89
+ import "./chunk-BKXBARJZ.js";
83
90
  import "./chunk-IRJWHZWU.js";
84
91
  import "./chunk-SYCJMSIJ.js";
85
92
  import "./chunk-55ZMG67I.js";
86
93
  import "./chunk-H6BD2ELD.js";
87
94
  import "./chunk-5IFG2VC4.js";
95
+ import "./chunk-64WXLC72.js";
96
+ import "./chunk-E6XQPQXW.js";
88
97
  import {
89
98
  createDebugLogger
90
- } from "./chunk-C4K3FEQ2.js";
91
- import "./chunk-PF523XJX.js";
92
- import "./chunk-GYZQA2FO.js";
99
+ } from "./chunk-UX4SGCGN.js";
100
+ import "./chunk-HPGTGMP3.js";
101
+ import "./chunk-YLZJCUH6.js";
93
102
  import {
94
103
  finalizeStartupProfile,
95
104
  profileCheckpoint
@@ -184,6 +193,7 @@ var ControlContext = class {
184
193
  mcpClients;
185
194
  inputClosed;
186
195
  onInterrupt;
196
+ onContinueLastTurn;
187
197
  constructor(options) {
188
198
  this.config = options.config;
189
199
  this.streamJson = options.streamJson;
@@ -196,6 +206,7 @@ var ControlContext = class {
196
206
  this.mcpClients = /* @__PURE__ */ new Map();
197
207
  this.inputClosed = false;
198
208
  this.onInterrupt = options.onInterrupt;
209
+ this.onContinueLastTurn = options.onContinueLastTurn;
199
210
  }
200
211
  };
201
212
 
@@ -354,6 +365,8 @@ var SystemController = class extends BaseController {
354
365
  );
355
366
  case "interrupt":
356
367
  return this.handleInterrupt();
368
+ case "continue_last_turn":
369
+ return this.handleContinueLastTurn();
357
370
  case "set_model":
358
371
  return this.handleSetModel(
359
372
  payload,
@@ -375,7 +388,7 @@ var SystemController = class extends BaseController {
375
388
  throw new Error("Request aborted");
376
389
  }
377
390
  try {
378
- const mod = await import("./contextCommand-UJAJ6N57.js");
391
+ const mod = await import("./contextCommand-VPX5UG55.js");
379
392
  if (signal.aborted) {
380
393
  throw new Error("Request aborted");
381
394
  }
@@ -630,6 +643,24 @@ var SystemController = class extends BaseController {
630
643
  debugLogger.debug("[SystemController] Interrupt handled");
631
644
  return { subtype: "interrupt" };
632
645
  }
646
+ /**
647
+ * Handle continue_last_turn request
648
+ *
649
+ * Delegates to the session-provided callback, which classifies the last
650
+ * turn from chat history and (when interrupted) schedules a continuation
651
+ * turn. The response reports `{ accepted, interruption }`; the resumed
652
+ * turn's output flows as regular stream messages afterwards.
653
+ */
654
+ async handleContinueLastTurn() {
655
+ if (!this.context.onContinueLastTurn) {
656
+ throw new Error(
657
+ "continue_last_turn callback (onContinueLastTurn) was not registered on ControlContext \u2014 check session wiring"
658
+ );
659
+ }
660
+ const result = await this.context.onContinueLastTurn();
661
+ debugLogger.debug("[SystemController] continue_last_turn handled:", result);
662
+ return { subtype: "continue_last_turn", ...result };
663
+ }
633
664
  /**
634
665
  * Handle set_model request
635
666
  *
@@ -1464,6 +1495,7 @@ var ControlDispatcher = class {
1464
1495
  switch (subtype) {
1465
1496
  case "initialize":
1466
1497
  case "interrupt":
1498
+ case "continue_last_turn":
1467
1499
  case "set_model":
1468
1500
  case "supported_commands":
1469
1501
  case "get_context_usage":
@@ -1686,6 +1718,8 @@ var Session = class {
1686
1718
  userMessageQueue = [];
1687
1719
  monitorStartedQueue = [];
1688
1720
  monitorQueue = [];
1721
+ pendingContinueTurn = false;
1722
+ continueTurnInProgress = false;
1689
1723
  abortController;
1690
1724
  config;
1691
1725
  sessionId;
@@ -1853,7 +1887,8 @@ var Session = class {
1853
1887
  abortSignal: this.abortController.signal,
1854
1888
  settings: this.settings,
1855
1889
  permissionMode: this.config.getApprovalMode(),
1856
- onInterrupt: /* @__PURE__ */ __name(() => this.handleInterrupt(), "onInterrupt")
1890
+ onInterrupt: /* @__PURE__ */ __name(() => this.handleInterrupt(), "onInterrupt"),
1891
+ onContinueLastTurn: /* @__PURE__ */ __name(() => this.requestContinueLastTurn(), "onContinueLastTurn")
1857
1892
  });
1858
1893
  this.dispatcher = new ControlDispatcher(this.controlContext);
1859
1894
  this.controlService = new ControlService(
@@ -1986,6 +2021,92 @@ var Session = class {
1986
2021
  debugLogger3.error("[Session] Query execution error:", error);
1987
2022
  }
1988
2023
  }
2024
+ /**
2025
+ * Handle a continue_last_turn control request: classify the last turn
2026
+ * from chat history and, when it was interrupted, schedule a
2027
+ * continuation turn on the work queue. Returns the control reply
2028
+ * payload; the continuation itself runs serialized with user messages.
2029
+ */
2030
+ async requestContinueLastTurn() {
2031
+ await this.waitForInitialization();
2032
+ if (this.isShuttingDown || this.abortController.signal.aborted) {
2033
+ debugLogger3.debug(
2034
+ "[Session] continue_last_turn rejected: session is shutting down"
2035
+ );
2036
+ return { accepted: false, interruption: "none" };
2037
+ }
2038
+ const geminiClient = this.config.getGeminiClient();
2039
+ if (!geminiClient || !geminiClient.isInitialized()) {
2040
+ debugLogger3.debug(
2041
+ "[Session] continue_last_turn rejected: gemini client is not ready"
2042
+ );
2043
+ return { accepted: false, interruption: "none" };
2044
+ }
2045
+ const chat = geminiClient.getChat();
2046
+ const historyTail = chat.getHistoryTailShallow?.(TURN_INTERRUPTION_HISTORY_TAIL_COUNT) ?? chat.getHistoryTail(TURN_INTERRUPTION_HISTORY_TAIL_COUNT);
2047
+ const detection = detectTurnInterruption(historyTail);
2048
+ debugLogger3.info("[Session] requestContinueLastTurn detection", {
2049
+ sessionId: this.sessionId,
2050
+ kind: detection.kind
2051
+ });
2052
+ if (detection.kind === "none") {
2053
+ debugLogger3.debug(
2054
+ "[Session] continue_last_turn rejected: no interrupted turn"
2055
+ );
2056
+ return { accepted: false, interruption: "none" };
2057
+ }
2058
+ if (this.pendingContinueTurn || this.continueTurnInProgress) {
2059
+ debugLogger3.debug(
2060
+ "[Session] continue_last_turn rejected: continuation already pending",
2061
+ { kind: detection.kind }
2062
+ );
2063
+ return { accepted: false, interruption: detection.kind };
2064
+ }
2065
+ this.pendingContinueTurn = true;
2066
+ this.ensureProcessingStarted();
2067
+ debugLogger3.info("[Session] continue_last_turn accepted", {
2068
+ sessionId: this.sessionId,
2069
+ kind: detection.kind
2070
+ });
2071
+ return { accepted: true, interruption: detection.kind };
2072
+ }
2073
+ /**
2074
+ * Run a scheduled continuation turn. The authoritative interruption
2075
+ * re-detection happens inside runNonInteractive (history may have moved
2076
+ * since the request was accepted); a turn that became clean by then is
2077
+ * a no-op result message.
2078
+ */
2079
+ async processContinueTurn() {
2080
+ this.continueTurnInProgress = true;
2081
+ let resultAlreadyEmitted = false;
2082
+ try {
2083
+ await this.waitForInitialization();
2084
+ const promptId = this.getNextPromptId();
2085
+ await runNonInteractive(this.config, this.settings, "", promptId, {
2086
+ abortController: this.abortController,
2087
+ adapter: this.outputAdapter,
2088
+ controlService: this.controlService ?? void 0,
2089
+ continueInterrupted: true,
2090
+ captureMonitorNotifications: false,
2091
+ captureMonitorRegistrations: false,
2092
+ onResultEmitted: /* @__PURE__ */ __name(() => {
2093
+ resultAlreadyEmitted = true;
2094
+ }, "onResultEmitted")
2095
+ });
2096
+ } catch (error) {
2097
+ debugLogger3.error("[Session] Continue turn execution error:", error);
2098
+ const message = error instanceof Error ? error.message : String(error);
2099
+ if (resultAlreadyEmitted) {
2100
+ this.outputAdapter.emitSystemMessage("continue_turn_failed", {
2101
+ error: message
2102
+ });
2103
+ return;
2104
+ }
2105
+ throw new Error(`Continue turn failed: ${message}`, { cause: error });
2106
+ } finally {
2107
+ this.continueTurnInProgress = false;
2108
+ }
2109
+ }
1989
2110
  async processMonitorNotificationBatch(batch) {
1990
2111
  await this.waitForInitialization();
1991
2112
  for (const item of batch) {
@@ -2018,7 +2139,17 @@ var Session = class {
2018
2139
  if (this.isShuttingDown || this.abortController.signal.aborted) {
2019
2140
  return;
2020
2141
  }
2021
- while ((this.userMessageQueue.length > 0 || this.monitorStartedQueue.length > 0 || this.monitorQueue.length > 0) && !this.isShuttingDown && !this.abortController.signal.aborted) {
2142
+ while ((this.pendingContinueTurn || this.userMessageQueue.length > 0 || this.monitorStartedQueue.length > 0 || this.monitorQueue.length > 0) && !this.isShuttingDown && !this.abortController.signal.aborted) {
2143
+ if (this.pendingContinueTurn) {
2144
+ this.pendingContinueTurn = false;
2145
+ try {
2146
+ await this.processContinueTurn();
2147
+ } catch (error) {
2148
+ debugLogger3.error("[Session] Error processing continue turn:", error);
2149
+ this.emitErrorResult(error);
2150
+ }
2151
+ continue;
2152
+ }
2022
2153
  if (this.userMessageQueue.length > 0) {
2023
2154
  const userMessage = this.userMessageQueue.shift();
2024
2155
  try {
@@ -2067,7 +2198,7 @@ var Session = class {
2067
2198
  }
2068
2199
  this.processingPromise = this.processPendingWork().finally(() => {
2069
2200
  this.processingPromise = null;
2070
- if ((this.userMessageQueue.length > 0 || this.monitorStartedQueue.length > 0 || this.monitorQueue.length > 0) && !this.isShuttingDown && !this.abortController.signal.aborted) {
2201
+ if ((this.pendingContinueTurn || this.userMessageQueue.length > 0 || this.monitorStartedQueue.length > 0 || this.monitorQueue.length > 0) && !this.isShuttingDown && !this.abortController.signal.aborted) {
2071
2202
  this.ensureProcessingStarted();
2072
2203
  }
2073
2204
  });
@@ -2125,6 +2256,12 @@ var Session = class {
2125
2256
  debugLogger3.error("[Session] Error in user message processing:", error);
2126
2257
  }
2127
2258
  }
2259
+ if (this.pendingContinueTurn) {
2260
+ this.pendingContinueTurn = false;
2261
+ this.emitErrorResult(
2262
+ new Error("Continuation abandoned: session shut down before it ran")
2263
+ );
2264
+ }
2128
2265
  }
2129
2266
  async shutdown() {
2130
2267
  debugLogger3.debug("[Session] Shutting down");
@@ -21,58 +21,61 @@ import {
21
21
  resetHomeEnvBootstrapForTesting,
22
22
  saveSettings,
23
23
  setUpCloudShellEnvironment
24
- } from "./chunk-OQHQHJRK.js";
25
- import "./chunk-5JZLXFPD.js";
24
+ } from "./chunk-HEVBZSXG.js";
25
+ import "./chunk-MTHMXSNT.js";
26
26
  import "./chunk-TLRYABYP.js";
27
- import "./chunk-Y6Z2O3WR.js";
28
27
  import {
29
28
  DEFAULT_EXCLUDED_ENV_VARS,
30
29
  ENV_CORRUPTED_PATH,
31
30
  ENV_WAS_RECOVERED,
32
31
  getSystemDefaultsPath,
33
32
  getSystemSettingsPath
34
- } from "./chunk-UN3C6GOR.js";
35
- import "./chunk-PXFFKNCO.js";
33
+ } from "./chunk-PPFWEV7G.js";
34
+ import "./chunk-ARYCHZ4B.js";
35
+ import "./chunk-Y6Z2O3WR.js";
36
+ import "./chunk-QYUE6W3T.js";
37
+ import "./chunk-RIP623NO.js";
36
38
  import "./chunk-K5PGHDBN.js";
37
39
  import "./chunk-5P5XGNYH.js";
38
40
  import "./chunk-SKAZWEV5.js";
39
- import "./chunk-TXVGVZYR.js";
40
- import "./chunk-XU5P23GN.js";
41
- import "./chunk-2BIF2NVV.js";
42
- import "./chunk-BG4BIP7F.js";
43
- import "./chunk-ZD3NW5KL.js";
41
+ import "./chunk-XJYUPHRC.js";
42
+ import "./chunk-QLDPRILK.js";
43
+ import "./chunk-BVSVIN45.js";
44
+ import "./chunk-SBBN4BWR.js";
45
+ import "./chunk-7LM4XHPE.js";
44
46
  import "./chunk-2MPVVENX.js";
45
47
  import "./chunk-ZTQ26VBE.js";
46
- import "./chunk-GZCJS5WH.js";
48
+ import "./chunk-O2VBQ3Y2.js";
47
49
  import "./chunk-MLZQVCF3.js";
48
50
  import "./chunk-LQ7TMOCE.js";
49
51
  import "./chunk-LD2XBG6Z.js";
50
- import "./chunk-OTBK43JR.js";
51
- import "./chunk-HGNSRCRB.js";
52
- import "./chunk-EEEZIVFJ.js";
53
- import "./chunk-PRYMDRBV.js";
54
- import "./chunk-WA5OJGFL.js";
52
+ import "./chunk-HYCC3XM3.js";
53
+ import "./chunk-NL4C3H6C.js";
54
+ import "./chunk-JOLIREYR.js";
55
+ import "./chunk-DDMOU62Q.js";
56
+ import "./chunk-SS6WJMQK.js";
55
57
  import "./chunk-3PJXIDKI.js";
56
58
  import "./chunk-UWCTAVOD.js";
57
59
  import "./chunk-OFEVLU4C.js";
58
60
  import "./chunk-OMX7CUOE.js";
59
- import "./chunk-BNXANYLH.js";
60
- import "./chunk-T2VDEFUU.js";
61
- import "./chunk-OIC6S73E.js";
62
- import "./chunk-TOEGRAVX.js";
63
- import "./chunk-BGUDAULQ.js";
64
- import "./chunk-EW6C27XX.js";
61
+ import "./chunk-RD6YJJJ6.js";
62
+ import "./chunk-SKQZZVAV.js";
63
+ import "./chunk-BUUQ5HPX.js";
64
+ import "./chunk-BX5YO7UW.js";
65
+ import "./chunk-3CPCDXFR.js";
66
+ import "./chunk-GEHVIWAT.js";
65
67
  import "./chunk-22IFUCVR.js";
66
- import "./chunk-64WXLC72.js";
67
- import "./chunk-3UALQ56H.js";
68
- import "./chunk-F6XNTYNE.js";
69
- import "./chunk-CGEGHF2C.js";
68
+ import "./chunk-3227DZO4.js";
69
+ import "./chunk-YTFBURQD.js";
70
+ import "./chunk-BKXBARJZ.js";
70
71
  import "./chunk-IRJWHZWU.js";
71
72
  import "./chunk-SYCJMSIJ.js";
72
73
  import "./chunk-55ZMG67I.js";
73
74
  import "./chunk-H6BD2ELD.js";
74
75
  import "./chunk-5IFG2VC4.js";
75
- import "./chunk-C4K3FEQ2.js";
76
+ import "./chunk-64WXLC72.js";
77
+ import "./chunk-E6XQPQXW.js";
78
+ import "./chunk-UX4SGCGN.js";
76
79
  import "./chunk-ZERZSAZL.js";
77
80
  import "./chunk-QN5NZ3UQ.js";
78
81
  import "./chunk-BR4QREVK.js";
@@ -7,47 +7,48 @@ import {
7
7
  buildLongRunningForegroundHint,
8
8
  detectBlockedSleepPattern,
9
9
  parseNumstat
10
- } from "./chunk-PXFFKNCO.js";
10
+ } from "./chunk-RIP623NO.js";
11
11
  import "./chunk-K5PGHDBN.js";
12
12
  import "./chunk-5P5XGNYH.js";
13
13
  import "./chunk-SKAZWEV5.js";
14
- import "./chunk-TXVGVZYR.js";
15
- import "./chunk-XU5P23GN.js";
16
- import "./chunk-2BIF2NVV.js";
17
- import "./chunk-BG4BIP7F.js";
18
- import "./chunk-ZD3NW5KL.js";
14
+ import "./chunk-XJYUPHRC.js";
15
+ import "./chunk-QLDPRILK.js";
16
+ import "./chunk-BVSVIN45.js";
17
+ import "./chunk-SBBN4BWR.js";
18
+ import "./chunk-7LM4XHPE.js";
19
19
  import "./chunk-2MPVVENX.js";
20
20
  import "./chunk-ZTQ26VBE.js";
21
- import "./chunk-GZCJS5WH.js";
21
+ import "./chunk-O2VBQ3Y2.js";
22
22
  import "./chunk-MLZQVCF3.js";
23
23
  import "./chunk-LQ7TMOCE.js";
24
24
  import "./chunk-LD2XBG6Z.js";
25
- import "./chunk-OTBK43JR.js";
26
- import "./chunk-HGNSRCRB.js";
27
- import "./chunk-EEEZIVFJ.js";
28
- import "./chunk-PRYMDRBV.js";
29
- import "./chunk-WA5OJGFL.js";
25
+ import "./chunk-HYCC3XM3.js";
26
+ import "./chunk-NL4C3H6C.js";
27
+ import "./chunk-JOLIREYR.js";
28
+ import "./chunk-DDMOU62Q.js";
29
+ import "./chunk-SS6WJMQK.js";
30
30
  import "./chunk-3PJXIDKI.js";
31
31
  import "./chunk-UWCTAVOD.js";
32
32
  import "./chunk-OFEVLU4C.js";
33
33
  import "./chunk-OMX7CUOE.js";
34
- import "./chunk-BNXANYLH.js";
35
- import "./chunk-T2VDEFUU.js";
36
- import "./chunk-OIC6S73E.js";
37
- import "./chunk-TOEGRAVX.js";
38
- import "./chunk-BGUDAULQ.js";
39
- import "./chunk-EW6C27XX.js";
34
+ import "./chunk-RD6YJJJ6.js";
35
+ import "./chunk-SKQZZVAV.js";
36
+ import "./chunk-BUUQ5HPX.js";
37
+ import "./chunk-BX5YO7UW.js";
38
+ import "./chunk-3CPCDXFR.js";
39
+ import "./chunk-GEHVIWAT.js";
40
40
  import "./chunk-22IFUCVR.js";
41
- import "./chunk-64WXLC72.js";
42
- import "./chunk-3UALQ56H.js";
43
- import "./chunk-F6XNTYNE.js";
44
- import "./chunk-CGEGHF2C.js";
41
+ import "./chunk-3227DZO4.js";
42
+ import "./chunk-YTFBURQD.js";
43
+ import "./chunk-BKXBARJZ.js";
45
44
  import "./chunk-IRJWHZWU.js";
46
45
  import "./chunk-SYCJMSIJ.js";
47
46
  import "./chunk-55ZMG67I.js";
48
47
  import "./chunk-H6BD2ELD.js";
49
48
  import "./chunk-5IFG2VC4.js";
50
- import "./chunk-C4K3FEQ2.js";
49
+ import "./chunk-64WXLC72.js";
50
+ import "./chunk-E6XQPQXW.js";
51
+ import "./chunk-UX4SGCGN.js";
51
52
  import "./chunk-ZERZSAZL.js";
52
53
  import "./chunk-QN5NZ3UQ.js";
53
54
  import "./chunk-BR4QREVK.js";
@@ -5,27 +5,28 @@ import {
5
5
  buildSkillLlmContent,
6
6
  collectAvailableSkillEntries,
7
7
  registerSkillHooks
8
- } from "./chunk-OTBK43JR.js";
9
- import "./chunk-HGNSRCRB.js";
8
+ } from "./chunk-HYCC3XM3.js";
9
+ import "./chunk-NL4C3H6C.js";
10
10
  import {
11
11
  SkillLaunchEvent,
12
- logSkillLaunch
13
- } from "./chunk-WA5OJGFL.js";
12
+ logSkillLaunch,
13
+ recordSkillInvocation
14
+ } from "./chunk-SS6WJMQK.js";
14
15
  import "./chunk-3PJXIDKI.js";
15
16
  import "./chunk-UWCTAVOD.js";
16
17
  import "./chunk-OFEVLU4C.js";
17
18
  import "./chunk-OMX7CUOE.js";
18
- import "./chunk-BNXANYLH.js";
19
- import "./chunk-T2VDEFUU.js";
20
- import "./chunk-OIC6S73E.js";
19
+ import "./chunk-RD6YJJJ6.js";
20
+ import "./chunk-SKQZZVAV.js";
21
+ import "./chunk-BUUQ5HPX.js";
21
22
  import {
22
23
  BaseDeclarativeTool,
23
24
  BaseToolInvocation,
24
25
  ToolDisplayNames,
25
26
  ToolNames
26
- } from "./chunk-TOEGRAVX.js";
27
- import "./chunk-3UALQ56H.js";
28
- import "./chunk-CGEGHF2C.js";
27
+ } from "./chunk-BX5YO7UW.js";
28
+ import "./chunk-3227DZO4.js";
29
+ import "./chunk-BKXBARJZ.js";
29
30
  import "./chunk-IRJWHZWU.js";
30
31
  import "./chunk-SYCJMSIJ.js";
31
32
  import "./chunk-55ZMG67I.js";
@@ -33,7 +34,7 @@ import "./chunk-H6BD2ELD.js";
33
34
  import "./chunk-5IFG2VC4.js";
34
35
  import {
35
36
  createDebugLogger
36
- } from "./chunk-C4K3FEQ2.js";
37
+ } from "./chunk-UX4SGCGN.js";
37
38
  import "./chunk-ZERZSAZL.js";
38
39
  import "./chunk-QN5NZ3UQ.js";
39
40
  import "./chunk-BR4QREVK.js";
@@ -276,7 +277,9 @@ var SkillToolInvocation = class extends BaseToolInvocation {
276
277
  async execute(_signal, _updateOutput) {
277
278
  const disabled = this.config.getDisabledSkillNames().has(this.params.skill.toLowerCase());
278
279
  if (disabled) {
280
+ let disabledCommandFallbackAttempted = false;
279
281
  if (this.commandExecutor) {
282
+ disabledCommandFallbackAttempted = true;
280
283
  try {
281
284
  const content = await this.commandExecutor(
282
285
  this.params.skill,
@@ -301,15 +304,23 @@ var SkillToolInvocation = class extends BaseToolInvocation {
301
304
  this.config,
302
305
  new SkillLaunchEvent(this.params.skill, false, this.promptId)
303
306
  );
307
+ if (!disabledCommandFallbackAttempted) {
308
+ recordSkillInvocation(this.config, {
309
+ skillName: this.params.skill,
310
+ success: false
311
+ });
312
+ }
304
313
  const msg = `Skill "${this.params.skill}" is disabled. Re-enable it via /skills or remove it from skills.disabled.`;
305
314
  return { llmContent: msg, returnDisplay: msg };
306
315
  }
316
+ let commandFallbackAttempted = false;
307
317
  try {
308
318
  const skill = await this.skillManager.loadSkillForRuntime(
309
319
  this.params.skill
310
320
  );
311
321
  if (!skill) {
312
322
  if (this.commandExecutor) {
323
+ commandFallbackAttempted = true;
313
324
  const commandResult = await this.commandExecutor(
314
325
  this.params.skill,
315
326
  this.params.args ?? ""
@@ -340,6 +351,12 @@ var SkillToolInvocation = class extends BaseToolInvocation {
340
351
  this.config,
341
352
  new SkillLaunchEvent(this.params.skill, false, this.promptId)
342
353
  );
354
+ if (!commandFallbackAttempted) {
355
+ recordSkillInvocation(this.config, {
356
+ skillName: this.params.skill,
357
+ success: false
358
+ });
359
+ }
343
360
  const parseErrors = this.skillManager.getParseErrors();
344
361
  const errorMessages = [];
345
362
  for (const [filePath, error] of parseErrors) {
@@ -400,6 +417,10 @@ ${errorMessages.join("\n")}` : "";
400
417
  }
401
418
  const baseDir = path.dirname(skill.filePath);
402
419
  const llmContent = buildSkillLlmContent(baseDir, skill.body);
420
+ recordSkillInvocation(this.config, {
421
+ skillName: this.params.skill,
422
+ success: true
423
+ });
403
424
  return {
404
425
  llmContent: [{ text: llmContent }],
405
426
  returnDisplay: skill.description,
@@ -412,6 +433,12 @@ ${errorMessages.join("\n")}` : "";
412
433
  this.config,
413
434
  new SkillLaunchEvent(this.params.skill, false, this.promptId)
414
435
  );
436
+ if (!commandFallbackAttempted) {
437
+ recordSkillInvocation(this.config, {
438
+ skillName: this.params.skill,
439
+ success: false
440
+ });
441
+ }
415
442
  return {
416
443
  llmContent: `Failed to load skill "${this.params.skill}": ${errorMessage}`,
417
444
  returnDisplay: `Failed to load skill "${this.params.skill}": ${errorMessage}`