@qwen-code/qwen-code 0.19.2 → 0.19.3

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 (282) hide show
  1. package/bundled/extension-creator/SKILL.md +357 -0
  2. package/bundled/loop/SKILL.md +12 -7
  3. package/bundled/loop/SKILL.test.ts +32 -0
  4. package/bundled/qc-helper/SKILL.md +14 -14
  5. package/bundled/qc-helper/docs/configuration/auth.md +11 -11
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +13 -13
  7. package/bundled/qc-helper/docs/configuration/settings.md +60 -60
  8. package/bundled/qc-helper/docs/features/commands.md +108 -77
  9. package/bundled/qc-helper/docs/features/memory.md +52 -0
  10. package/bundled/qc-helper/docs/qwen-serve.md +24 -2
  11. package/bundled/qc-helper/docs/support/tos-privacy.md +16 -3
  12. package/chunks/{MaxSizedBox-7RERNLFK.js → MaxSizedBox-QNF3EIGU.js} +29 -30
  13. package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-Z52JTYST.js} +42 -40
  14. package/chunks/{acpAgent-4MCETHF2.js → acpAgent-7RZUOWOM.js} +406 -118
  15. package/chunks/{agent-K3ENVYSB.js → agent-4FG7WTHJ.js} +24 -26
  16. package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-RQ5BTX3G.js} +24 -26
  17. package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-PFITVL7Y.js} +31 -13
  18. package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-D2X7G3C3.js} +2 -2
  19. package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-UGETICJQ.js} +2 -2
  20. package/chunks/{bridge-4LV2HBH2.js → bridge-JL2PMCIW.js} +29 -32
  21. package/chunks/{ca-7WC7ELX6.js → ca-IUFWESZL.js} +1 -0
  22. package/chunks/{chunk-3UALQ56H.js → chunk-3227DZO4.js} +1 -1
  23. package/chunks/{chunk-JTYRZODB.js → chunk-3TV3HUWZ.js} +16 -7
  24. package/chunks/{chunk-NYOHZYHM.js → chunk-4LUZAKMK.js} +45 -3
  25. package/chunks/{chunk-EL5IHQON.js → chunk-4QK3O43S.js} +6 -27
  26. package/chunks/chunk-5GOVVXEV.js +73 -0
  27. package/chunks/{chunk-R36VMVEP.js → chunk-6V4NZFUS.js} +5 -5
  28. package/chunks/{chunk-XKBP7M7A.js → chunk-ADCIHOQZ.js} +138 -28
  29. package/chunks/chunk-BC3C4F3Q.js +40 -0
  30. package/chunks/{chunk-CGEGHF2C.js → chunk-BKXBARJZ.js} +1 -1
  31. package/chunks/chunk-BMFMJINR.js +45 -0
  32. package/chunks/chunk-BTLJ2MF5.js +690 -0
  33. package/chunks/{chunk-OIC6S73E.js → chunk-BUUQ5HPX.js} +1 -1
  34. package/chunks/{chunk-2BIF2NVV.js → chunk-BVSVIN45.js} +2 -2
  35. package/chunks/{chunk-JXQ23SNT.js → chunk-BW4KCQFD.js} +54 -2
  36. package/chunks/{chunk-TOEGRAVX.js → chunk-BX5YO7UW.js} +17 -5
  37. package/chunks/{chunk-5RVSM6NW.js → chunk-BXSHL2SF.js} +1 -1
  38. package/chunks/{chunk-UN3C6GOR.js → chunk-CF6BB3LT.js} +0 -107
  39. package/chunks/{chunk-Z7XXFPGP.js → chunk-CKQA6AWF.js} +1 -1
  40. package/chunks/{chunk-I2RFAW6Q.js → chunk-CNLEDYE3.js} +7 -5
  41. package/chunks/{chunk-PRYMDRBV.js → chunk-DDMOU62Q.js} +1 -1
  42. package/chunks/chunk-EDMZZFDU.js +11213 -0
  43. package/chunks/{chunk-IRJWHZWU.js → chunk-EJYJYJZ2.js} +70 -3
  44. package/chunks/{chunk-OQHQHJRK.js → chunk-F3ZYSEY6.js} +151 -4775
  45. package/chunks/chunk-FKAVULLM.js +4909 -0
  46. package/chunks/{chunk-TZM5JIAX.js → chunk-FNJ7BDPH.js} +6 -6
  47. package/chunks/{chunk-EXMX5YHG.js → chunk-FXKVLFFY.js} +1 -1
  48. package/chunks/{chunk-EX4W6ZYG.js → chunk-GGBIN5K7.js} +1 -1
  49. package/chunks/{chunk-BS64PXY3.js → chunk-GT2FGICD.js} +1 -1
  50. package/chunks/{chunk-HG6YKEBI.js → chunk-HPZTOP4I.js} +75 -23
  51. package/chunks/{chunk-OTBK43JR.js → chunk-HYCC3XM3.js} +1 -1
  52. package/chunks/{chunk-3QFE4OTE.js → chunk-HZT4UCFB.js} +4 -4
  53. package/chunks/{chunk-GYZQA2FO.js → chunk-I2LYBGNI.js} +1 -1
  54. package/chunks/{chunk-TMBPDHXD.js → chunk-I4H7PRWQ.js} +1 -1
  55. package/chunks/{chunk-2BAQ3ACS.js → chunk-J33ZR6OJ.js} +404 -4
  56. package/chunks/{chunk-4W4T77MO.js → chunk-J7FA27RO.js} +109 -6
  57. package/chunks/{chunk-S566HKUS.js → chunk-JE5FVRPC.js} +38 -7
  58. package/chunks/{chunk-CGOMICBE.js → chunk-JJXWTVSK.js} +1 -1
  59. package/chunks/{chunk-EEEZIVFJ.js → chunk-JOLIREYR.js} +1 -1
  60. package/chunks/{chunk-DBZUXSSV.js → chunk-JVHEVCAU.js} +5 -5
  61. package/chunks/chunk-K5XU6E4T.js +167 -0
  62. package/chunks/{chunk-EW6C27XX.js → chunk-KMGMKW5Q.js} +1 -1
  63. package/chunks/{chunk-D5E5TMYH.js → chunk-L7OKCI7T.js} +4 -2
  64. package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
  65. package/chunks/{chunk-CI5O6SQL.js → chunk-MNF6S5PR.js} +4 -4
  66. package/chunks/{chunk-FPACXT7T.js → chunk-N4EJFBN5.js} +421 -163
  67. package/chunks/chunk-NDOC6M5S.js +481 -0
  68. package/chunks/{chunk-HGNSRCRB.js → chunk-NL4C3H6C.js} +1 -1
  69. package/chunks/{chunk-GZCJS5WH.js → chunk-O2VBQ3Y2.js} +2 -2
  70. package/chunks/{chunk-VQRYPFCV.js → chunk-O75BHFQW.js} +10 -460
  71. package/chunks/{chunk-WGAEWQTF.js → chunk-ODLIHNOY.js} +1 -2
  72. package/chunks/{chunk-J6AW7O5D.js → chunk-PDE7CSDS.js} +2 -2
  73. package/chunks/{chunk-5R4SBCX6.js → chunk-PR32FRT6.js} +3 -3
  74. package/chunks/{chunk-LLFFKXZZ.js → chunk-QE6KJYLT.js} +56 -29
  75. package/chunks/{chunk-3RJ3ZPPR.js → chunk-QI7GOGJR.js} +7 -7
  76. package/chunks/{chunk-XU5P23GN.js → chunk-QLDPRILK.js} +3 -3
  77. package/chunks/{chunk-WA5OJGFL.js → chunk-QNKBEJO2.js} +359 -76
  78. package/chunks/{chunk-UAARVVBI.js → chunk-QWFNTRH4.js} +1 -1
  79. package/chunks/chunk-QYUE6W3T.js +123 -0
  80. package/chunks/{chunk-5JZLXFPD.js → chunk-R5OP2ATH.js} +11 -11
  81. package/chunks/{chunk-BNXANYLH.js → chunk-RD6YJJJ6.js} +81 -1
  82. package/chunks/{chunk-2TJ3YN6Q.js → chunk-RRFZXMYP.js} +380 -400
  83. package/chunks/{chunk-ZN5T4BHI.js → chunk-RYLJU2DY.js} +1 -1
  84. package/chunks/{chunk-ZD3NW5KL.js → chunk-S7AKE7HL.js} +3 -3
  85. package/chunks/{chunk-BG4BIP7F.js → chunk-SBBN4BWR.js} +4 -2
  86. package/chunks/{chunk-T2VDEFUU.js → chunk-SKQZZVAV.js} +2 -2
  87. package/chunks/{chunk-USGMPVOY.js → chunk-SLNKLLEO.js} +14 -9
  88. package/chunks/chunk-SMXULRAN.js +37 -0
  89. package/chunks/{chunk-PF523XJX.js → chunk-SMYQZVZ3.js} +1 -1
  90. package/chunks/{chunk-I5T6PIBQ.js → chunk-STUWFKGD.js} +1001 -887
  91. package/chunks/{chunk-UAARJR2G.js → chunk-T4T2FNV4.js} +2 -2
  92. package/chunks/{chunk-F6XNTYNE.js → chunk-U3KSMM7G.js} +8 -4
  93. package/chunks/chunk-UFLGERMB.js +813 -0
  94. package/chunks/{chunk-BGUDAULQ.js → chunk-UO5GVXQE.js} +5 -5
  95. package/chunks/{chunk-C4K3FEQ2.js → chunk-UX4SGCGN.js} +32 -3
  96. package/chunks/{chunk-RS4HRC75.js → chunk-UYT3MWEB.js} +85 -8
  97. package/chunks/{chunk-VYFMN7C6.js → chunk-VBZ452JT.js} +113 -24
  98. package/chunks/{chunk-KBXLIVWQ.js → chunk-VVLOGDB6.js} +2 -2
  99. package/chunks/{chunk-TXVGVZYR.js → chunk-XJYUPHRC.js} +3 -3
  100. package/chunks/{chunk-2JD55C6G.js → chunk-Y6YMRS3U.js} +2 -2
  101. package/chunks/{chunk-PXFFKNCO.js → chunk-YAINVQ3Q.js} +2961 -1349
  102. package/chunks/{chunk-X6EDWN44.js → chunk-ZP6UKOPB.js} +1 -1
  103. package/chunks/{computer-use-6BBRNT6S.js → computer-use-JGB36FDW.js} +103 -52
  104. package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-WYU6OQ2F.js} +26 -28
  105. package/chunks/{cron-create-4KQE6YLH.js → cron-create-SKEY55RG.js} +4 -4
  106. package/chunks/{cron-delete-THME66UP.js → cron-delete-I3NAT32Z.js} +6 -6
  107. package/chunks/{cron-list-7A54SJ5N.js → cron-list-6XRRL6TH.js} +5 -5
  108. package/chunks/daemon-status-provider-HH2EC5FI.js +65 -0
  109. package/chunks/{de-ACHALDED.js → de-EOW5PVHF.js} +1 -0
  110. package/chunks/{dist-BOOH5JWN.js → dist-663NZ6MI.js} +1 -1
  111. package/chunks/{dist-QHJRBCMP.js → dist-J37VXPLD.js} +46 -5
  112. package/chunks/{dist-OD2FY543.js → dist-LB6OGPVM.js} +1 -1
  113. package/chunks/{dist-BD27IA3L.js → dist-NHEYYB2B.js} +2 -2
  114. package/chunks/{dist-QFFZWACU.js → dist-PQPZ5Q4N.js} +1 -1
  115. package/chunks/{earlyInputCapture-X6KMCSHD.js → earlyInputCapture-44RISVVJ.js} +25 -27
  116. package/chunks/{edit-7J6WXARF.js → edit-NN6GM5DT.js} +68 -30
  117. package/chunks/{en-NCUBOJOY.js → en-HPWEJBTR.js} +8 -0
  118. package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-PB3O2C7D.js} +24 -26
  119. package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-YQFNNSUA.js} +24 -26
  120. package/chunks/{errors-6G2JYR54.js → errors-LS7XU5DZ.js} +26 -28
  121. package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-E2FTNSBK.js} +24 -26
  122. package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-GLYK2BUB.js} +24 -26
  123. package/chunks/{fast-path-35JJFS3C.js → fast-path-WQ6M7LI7.js} +4 -4
  124. package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-OAGU3X5H.js} +3 -2
  125. package/chunks/{fr-GVKZ27MF.js → fr-BN5NKSAC.js} +1 -0
  126. package/chunks/{gemini-NDTG7WAX.js → gemini-2YFLVA2M.js} +204 -103
  127. package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-XV6SV6CD.js} +4 -4
  128. package/chunks/{glob-SJ2JBZK4.js → glob-2H6CDDMK.js} +24 -26
  129. package/chunks/{grep-BRMWFEWR.js → grep-VXIUXM3C.js} +24 -26
  130. package/chunks/{headlessSafetyWarnings-LJ6FJX77.js → headlessSafetyWarnings-TBE35GJ4.js} +24 -26
  131. package/chunks/initializer-2Y7SLOKV.js +61 -0
  132. package/chunks/{ja-FKZ2WZ4D.js → ja-7DEUB2TS.js} +1 -0
  133. package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-YLMDLKXT.js} +2 -2
  134. package/chunks/list-ZAFHZ7OS.js +65 -0
  135. package/chunks/loadedSettingsAdapter-6KJXD6M3.js +60 -0
  136. package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-CITGGQHA.js} +7 -7
  137. package/chunks/{ls-BYQY7RVV.js → ls-R5WP4BGZ.js} +4 -4
  138. package/chunks/{lsp-X54RO4IV.js → lsp-GSICJMMW.js} +2 -2
  139. package/chunks/{monitor-DH7KFSJV.js → monitor-HKLRS2HQ.js} +24 -26
  140. package/chunks/nonInteractiveCli-5W4GIZQM.js +96 -0
  141. package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-Y6SKSGTT.js} +52 -26
  142. package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-J7G2FYJT.js} +13 -14
  143. package/chunks/{pt-SY5NCFGR.js → pt-TNZRNLQB.js} +1 -0
  144. package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-5XIEM5GV.js} +26 -28
  145. package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-AG3PFFLZ.js} +4 -4
  146. package/chunks/{read-file-767G23OY.js → read-file-J7D552ZJ.js} +9 -10
  147. package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-DQQW7H7T.js} +2 -2
  148. package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-IEIFIWP4.js} +24 -26
  149. package/chunks/{ru-FWNXJG4F.js → ru-NIAUBKCN.js} +1 -0
  150. package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-SGEEVMXD.js} +149 -41
  151. package/chunks/{scheduler-UNTFDQLG.js → scheduler-7CQI3S4Q.js} +24 -26
  152. package/chunks/{send-message-2DAFXEYP.js → send-message-EE4TWKVU.js} +2 -2
  153. package/chunks/{serve-KZ56QB5S.js → serve-V6GVZR6U.js} +31 -31
  154. package/chunks/{server-BV5TZUMU.js → server-4QMUWXPW.js} +6996 -5864
  155. package/chunks/{session-OIBXFSGD.js → session-NRO7UFOY.js} +62 -57
  156. package/chunks/{settings-WJTCBIRA.js → settings-SGWRDQSC.js} +30 -30
  157. package/chunks/{shell-WC52IBHW.js → shell-62ANGIHL.js} +24 -26
  158. package/chunks/{skill-U7F7JR4M.js → skill-VWAQAWW6.js} +39 -13
  159. package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-3VHW5EPY.js} +26 -28
  160. package/chunks/{src-4F6FBZFI.js → src-KUV5J5Q2.js} +52 -28
  161. package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-6EYJN3JV.js} +2588 -2371
  162. package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-T5YHQ6S2.js} +3 -3
  163. package/chunks/{task-create-OUYCA553.js → task-create-BLY7RHXX.js} +6 -6
  164. package/chunks/{task-list-WAX7I2IA.js → task-list-3QUYNVYR.js} +5 -5
  165. package/chunks/{task-stop-CAIL6FNH.js → task-stop-U4RATK2V.js} +2 -2
  166. package/chunks/{task-update-AHEO5OUT.js → task-update-U54O7KJX.js} +6 -6
  167. package/chunks/{team-create-3WC7CIIW.js → team-create-LPOGCPM7.js} +24 -26
  168. package/chunks/{team-delete-HGHFG23B.js → team-delete-LKBYPASD.js} +5 -5
  169. package/chunks/{theme-manager-DICFCT3P.js → theme-manager-LYLGAERF.js} +25 -27
  170. package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-OYXKTVYN.js} +4 -4
  171. package/chunks/{tool-search-L5K7HLER.js → tool-search-YPUFJ3ZQ.js} +102 -18
  172. package/chunks/trustedFolders-5B24TMEA.js +73 -0
  173. package/chunks/types-QX5C3CHJ.js +12 -0
  174. package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-BTDTYOVT.js} +57 -54
  175. package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-EEB5LZYU.js} +28 -15
  176. package/chunks/{workflow-OB3AND7I.js → workflow-LAWIW5LI.js} +32 -33
  177. package/chunks/workspace-providers-status-PIAFVYHA.js +62 -0
  178. package/chunks/workspace-service-YAIOD4HG.js +71 -0
  179. package/chunks/{write-file-SEXBNDZM.js → write-file-PCV226DJ.js} +63 -30
  180. package/chunks/{zh-RBEGQVQT.js → zh-5EUYXASN.js} +8 -0
  181. package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-TR3XYGE5.js} +8 -0
  182. package/cli-entry.js +20 -9
  183. package/cli.js +6 -6
  184. package/locales/ca.js +2 -0
  185. package/locales/de.js +2 -0
  186. package/locales/en.js +14 -0
  187. package/locales/fr.js +2 -0
  188. package/locales/ja.js +1 -0
  189. package/locales/pt.js +2 -0
  190. package/locales/ru.js +2 -0
  191. package/locales/zh-TW.js +12 -0
  192. package/locales/zh.js +12 -0
  193. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +35 -0
  194. package/node_modules/@qwen-code/audio-capture/dist/index.js +48 -0
  195. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +1 -0
  196. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +7 -0
  197. package/node_modules/@qwen-code/audio-capture/dist/platform.js +18 -0
  198. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +1 -0
  199. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +21 -0
  200. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +58 -0
  201. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +5 -0
  202. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +84 -0
  203. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +19 -0
  204. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +6 -0
  205. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  206. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +7 -0
  207. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +43 -0
  208. package/node_modules/@qwen-code/audio-capture/package.json +30 -0
  209. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  210. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  211. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  212. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  213. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  214. package/package.json +6 -3
  215. package/web-shell/assets/{arc-D_ae_Y9k.js → arc-DA7r8Ueo.js} +1 -1
  216. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-ZDUxPtZ2.js} +1 -1
  217. package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-vrtOf1kJ.js} +1 -1
  218. package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-BHFjzIi4.js} +1 -1
  219. package/web-shell/assets/channel-iRo68q4Q.js +1 -0
  220. package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-mdeQVz59.js} +1 -1
  221. package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-BkKMlwBX.js} +1 -1
  222. package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-B7bnXNfu.js} +1 -1
  223. package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-DGz8Mm6i.js} +1 -1
  224. package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-BQAydUNk.js} +1 -1
  225. package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-GHr2LN_p.js} +1 -1
  226. package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-7R91lnUx.js} +1 -1
  227. package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-aTJD3lSQ.js} +1 -1
  228. package/web-shell/assets/classDiagram-4FO5ZUOK-iHF24a8X.js +1 -0
  229. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-iHF24a8X.js +1 -0
  230. package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-BTf8t1RL.js} +1 -1
  231. package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-_sgp3WuA.js} +1 -1
  232. package/web-shell/assets/default-aEtf0G7-.svg +1 -0
  233. package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-CROtRy1w.js} +1 -1
  234. package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-BqGRzwSc.js} +1 -1
  235. package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-CMrcEtA7.js} +1 -1
  236. package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-BRydGNW5.js} +1 -1
  237. package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-D0ilgNjV.js} +1 -1
  238. package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-2lnQeJUM.js} +1 -1
  239. package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-C_ZMdQiC.js} +1 -1
  240. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-Dw9V_Ny0.js} +1 -1
  241. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-HDXI-F1B.js} +1 -1
  242. package/web-shell/assets/index-CHmzAWys.css +5 -0
  243. package/web-shell/assets/index-w6GTOHh1.js +713 -0
  244. package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-CuB8Ebua.js} +1 -1
  245. package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
  246. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D_tyhVwh.js} +1 -1
  247. package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-CgCwJQNU.js} +1 -1
  248. package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-PZUtcbPx.js} +1 -1
  249. package/web-shell/assets/{linear-DGGM2kcP.js → linear-CZqRdJIU.js} +1 -1
  250. package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-CPW_4UEF.js} +5 -5
  251. package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-D_Y75ID7.js} +1 -1
  252. package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-Q4dTyLeF.js} +1 -1
  253. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-ckw329Ft.js} +1 -1
  254. package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
  255. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-DbVDm4It.js} +1 -1
  256. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-CHuZ_ecH.js} +1 -1
  257. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-DU2YSpq-.js} +1 -1
  258. package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-CA9PEBUo.js} +1 -1
  259. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-t1LRI0oY.js +1 -0
  260. package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-Bhlo4WVc.js} +1 -1
  261. package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-6xtPLsyl.js} +1 -1
  262. package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-3eozmXPf.js} +1 -1
  263. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-BOn6hKss.js} +1 -1
  264. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-BsP4-I_y.js} +1 -1
  265. package/web-shell/index.html +2 -2
  266. package/chunks/chunk-5P5XGNYH.js +0 -93
  267. package/chunks/chunk-B6HQGTYR.js +0 -410
  268. package/chunks/chunk-SEZC2725.js +0 -36
  269. package/chunks/chunk-SYCJMSIJ.js +0 -82
  270. package/chunks/daemon-status-provider-CSL3BUOY.js +0 -68
  271. package/chunks/initializer-P5AXF7PV.js +0 -61
  272. package/chunks/list-6COK34BP.js +0 -65
  273. package/chunks/loadedSettingsAdapter-XIUTN245.js +0 -60
  274. package/chunks/nonInteractiveCli-7575LBXP.js +0 -91
  275. package/chunks/workspace-providers-status-ZIR5EPOO.js +0 -62
  276. package/chunks/workspace-service-OM5D4OI2.js +0 -60
  277. package/web-shell/assets/channel-DYPNiTww.js +0 -1
  278. package/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js +0 -1
  279. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js +0 -1
  280. package/web-shell/assets/index-CpOXWDPh.js +0 -714
  281. package/web-shell/assets/index-oVK7qhre.css +0 -5
  282. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js +0 -1
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  formatFetchErrorForUser
5
- } from "./chunk-EW6C27XX.js";
5
+ } from "./chunk-KMGMKW5Q.js";
6
6
  import {
7
7
  openBrowserSecurely
8
8
  } from "./chunk-22IFUCVR.js";
9
+ import {
10
+ atomicWriteFile
11
+ } from "./chunk-3227DZO4.js";
9
12
  import {
10
13
  combineAbortSignals
11
14
  } from "./chunk-64WXLC72.js";
12
- import {
13
- atomicWriteFile
14
- } from "./chunk-3UALQ56H.js";
15
15
  import {
16
16
  Storage,
17
17
  createDebugLogger
18
- } from "./chunk-C4K3FEQ2.js";
18
+ } from "./chunk-UX4SGCGN.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-A4BMJM77.js";
@@ -31,11 +31,40 @@ function isAbortError(error) {
31
31
  return false;
32
32
  }
33
33
  __name(isAbortError, "isAbortError");
34
+ function describeErrorCause(cause) {
35
+ if (cause == null) return void 0;
36
+ if (cause instanceof AggregateError && Array.isArray(cause.errors)) {
37
+ const inner = cause.errors.map((e) => describeSingleError(e)).filter((s) => Boolean(s));
38
+ if (inner.length > 0) {
39
+ return [...new Set(inner)].join("; ");
40
+ }
41
+ }
42
+ return describeSingleError(cause);
43
+ }
44
+ __name(describeErrorCause, "describeErrorCause");
45
+ function describeSingleError(err) {
46
+ if (err instanceof Error) {
47
+ const code = err.code;
48
+ const codeStr = typeof code === "string" ? code : void 0;
49
+ const msg = err.message?.trim();
50
+ if (msg && codeStr && !msg.includes(codeStr)) {
51
+ return `${codeStr}: ${msg}`;
52
+ }
53
+ return msg || codeStr || (err.name !== "Error" ? err.name : void 0);
54
+ }
55
+ if (err && typeof err === "object" && "code" in err) {
56
+ const code = err.code;
57
+ if (typeof code === "string" && code) return code;
58
+ }
59
+ const str = String(err);
60
+ return str && str !== "[object Object]" ? str : void 0;
61
+ }
62
+ __name(describeSingleError, "describeSingleError");
34
63
  function getErrorMessage(error) {
35
64
  if (error instanceof Error) {
36
- const cause = error.cause;
37
- if (cause instanceof Error && cause.message !== error.message) {
38
- return `${error.message} (cause: ${cause.message})`;
65
+ const detail = describeErrorCause(error.cause);
66
+ if (detail && detail !== error.message) {
67
+ return `${error.message} (cause: ${detail})`;
39
68
  }
40
69
  return error.message;
41
70
  }
@@ -2,15 +2,16 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolveModelConfig,
5
+ resolveProviderProtocol,
5
6
  stripRuntimeSnapshotPrefix
6
- } from "./chunk-PXFFKNCO.js";
7
+ } from "./chunk-YAINVQ3Q.js";
7
8
  import {
8
9
  external_exports
9
10
  } from "./chunk-K5PGHDBN.js";
10
11
  import {
11
12
  AuthType,
12
13
  MODEL_GENERATION_CONFIG_FIELDS
13
- } from "./chunk-WA5OJGFL.js";
14
+ } from "./chunk-QNKBEJO2.js";
14
15
  import {
15
16
  init_esbuild_shims
16
17
  } from "./chunk-A4BMJM77.js";
@@ -112,6 +113,68 @@ var AUTH_ENV_MODEL_VARS = {
112
113
  ["anthropic" /* USE_ANTHROPIC */]: ["ANTHROPIC_MODEL"],
113
114
  ["qwen-oauth" /* QWEN_OAUTH */]: []
114
115
  };
116
+ function collectProviderModelsForProtocol(modelProviders, providerProtocol, protocol) {
117
+ if (!modelProviders) {
118
+ return [];
119
+ }
120
+ const out = [];
121
+ for (const [providerId, models] of Object.entries(modelProviders)) {
122
+ if (!Array.isArray(models)) {
123
+ continue;
124
+ }
125
+ if (resolveProviderProtocol(providerId, providerProtocol) === protocol) {
126
+ out.push(...models);
127
+ }
128
+ }
129
+ return out;
130
+ }
131
+ __name(collectProviderModelsForProtocol, "collectProviderModelsForProtocol");
132
+ function findProviderIdForModel(modelProviders, providerProtocol, protocol, modelProvider) {
133
+ if (!modelProviders || !modelProvider) {
134
+ return void 0;
135
+ }
136
+ for (const [providerId, models] of Object.entries(modelProviders)) {
137
+ if (!Array.isArray(models)) {
138
+ continue;
139
+ }
140
+ if (resolveProviderProtocol(providerId, providerProtocol) !== protocol) {
141
+ continue;
142
+ }
143
+ if (models.includes(modelProvider)) {
144
+ return providerId;
145
+ }
146
+ }
147
+ return void 0;
148
+ }
149
+ __name(findProviderIdForModel, "findProviderIdForModel");
150
+ function buildSkippedProviderWarnings(modelProviders, providerProtocol) {
151
+ if (!modelProviders) {
152
+ return [];
153
+ }
154
+ const warnings = [];
155
+ const known = Object.values(AuthType).join(", ");
156
+ for (const [providerId, models] of Object.entries(modelProviders)) {
157
+ if (!Array.isArray(models) || models.length === 0) {
158
+ continue;
159
+ }
160
+ const protocol = resolveProviderProtocol(providerId, providerProtocol);
161
+ if (protocol === "qwen-oauth" /* QWEN_OAUTH */ && providerId !== "qwen-oauth" /* QWEN_OAUTH */) {
162
+ warnings.push(
163
+ `Warning: modelProviders provider "${providerId}" maps to "qwen-oauth" via providerProtocol, but qwen-oauth uses hard-coded models only; its ${models.length} model(s) are ignored.`
164
+ );
165
+ continue;
166
+ }
167
+ if (protocol !== void 0) {
168
+ continue;
169
+ }
170
+ const mapped = providerProtocol && Object.hasOwn(providerProtocol, providerId) ? providerProtocol[providerId] : void 0;
171
+ warnings.push(
172
+ mapped !== void 0 ? `Warning: providerProtocol["${providerId}"] = "${mapped}" is not a known protocol (expected one of: ${known}); its ${models.length} model(s) are ignored.` : `Warning: modelProviders provider "${providerId}" is not a built-in protocol (${known}) and has no providerProtocol mapping; its ${models.length} model(s) are ignored. Add providerProtocol["${providerId}"] (e.g. "openai") to enable them.`
173
+ );
174
+ }
175
+ return warnings;
176
+ }
177
+ __name(buildSkippedProviderWarnings, "buildSkippedProviderWarnings");
115
178
  function getIgnoredTopLevelGenerationConfigFields(settingsGenerationConfig, modelProvider) {
116
179
  if (!settingsGenerationConfig || !modelProvider) {
117
180
  return [];
@@ -122,7 +185,7 @@ function getIgnoredTopLevelGenerationConfigFields(settingsGenerationConfig, mode
122
185
  );
123
186
  }
124
187
  __name(getIgnoredTopLevelGenerationConfigFields, "getIgnoredTopLevelGenerationConfigFields");
125
- function buildIgnoredTopLevelGenerationConfigWarning(authType, modelProvider, ignoredFields) {
188
+ function buildIgnoredTopLevelGenerationConfigWarning(providerId, modelProvider, ignoredFields) {
126
189
  if (ignoredFields.length === 0) {
127
190
  return void 0;
128
191
  }
@@ -131,7 +194,7 @@ function buildIgnoredTopLevelGenerationConfigWarning(authType, modelProvider, ig
131
194
  const verb = isSingular ? "is" : "are";
132
195
  const fieldReference = isSingular ? "this field" : "these fields";
133
196
  const pronoun = isSingular ? "it" : "them";
134
- return `Warning: ${fieldList} ${verb} ignored for provider model "${modelProvider.id}" from modelProviders.${authType}. Move ${fieldReference} to modelProviders.${authType}[].generationConfig for that model if you want ${pronoun} to apply.`;
197
+ return `Warning: ${fieldList} ${verb} ignored for provider model "${modelProvider.id}" from modelProviders.${providerId}. Move ${fieldReference} to modelProviders.${providerId}[].generationConfig for that model if you want ${pronoun} to apply.`;
135
198
  }
136
199
  __name(buildIgnoredTopLevelGenerationConfigWarning, "buildIgnoredTopLevelGenerationConfigWarning");
137
200
  function getAuthTypeFromEnv() {
@@ -177,8 +240,12 @@ function resolveCliGenerationConfig(inputs) {
177
240
  let modelProvider;
178
241
  let disambiguationWarning;
179
242
  if (resolvedModel && authType && settings.modelProviders) {
180
- const providers = settings.modelProviders[authType];
181
- if (providers && Array.isArray(providers)) {
243
+ const providers = collectProviderModelsForProtocol(
244
+ settings.modelProviders,
245
+ settings.providerProtocol,
246
+ authType
247
+ );
248
+ if (providers.length > 0) {
182
249
  const persistedBaseUrl = settings.model?.baseUrl;
183
250
  if (resolvedFromSettings && persistedBaseUrl) {
184
251
  const exactMatch = providers.find(
@@ -225,7 +292,12 @@ function resolveCliGenerationConfig(inputs) {
225
292
  };
226
293
  const resolved = resolveModelConfig(configSources);
227
294
  const ignoredGenerationConfigWarning = authType && modelProvider ? buildIgnoredTopLevelGenerationConfigWarning(
228
- authType,
295
+ findProviderIdForModel(
296
+ settings.modelProviders,
297
+ settings.providerProtocol,
298
+ authType,
299
+ modelProvider
300
+ ) ?? authType,
229
301
  modelProvider,
230
302
  getIgnoredTopLevelGenerationConfigFields(
231
303
  settings.model?.generationConfig,
@@ -248,7 +320,11 @@ function resolveCliGenerationConfig(inputs) {
248
320
  warnings: [
249
321
  ...resolved.warnings,
250
322
  ...disambiguationWarning ? [disambiguationWarning] : [],
251
- ...ignoredGenerationConfigWarning ? [ignoredGenerationConfigWarning] : []
323
+ ...ignoredGenerationConfigWarning ? [ignoredGenerationConfigWarning] : [],
324
+ ...buildSkippedProviderWarnings(
325
+ settings.modelProviders,
326
+ settings.providerProtocol
327
+ )
252
328
  ]
253
329
  };
254
330
  }
@@ -259,6 +335,7 @@ export {
259
335
  sanitizeProviderBaseUrl,
260
336
  parseAcpBaseModelId,
261
337
  parseAcpModelOption,
338
+ collectProviderModelsForProtocol,
262
339
  getAuthTypeFromEnv,
263
340
  resolveCliGenerationConfig
264
341
  };
@@ -3,12 +3,18 @@
3
3
  import {
4
4
  MID_TURN_QUEUE_DRAIN_METHOD
5
5
  } from "./chunk-QBZ22PQX.js";
6
+ import {
7
+ DEFAULT_RING_SIZE,
8
+ EVENT_SCHEMA_VERSION,
9
+ EventBus
10
+ } from "./chunk-ALX6BUYW.js";
6
11
  import {
7
12
  MCP_RESTART_SERVER_DEADLINE_MS
8
13
  } from "./chunk-P7M4GA57.js";
9
14
  import {
10
15
  BranchWhilePromptActiveError,
11
16
  CancelSentinelCollisionError,
17
+ CdWhilePromptActiveError,
12
18
  InvalidClientIdError,
13
19
  InvalidPermissionOptionError,
14
20
  InvalidRewindTargetError,
@@ -23,19 +29,12 @@ import {
23
29
  SessionShellClientRequiredError,
24
30
  SessionShellDisabledError,
25
31
  WorkspaceMismatchError,
32
+ canonicalizeWorkspace,
26
33
  isNotCurrentlyGeneratingCancelError
27
- } from "./chunk-S566HKUS.js";
28
- import {
29
- canonicalizeWorkspace
30
- } from "./chunk-SEZC2725.js";
31
- import {
32
- DEFAULT_RING_SIZE,
33
- EVENT_SCHEMA_VERSION,
34
- EventBus
35
- } from "./chunk-ALX6BUYW.js";
34
+ } from "./chunk-JE5FVRPC.js";
36
35
  import {
37
36
  defaultSpawnChannelFactory
38
- } from "./chunk-EXMX5YHG.js";
37
+ } from "./chunk-FXKVLFFY.js";
39
38
  import {
40
39
  ClientSideConnection,
41
40
  PROTOCOL_VERSION,
@@ -49,15 +48,15 @@ import {
49
48
  STATUS_SCHEMA_VERSION,
50
49
  createIdleWorkspaceExtensionsStatus,
51
50
  createIdleWorkspaceHooksStatus
52
- } from "./chunk-D5E5TMYH.js";
51
+ } from "./chunk-L7OKCI7T.js";
53
52
  import {
54
53
  ShellExecutionService,
55
54
  TrustGateError
56
- } from "./chunk-PXFFKNCO.js";
55
+ } from "./chunk-YAINVQ3Q.js";
57
56
  import {
58
57
  DAEMON_TRACEPARENT_META_KEY,
59
58
  DAEMON_TRACESTATE_META_KEY
60
- } from "./chunk-WA5OJGFL.js";
59
+ } from "./chunk-QNKBEJO2.js";
61
60
  import {
62
61
  init_esbuild_shims
63
62
  } from "./chunk-A4BMJM77.js";
@@ -2174,6 +2173,14 @@ function createAcpSessionBridge(opts) {
2174
2173
  const aliveChannels = /* @__PURE__ */ new Set();
2175
2174
  let inFlightChannelSpawn;
2176
2175
  const byId = /* @__PURE__ */ new Map();
2176
+ const toSessionSummary = /* @__PURE__ */ __name((entry) => ({
2177
+ sessionId: entry.sessionId,
2178
+ workspaceCwd: entry.workspaceCwd,
2179
+ createdAt: entry.createdAt,
2180
+ displayName: entry.displayName,
2181
+ clientCount: entry.clientIds.size,
2182
+ hasActivePrompt: entry.promptActive
2183
+ }), "toSessionSummary");
2177
2184
  const permissionConsensusQuorum = opts.permissionConsensusQuorum;
2178
2185
  if (permissionConsensusQuorum !== void 0 && (!Number.isInteger(permissionConsensusQuorum) || permissionConsensusQuorum < 1)) {
2179
2186
  throw new Error(
@@ -2828,6 +2835,7 @@ function createAcpSessionBridge(opts) {
2828
2835
  // Late attachers get the same ACP state the original restore
2829
2836
  // caller saw; spawn-only sessions don't carry a state payload.
2830
2837
  state: existing.restoreState ?? {},
2838
+ hasActivePrompt: existing.promptActive,
2831
2839
  ...replayFieldsFor(existing, action)
2832
2840
  };
2833
2841
  }
@@ -2860,7 +2868,8 @@ function createAcpSessionBridge(opts) {
2860
2868
  ...restored,
2861
2869
  attached: true,
2862
2870
  clientId: registerClient(entry, req.clientId),
2863
- createdAt: entry.createdAt
2871
+ createdAt: entry.createdAt,
2872
+ hasActivePrompt: entry.promptActive
2864
2873
  };
2865
2874
  }
2866
2875
  if (byId.size + inFlightSpawns.size + inFlightRestores.size >= maxSessions) {
@@ -2948,6 +2957,7 @@ function createAcpSessionBridge(opts) {
2948
2957
  clientId: clientId2,
2949
2958
  createdAt: racedEntry.createdAt,
2950
2959
  state: racedEntry.restoreState ?? {},
2960
+ hasActivePrompt: racedEntry.promptActive,
2951
2961
  ...replayFieldsFor(racedEntry, action)
2952
2962
  };
2953
2963
  }
@@ -2969,6 +2979,7 @@ function createAcpSessionBridge(opts) {
2969
2979
  clientId,
2970
2980
  createdAt: entry.createdAt,
2971
2981
  state,
2982
+ hasActivePrompt: entry.promptActive,
2972
2983
  ...replayFieldsFor(entry, action)
2973
2984
  };
2974
2985
  })().finally(() => {
@@ -3146,7 +3157,8 @@ function createAcpSessionBridge(opts) {
3146
3157
  workspaceCwd: existing.workspaceCwd,
3147
3158
  attached: true,
3148
3159
  clientId,
3149
- createdAt: existing.createdAt
3160
+ createdAt: existing.createdAt,
3161
+ hasActivePrompt: existing.promptActive
3150
3162
  };
3151
3163
  }
3152
3164
  const inFlight = inFlightSpawns.get(workspaceKey);
@@ -3170,7 +3182,12 @@ function createAcpSessionBridge(opts) {
3170
3182
  ).catch(() => {
3171
3183
  });
3172
3184
  }
3173
- return { ...session, attached: true, clientId };
3185
+ return {
3186
+ ...session,
3187
+ attached: true,
3188
+ clientId,
3189
+ hasActivePrompt: attachedEntry.promptActive
3190
+ };
3174
3191
  }
3175
3192
  }
3176
3193
  if (byId.size + inFlightSpawns.size + inFlightRestores.size >= maxSessions) {
@@ -3616,6 +3633,59 @@ function createAcpSessionBridge(opts) {
3616
3633
  );
3617
3634
  return branchResult;
3618
3635
  },
3636
+ async changeSessionCwd(sessionId, req, context) {
3637
+ if (shuttingDown) throw new Error("AcpSessionBridge is shutting down");
3638
+ const entry = byId.get(sessionId);
3639
+ if (!entry) throw new SessionNotFoundError(sessionId);
3640
+ const originatorClientId = resolveTrustedClientId(
3641
+ entry,
3642
+ context?.clientId
3643
+ );
3644
+ const cdPromise = entry.promptQueue.then(async () => {
3645
+ if (entry.promptActive) {
3646
+ throw new CdWhilePromptActiveError(sessionId);
3647
+ }
3648
+ const ci = await ensureChannel();
3649
+ const raw = await ci.connection.extMethod(
3650
+ SERVE_CONTROL_EXT_METHODS.sessionCd,
3651
+ {
3652
+ sessionId,
3653
+ path: req.path
3654
+ }
3655
+ );
3656
+ const extResult = raw;
3657
+ if (typeof extResult?.previousCwd !== "string" || typeof extResult?.newCwd !== "string" || !Array.isArray(extResult?.warnings)) {
3658
+ throw new Error(
3659
+ `changeSessionCwd: unexpected response shape from agent: ${JSON.stringify(raw)}`
3660
+ );
3661
+ }
3662
+ if (extResult.previousCwd !== extResult.newCwd) {
3663
+ entry.events.publish({
3664
+ type: "session_cwd_changed",
3665
+ data: {
3666
+ sessionId,
3667
+ previousCwd: extResult.previousCwd,
3668
+ newCwd: extResult.newCwd
3669
+ },
3670
+ ...originatorClientId ? { originatorClientId } : {}
3671
+ });
3672
+ }
3673
+ return extResult;
3674
+ });
3675
+ entry.promptQueue = cdPromise.then(
3676
+ () => void 0,
3677
+ () => void 0
3678
+ );
3679
+ const result = await withTimeout(
3680
+ cdPromise,
3681
+ Math.max(initTimeoutMs, 3e4),
3682
+ "changeSessionCwd"
3683
+ );
3684
+ writeStderrLine(
3685
+ `qwen serve: session ${sessionId} cwd changed: ${result.previousCwd} -> ${result.newCwd}` + (result.warnings.length > 0 ? ` (warnings: ${result.warnings.join("; ")})` : "")
3686
+ );
3687
+ return { sessionId, ...result };
3688
+ },
3619
3689
  async closeSession(sessionId, context, closeOpts) {
3620
3690
  return closeSessionImpl(sessionId, context, closeOpts);
3621
3691
  },
@@ -3679,18 +3749,16 @@ function createAcpSessionBridge(opts) {
3679
3749
  const out = [];
3680
3750
  for (const entry of byId.values()) {
3681
3751
  if (entry.workspaceCwd === key) {
3682
- out.push({
3683
- sessionId: entry.sessionId,
3684
- workspaceCwd: entry.workspaceCwd,
3685
- createdAt: entry.createdAt,
3686
- displayName: entry.displayName,
3687
- clientCount: entry.clientIds.size,
3688
- hasActivePrompt: entry.promptActive
3689
- });
3752
+ out.push(toSessionSummary(entry));
3690
3753
  }
3691
3754
  }
3692
3755
  return out;
3693
3756
  },
3757
+ getSessionSummary(sessionId) {
3758
+ const entry = byId.get(sessionId);
3759
+ if (!entry) throw new SessionNotFoundError(sessionId);
3760
+ return toSessionSummary(entry);
3761
+ },
3694
3762
  recordHeartbeat(sessionId, context) {
3695
3763
  const entry = byId.get(sessionId);
3696
3764
  if (!entry) throw new SessionNotFoundError(sessionId);
@@ -3790,6 +3858,27 @@ function createAcpSessionBridge(opts) {
3790
3858
  { serverName }
3791
3859
  );
3792
3860
  },
3861
+ async getWorkspaceMcpResourcesStatus(serverName) {
3862
+ return requestWorkspaceStatus(
3863
+ SERVE_STATUS_EXT_METHODS.workspaceMcpResources,
3864
+ () => ({
3865
+ v: STATUS_SCHEMA_VERSION,
3866
+ workspaceCwd: boundWorkspace,
3867
+ serverName,
3868
+ initialized: false,
3869
+ acpChannelLive: false,
3870
+ resources: [],
3871
+ errors: [
3872
+ {
3873
+ kind: "mcp_resources",
3874
+ status: "not_started",
3875
+ hint: "spawn a session to populate"
3876
+ }
3877
+ ]
3878
+ }),
3879
+ { serverName }
3880
+ );
3881
+ },
3793
3882
  async getWorkspaceToolsStatus() {
3794
3883
  return requestWorkspaceStatus(
3795
3884
  SERVE_STATUS_EXT_METHODS.workspaceTools,
@@ -3,10 +3,10 @@
3
3
  import {
4
4
  TextTokenizer,
5
5
  isSupportedImageMimeType
6
- } from "./chunk-F6XNTYNE.js";
6
+ } from "./chunk-U3KSMM7G.js";
7
7
  import {
8
8
  createDebugLogger
9
- } from "./chunk-C4K3FEQ2.js";
9
+ } from "./chunk-UX4SGCGN.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-A4BMJM77.js";
@@ -3,17 +3,17 @@
3
3
  import {
4
4
  getInboxesDir,
5
5
  require_proper_lockfile
6
- } from "./chunk-2BIF2NVV.js";
6
+ } from "./chunk-BVSVIN45.js";
7
7
  import {
8
8
  Mutex
9
9
  } from "./chunk-OMX7CUOE.js";
10
10
  import {
11
11
  atomicWriteJSON
12
- } from "./chunk-3UALQ56H.js";
12
+ } from "./chunk-3227DZO4.js";
13
13
  import {
14
14
  createDebugLogger,
15
15
  isNodeError
16
- } from "./chunk-C4K3FEQ2.js";
16
+ } from "./chunk-UX4SGCGN.js";
17
17
  import {
18
18
  init_esbuild_shims
19
19
  } from "./chunk-A4BMJM77.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTask
5
- } from "./chunk-XU5P23GN.js";
5
+ } from "./chunk-QLDPRILK.js";
6
6
  import {
7
7
  resolveActiveTeamName
8
8
  } from "./chunk-LD2XBG6Z.js";
@@ -11,7 +11,7 @@ import {
11
11
  BaseToolInvocation,
12
12
  ToolDisplayNames,
13
13
  ToolNames
14
- } from "./chunk-TOEGRAVX.js";
14
+ } from "./chunk-BX5YO7UW.js";
15
15
  import {
16
16
  init_esbuild_shims
17
17
  } from "./chunk-A4BMJM77.js";