@qwen-code/qwen-code 0.19.3 → 0.19.4

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 (305) hide show
  1. package/bundled/loop/SKILL.md +22 -3
  2. package/bundled/loop/SKILL.test.ts +20 -0
  3. package/bundled/loop/autonomous-loop.test.ts +59 -0
  4. package/bundled/loop/autonomous-loop.ts +102 -0
  5. package/bundled/loop/loop-task-file.test.ts +1064 -0
  6. package/bundled/loop/loop-task-file.ts +404 -0
  7. package/bundled/loop/loop-tick-resolver.test.ts +906 -0
  8. package/bundled/loop/loop-tick-resolver.ts +416 -0
  9. package/bundled/qc-helper/SKILL.md +12 -5
  10. package/bundled/qc-helper/docs/configuration/auth.md +1 -1
  11. package/bundled/qc-helper/docs/configuration/settings.md +40 -26
  12. package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
  13. package/bundled/qc-helper/docs/features/auto-mode.md +40 -0
  14. package/bundled/qc-helper/docs/features/channels/overview.md +81 -18
  15. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
  16. package/bundled/qc-helper/docs/features/code-review.md +17 -61
  17. package/bundled/qc-helper/docs/features/commands.md +6 -6
  18. package/bundled/qc-helper/docs/features/hooks.md +6 -1
  19. package/bundled/qc-helper/docs/features/mcp.md +3 -1
  20. package/bundled/qc-helper/docs/features/memory.md +1 -1
  21. package/bundled/qc-helper/docs/features/scheduled-tasks.md +10 -0
  22. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  23. package/bundled/qc-helper/docs/ide-integration/ide-integration.md +4 -4
  24. package/bundled/qc-helper/docs/qwen-serve.md +19 -0
  25. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -0
  26. package/bundled/review/DESIGN.md +21 -26
  27. package/bundled/review/SKILL.md +45 -129
  28. package/chunks/MaxSizedBox-ERTNFI22.js +68 -0
  29. package/chunks/{StandaloneSessionPicker-Z52JTYST.js → StandaloneSessionPicker-Y5NGRLRY.js} +48 -42
  30. package/chunks/{acpAgent-7RZUOWOM.js → acpAgent-UMN6OYTR.js} +1319 -361
  31. package/chunks/{agent-4FG7WTHJ.js → agent-56DZU4ZU.js} +30 -25
  32. package/chunks/agent-headless-SR7N2IJG.js +61 -0
  33. package/chunks/{anthropicContentGenerator-PFITVL7Y.js → anthropicContentGenerator-5OZFO6WQ.js} +11 -8
  34. package/chunks/{artifact-tool-D2X7G3C3.js → artifact-tool-JVZMHA4B.js} +3 -3
  35. package/chunks/{askUserQuestion-UGETICJQ.js → askUserQuestion-CMJZ2F3D.js} +2 -2
  36. package/chunks/bridge-AUHNFOUS.js +72 -0
  37. package/chunks/{ca-IUFWESZL.js → ca-RYOETBUW.js} +9 -9
  38. package/chunks/channel-worker-supervisor-A74FV522.js +308 -0
  39. package/chunks/{chunk-T4T2FNV4.js → chunk-2X2JUE47.js} +2 -2
  40. package/chunks/{chunk-BX5YO7UW.js → chunk-4VZH35PN.js} +540 -370
  41. package/chunks/{chunk-M2U5NM24.js → chunk-54YZOP7P.js} +309 -72
  42. package/chunks/chunk-5P5XGNYH.js +93 -0
  43. package/chunks/{chunk-QWFNTRH4.js → chunk-6AQR7732.js} +1 -1
  44. package/chunks/{chunk-HZT4UCFB.js → chunk-6CIIP6OE.js} +4 -4
  45. package/chunks/{chunk-ADCIHOQZ.js → chunk-6TLY5W3B.js} +16 -8
  46. package/chunks/{chunk-BXSHL2SF.js → chunk-73H73ASU.js} +1 -1
  47. package/chunks/{chunk-3TV3HUWZ.js → chunk-75X2VLSH.js} +60 -30
  48. package/chunks/{chunk-6V4NZFUS.js → chunk-7KPI4LAI.js} +5 -5
  49. package/chunks/{chunk-PDE7CSDS.js → chunk-7VPC7D7O.js} +2 -2
  50. package/chunks/chunk-AHNXYU4O.js +24 -0
  51. package/chunks/{chunk-UX4SGCGN.js → chunk-AVQDCKNF.js} +96 -22
  52. package/chunks/{chunk-HYCC3XM3.js → chunk-B236XPGF.js} +1 -1
  53. package/chunks/{chunk-N4EJFBN5.js → chunk-B7KGXIPZ.js} +419 -262
  54. package/chunks/{chunk-YAINVQ3Q.js → chunk-BFG6OZN7.js} +17392 -16335
  55. package/chunks/{chunk-5DWXLGOM.js → chunk-BJBWRCSK.js} +1 -1
  56. package/chunks/{chunk-BTLJ2MF5.js → chunk-BNJLLAQ7.js} +3 -3
  57. package/chunks/{chunk-UYT3MWEB.js → chunk-BQNJBEUA.js} +16 -2
  58. package/chunks/{chunk-SKQZZVAV.js → chunk-BZHLWC6T.js} +2 -2
  59. package/chunks/{chunk-HPZTOP4I.js → chunk-C2IHHGBZ.js} +131 -21
  60. package/chunks/chunk-CG7SVARK.js +367 -0
  61. package/chunks/{chunk-CNLEDYE3.js → chunk-CS5XYDBO.js} +5 -5
  62. package/chunks/{chunk-O75BHFQW.js → chunk-CUGEBAKG.js} +2 -2
  63. package/chunks/{chunk-U3KSMM7G.js → chunk-D5KISTLW.js} +339 -383
  64. package/chunks/{chunk-STUWFKGD.js → chunk-DQ74W65K.js} +431 -535
  65. package/chunks/{chunk-VVLOGDB6.js → chunk-DX3TKXNT.js} +2 -2
  66. package/chunks/chunk-E5A7LHNN.js +51 -0
  67. package/chunks/{chunk-3PJXIDKI.js → chunk-E6US47KI.js} +3 -27
  68. package/chunks/chunk-EDAGQADF.js +21 -0
  69. package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
  70. package/chunks/{chunk-4QK3O43S.js → chunk-FNLXLI4I.js} +4 -4
  71. package/chunks/{chunk-I2LYBGNI.js → chunk-FYKX6XOT.js} +1 -1
  72. package/chunks/{chunk-QLDPRILK.js → chunk-G7OQ3RFJ.js} +3 -3
  73. package/chunks/{chunk-R2BXK7SX.js → chunk-GHOTR7HL.js} +6 -1
  74. package/chunks/{chunk-L7OKCI7T.js → chunk-GICCHL2Q.js} +15 -1
  75. package/chunks/{chunk-KMGMKW5Q.js → chunk-GLPV75ES.js} +9 -3
  76. package/chunks/{chunk-LD2XBG6Z.js → chunk-GO6LNQXT.js} +1 -39
  77. package/chunks/chunk-HI55Z6PR.js +3523 -0
  78. package/chunks/{chunk-QNKBEJO2.js → chunk-HJDF3ZVU.js} +2776 -1289
  79. package/chunks/{chunk-JJXWTVSK.js → chunk-HRZB5CSC.js} +34 -1
  80. package/chunks/{chunk-I4H7PRWQ.js → chunk-HTWHAN44.js} +1 -1
  81. package/chunks/{chunk-EJYJYJZ2.js → chunk-IRJWHZWU.js} +3 -70
  82. package/chunks/{chunk-CKQA6AWF.js → chunk-J3F7X3LW.js} +1 -1
  83. package/chunks/{chunk-QI7GOGJR.js → chunk-KKQWC6WS.js} +1 -1
  84. package/chunks/{chunk-VBZ452JT.js → chunk-KVPFPC4J.js} +494 -114
  85. package/chunks/{chunk-NDOC6M5S.js → chunk-L7QPM2YD.js} +2 -2
  86. package/chunks/{chunk-SLNKLLEO.js → chunk-L7VH7HQA.js} +12 -8
  87. package/chunks/{chunk-BVSVIN45.js → chunk-LKWAVAB5.js} +3 -3
  88. package/chunks/{chunk-ZP6UKOPB.js → chunk-LWGLBVWA.js} +1 -1
  89. package/chunks/{chunk-SBBN4BWR.js → chunk-MEQWZGK5.js} +1 -1
  90. package/chunks/{chunk-FKAVULLM.js → chunk-MKHC4BYZ.js} +58 -10
  91. package/chunks/{chunk-UFLGERMB.js → chunk-MNDTD5E5.js} +178 -124
  92. package/chunks/{chunk-RD6YJJJ6.js → chunk-MOUXUCXQ.js} +1 -1
  93. package/chunks/{chunk-EDMZZFDU.js → chunk-MVZXZWGT.js} +905 -795
  94. package/chunks/chunk-MX2YXRER.js +44 -0
  95. package/chunks/{chunk-JVHEVCAU.js → chunk-ND25GXEU.js} +23 -6
  96. package/chunks/chunk-NIOPRZNN.js +27 -0
  97. package/chunks/{chunk-DDMOU62Q.js → chunk-NPQWQYU6.js} +1 -1
  98. package/chunks/{chunk-PR32FRT6.js → chunk-OAFUMTWW.js} +3 -3
  99. package/chunks/chunk-OJCECIJA.js +238 -0
  100. package/chunks/{chunk-GGBIN5K7.js → chunk-PIYV6COW.js} +1 -1
  101. package/chunks/{chunk-CF6BB3LT.js → chunk-PPFWEV7G.js} +10 -1
  102. package/chunks/{chunk-4LUZAKMK.js → chunk-Q7VHIRDD.js} +1 -1
  103. package/chunks/{chunk-ODLIHNOY.js → chunk-QAFQLTXG.js} +1 -1
  104. package/chunks/{chunk-Y6YMRS3U.js → chunk-QMIND2AS.js} +3 -3
  105. package/chunks/{chunk-XJYUPHRC.js → chunk-QOMAHFYI.js} +3 -3
  106. package/chunks/{chunk-J37FGIOA.js → chunk-QXPI7FEC.js} +38 -4
  107. package/chunks/chunk-RM3PGSGL.js +66 -0
  108. package/chunks/chunk-RNBYOUGV.js +42 -0
  109. package/chunks/chunk-S5EQPDTM.js +91 -0
  110. package/chunks/chunk-SEZC2725.js +36 -0
  111. package/chunks/{chunk-FNJ7BDPH.js → chunk-SFN4TEHY.js} +10 -7
  112. package/chunks/{chunk-O2VBQ3Y2.js → chunk-SJBIFVD2.js} +2 -2
  113. package/chunks/chunk-SYCJMSIJ.js +82 -0
  114. package/chunks/{chunk-JE5FVRPC.js → chunk-T22H4V4R.js} +48 -23
  115. package/chunks/{chunk-3227DZO4.js → chunk-T42ACHFI.js} +1 -1
  116. package/chunks/{chunk-UO5GVXQE.js → chunk-TENOUWY2.js} +3 -3
  117. package/chunks/{chunk-JOLIREYR.js → chunk-TOAUDIS7.js} +1 -1
  118. package/chunks/{chunk-J7FA27RO.js → chunk-TTFNVEO5.js} +3 -3
  119. package/chunks/{chunk-S7AKE7HL.js → chunk-UANCYOOQ.js} +63 -9
  120. package/chunks/{chunk-BUUQ5HPX.js → chunk-UQFP2FEF.js} +1 -1
  121. package/chunks/{chunk-R5OP2ATH.js → chunk-UQYOMM6J.js} +11 -11
  122. package/chunks/{chunk-J33ZR6OJ.js → chunk-UT5JU5DJ.js} +16 -16
  123. package/chunks/{chunk-QE6KJYLT.js → chunk-VKGG724L.js} +122 -25
  124. package/chunks/{chunk-SMXULRAN.js → chunk-VXGPYF7U.js} +1 -1
  125. package/chunks/{chunk-MNF6S5PR.js → chunk-W2ZOAX7F.js} +4 -4
  126. package/chunks/{chunk-GT2FGICD.js → chunk-W6X4FGWX.js} +1 -1
  127. package/chunks/{chunk-SMYQZVZ3.js → chunk-XCUFHOAD.js} +1 -1
  128. package/chunks/{chunk-K5XU6E4T.js → chunk-XKSCTXPK.js} +2 -2
  129. package/chunks/{chunk-FXKVLFFY.js → chunk-YBDZ63KI.js} +3 -3
  130. package/chunks/{chunk-BKXBARJZ.js → chunk-YPCPZSZB.js} +1 -1
  131. package/chunks/chunk-YTFBURQD.js +313 -0
  132. package/chunks/{chunk-NL4C3H6C.js → chunk-YXK4GPYO.js} +1 -1
  133. package/chunks/{chunk-F3ZYSEY6.js → chunk-ZJP5T7IA.js} +3 -3
  134. package/chunks/{chunk-RYLJU2DY.js → chunk-ZN5T4BHI.js} +1 -1
  135. package/chunks/{chunk-RRFZXMYP.js → chunk-ZXCVPMIK.js} +553 -138
  136. package/chunks/{computer-use-JGB36FDW.js → computer-use-VWN5HH6A.js} +33 -28
  137. package/chunks/contextCommand-DFFG5KDJ.js +66 -0
  138. package/chunks/{cron-create-SKEY55RG.js → cron-create-CSSWJ67I.js} +4 -4
  139. package/chunks/{cron-delete-I3NAT32Z.js → cron-delete-E56CFQ7A.js} +4 -4
  140. package/chunks/{cron-list-6XRRL6TH.js → cron-list-BKSINY6Y.js} +4 -4
  141. package/chunks/daemon-5T6IHWJV.js +8430 -0
  142. package/chunks/daemon-status-provider-V5UY7O7J.js +70 -0
  143. package/chunks/{de-EOW5PVHF.js → de-HB5NJXGB.js} +9 -9
  144. package/chunks/{dist-NHEYYB2B.js → dist-2HDL5SHQ.js} +2 -2
  145. package/chunks/{dist-663NZ6MI.js → dist-B7SSDVWT.js} +116 -11
  146. package/chunks/{dist-PQPZ5Q4N.js → dist-BL3SL665.js} +20 -9
  147. package/chunks/{dist-J37VXPLD.js → dist-TAVAGZU6.js} +40 -15
  148. package/chunks/{dist-LB6OGPVM.js → dist-XBOVZ3R5.js} +26 -5
  149. package/chunks/{earlyInputCapture-44RISVVJ.js → earlyInputCapture-VVYU4FDO.js} +31 -26
  150. package/chunks/{edit-NN6GM5DT.js → edit-F35PTMBA.js} +35 -29
  151. package/chunks/{en-HPWEJBTR.js → en-FZREZFPO.js} +30 -10
  152. package/chunks/{enter-worktree-PB3O2C7D.js → enter-worktree-3DIW7EGJ.js} +30 -25
  153. package/chunks/{enterPlanMode-YQFNNSUA.js → enterPlanMode-QNXT77KP.js} +40 -25
  154. package/chunks/{errors-LS7XU5DZ.js → errors-M53YG76R.js} +32 -27
  155. package/chunks/{exit-worktree-E2FTNSBK.js → exit-worktree-BSDWNWHZ.js} +30 -25
  156. package/chunks/{exitPlanMode-GLYK2BUB.js → exitPlanMode-EL7AY327.js} +54 -33
  157. package/chunks/{fast-path-WQ6M7LI7.js → fast-path-DUCSMUFW.js} +30 -13
  158. package/chunks/{fast-path-settings-OAGU3X5H.js → fast-path-settings-UQLRFDQP.js} +2 -2
  159. package/chunks/{fr-BN5NKSAC.js → fr-XY3NQFCM.js} +9 -9
  160. package/chunks/{gemini-2YFLVA2M.js → gemini-F3IERB37.js} +80 -67
  161. package/chunks/{geminiContentGenerator-XV6SV6CD.js → geminiContentGenerator-6OULAKFQ.js} +4 -4
  162. package/chunks/{glob-2H6CDDMK.js → glob-ZMLFTD4T.js} +30 -25
  163. package/chunks/{grep-VXIUXM3C.js → grep-H5X66EI7.js} +30 -25
  164. package/chunks/initializer-LEOT2OLH.js +66 -0
  165. package/chunks/{ja-7DEUB2TS.js → ja-J7YAG7SA.js} +9 -9
  166. package/chunks/{keychain-token-storage-YLMDLKXT.js → keychain-token-storage-GPAKRDKQ.js} +2 -2
  167. package/chunks/list-M3DKXML6.js +70 -0
  168. package/chunks/loadedSettingsAdapter-OKMQFGGG.js +65 -0
  169. package/chunks/{loop-wakeup-CITGGQHA.js → loop-wakeup-FPBAVVPR.js} +5 -5
  170. package/chunks/{ls-R5WP4BGZ.js → ls-UGWQXPTY.js} +4 -4
  171. package/chunks/{lsp-GSICJMMW.js → lsp-24WV7NXB.js} +2 -2
  172. package/chunks/{monitor-HKLRS2HQ.js → monitor-ARL5P45R.js} +32 -26
  173. package/chunks/nonInteractiveCli-NUVLF3YR.js +108 -0
  174. package/chunks/{notebook-edit-Y6SKSGTT.js → notebook-edit-ANTZ2DDY.js} +31 -26
  175. package/chunks/{openaiContentGenerator-J7G2FYJT.js → openaiContentGenerator-TFGMKGHN.js} +15 -13
  176. package/chunks/pidfile-AWTL4C63.js +72 -0
  177. package/chunks/{pt-TNZRNLQB.js → pt-6RTAA6SS.js} +9 -9
  178. package/chunks/{qwenContentGenerator-5XIEM5GV.js → qwenContentGenerator-6QWAYTWS.js} +32 -27
  179. package/chunks/{qwenOAuth2-AG3PFFLZ.js → qwenOAuth2-LWLA6MQG.js} +5 -4
  180. package/chunks/{read-file-J7D552ZJ.js → read-file-EJY73XQ3.js} +11 -10
  181. package/chunks/{read-mcp-resource-DQQW7H7T.js → read-mcp-resource-NCBTPP7X.js} +2 -2
  182. package/chunks/ripGrep-HC4SA6CQ.js +59 -0
  183. package/chunks/{ru-NIAUBKCN.js → ru-AUBGJ2C4.js} +9 -9
  184. package/chunks/{run-qwen-serve-SGEEVMXD.js → run-qwen-serve-AGLZ642J.js} +454 -94
  185. package/chunks/{scheduler-7CQI3S4Q.js → scheduler-TURO7NGY.js} +30 -25
  186. package/chunks/{send-message-EE4TWKVU.js → send-message-3S2NYS3O.js} +6 -4
  187. package/chunks/serve-5DAMOIDW.js +70 -0
  188. package/chunks/{server-4QMUWXPW.js → server-4AGEK2HC.js} +4098 -1173
  189. package/chunks/{session-NRO7UFOY.js → session-7ZOQUC4Y.js} +204 -64
  190. package/chunks/{settings-SGWRDQSC.js → settings-DR4V6L5Y.js} +34 -29
  191. package/chunks/{shell-62ANGIHL.js → shell-H5WFKUXH.js} +30 -25
  192. package/chunks/{skill-VWAQAWW6.js → skill-ANHU5ZCR.js} +13 -12
  193. package/chunks/spawnChannel-VN5LJV7Z.js +68 -0
  194. package/chunks/{src-KUV5J5Q2.js → src-OVZLTVVM.js} +114 -30
  195. package/chunks/{startInteractiveUI-6EYJN3JV.js → startInteractiveUI-OA22V32P.js} +15970 -15430
  196. package/chunks/{syntheticOutput-T5YHQ6S2.js → syntheticOutput-SV7GBHZ5.js} +3 -3
  197. package/chunks/{task-create-BLY7RHXX.js → task-create-W2H2UJCH.js} +8 -7
  198. package/chunks/{task-list-3QUYNVYR.js → task-list-THBOPV4G.js} +7 -6
  199. package/chunks/{task-stop-U4RATK2V.js → task-stop-33FVCNCJ.js} +2 -2
  200. package/chunks/{task-update-U54O7KJX.js → task-update-LVFQLXEI.js} +8 -7
  201. package/chunks/{team-create-LPOGCPM7.js → team-create-OYL5CAQO.js} +30 -25
  202. package/chunks/{team-delete-LKBYPASD.js → team-delete-NTUQ25UY.js} +7 -6
  203. package/chunks/theme-manager-XCMPF2SI.js +63 -0
  204. package/chunks/{todoWrite-OYXKTVYN.js → todoWrite-SEPO2RI3.js} +4 -4
  205. package/chunks/{tool-search-YPUFJ3ZQ.js → tool-search-YXW55X6Z.js} +36 -11
  206. package/chunks/{trustedFolders-5B24TMEA.js → trustedFolders-TEPGM5YL.js} +31 -26
  207. package/chunks/{validateNonInterActiveAuth-BTDTYOVT.js → validateNonInterActiveAuth-OQIS7WUE.js} +65 -55
  208. package/chunks/{web-fetch-EEB5LZYU.js → web-fetch-OE7LHURA.js} +5 -4
  209. package/chunks/{workflow-LAWIW5LI.js → workflow-RTUWORAP.js} +67 -39
  210. package/chunks/workspace-providers-status-DM2XANVB.js +67 -0
  211. package/chunks/workspace-service-VKBI2KZD.js +77 -0
  212. package/chunks/{write-file-PCV226DJ.js → write-file-WGALQ53L.js} +35 -30
  213. package/chunks/{zh-TW-TR3XYGE5.js → zh-TW-6GIKXEAN.js} +30 -10
  214. package/chunks/{zh-5EUYXASN.js → zh-V3B4TFWL.js} +30 -10
  215. package/cli.js +6 -6
  216. package/locales/ca.js +13 -13
  217. package/locales/de.js +13 -13
  218. package/locales/en.js +49 -15
  219. package/locales/fr.js +13 -14
  220. package/locales/ja.js +13 -14
  221. package/locales/pt.js +13 -13
  222. package/locales/ru.js +13 -13
  223. package/locales/zh-TW.js +47 -14
  224. package/locales/zh.js +47 -14
  225. package/node_modules/@qwen-code/audio-capture/package.json +1 -1
  226. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  227. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  228. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  229. package/package.json +15 -6
  230. package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
  231. package/postinstall.js +50 -0
  232. package/web-shell/assets/{arc-DA7r8Ueo.js → arc-Det5Ccum.js} +1 -1
  233. package/web-shell/assets/{architectureDiagram-3BPJPVTR-ZDUxPtZ2.js → architectureDiagram-3BPJPVTR-DqNWVFpl.js} +1 -1
  234. package/web-shell/assets/{blockDiagram-GPEHLZMM-vrtOf1kJ.js → blockDiagram-GPEHLZMM-CYl7tYBi.js} +1 -1
  235. package/web-shell/assets/{c4Diagram-AAUBKEIU-BHFjzIi4.js → c4Diagram-AAUBKEIU-DaAEi0NQ.js} +1 -1
  236. package/web-shell/assets/channel-Bm0bFauD.js +1 -0
  237. package/web-shell/assets/{chunk-2J33WTMH-mdeQVz59.js → chunk-2J33WTMH-Df2CDEE2.js} +1 -1
  238. package/web-shell/assets/{chunk-4BX2VUAB-BkKMlwBX.js → chunk-4BX2VUAB-DNBFcyL2.js} +1 -1
  239. package/web-shell/assets/{chunk-55IACEB6-B7bnXNfu.js → chunk-55IACEB6-BKjF-0HI.js} +1 -1
  240. package/web-shell/assets/{chunk-727SXJPM-DGz8Mm6i.js → chunk-727SXJPM-DYwAwfIM.js} +1 -1
  241. package/web-shell/assets/{chunk-AQP2D5EJ-BQAydUNk.js → chunk-AQP2D5EJ-C6FswLqy.js} +1 -1
  242. package/web-shell/assets/{chunk-FMBD7UC4-GHr2LN_p.js → chunk-FMBD7UC4-DRWAcZSY.js} +1 -1
  243. package/web-shell/assets/{chunk-ND2GUHAM-7R91lnUx.js → chunk-ND2GUHAM-AoL16mNR.js} +1 -1
  244. package/web-shell/assets/{chunk-QZHKN3VN-aTJD3lSQ.js → chunk-QZHKN3VN-a8PtLMck.js} +1 -1
  245. package/web-shell/assets/classDiagram-4FO5ZUOK--NgUfb55.js +1 -0
  246. package/web-shell/assets/classDiagram-v2-Q7XG4LA2--NgUfb55.js +1 -0
  247. package/web-shell/assets/{cose-bilkent-S5V4N54A-BTf8t1RL.js → cose-bilkent-S5V4N54A-C4Aeu5qf.js} +1 -1
  248. package/web-shell/assets/{dagre-BM42HDAG-_sgp3WuA.js → dagre-BM42HDAG-BOulamjo.js} +1 -1
  249. package/web-shell/assets/{diagram-2AECGRRQ-CROtRy1w.js → diagram-2AECGRRQ-D1wt2ykO.js} +1 -1
  250. package/web-shell/assets/{diagram-5GNKFQAL-BqGRzwSc.js → diagram-5GNKFQAL-BRseus-O.js} +1 -1
  251. package/web-shell/assets/{diagram-KO2AKTUF-CMrcEtA7.js → diagram-KO2AKTUF-XSMkNzpZ.js} +1 -1
  252. package/web-shell/assets/{diagram-LMA3HP47-BRydGNW5.js → diagram-LMA3HP47-21KNLqoi.js} +1 -1
  253. package/web-shell/assets/{diagram-OG6HWLK6-D0ilgNjV.js → diagram-OG6HWLK6-DnUI8F5G.js} +1 -1
  254. package/web-shell/assets/{erDiagram-TEJ5UH35-2lnQeJUM.js → erDiagram-TEJ5UH35-BVSOMuM2.js} +1 -1
  255. package/web-shell/assets/{flowDiagram-I6XJVG4X-C_ZMdQiC.js → flowDiagram-I6XJVG4X-fYtDPJsW.js} +1 -1
  256. package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dw9V_Ny0.js → ganttDiagram-6RSMTGT7-CmRXosW_.js} +1 -1
  257. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-HDXI-F1B.js → gitGraphDiagram-PVQCEYII-DPrmySxO.js} +1 -1
  258. package/web-shell/assets/index-BpKnmyFV.js +717 -0
  259. package/web-shell/assets/index-fLrtxpOG.css +5 -0
  260. package/web-shell/assets/{infoDiagram-5YYISTIA-CuB8Ebua.js → infoDiagram-5YYISTIA-x3VbEuCV.js} +1 -1
  261. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D_tyhVwh.js → ishikawaDiagram-YF4QCWOH-SmitHRMC.js} +1 -1
  262. package/web-shell/assets/{journeyDiagram-JHISSGLW-CgCwJQNU.js → journeyDiagram-JHISSGLW-BxvA551S.js} +1 -1
  263. package/web-shell/assets/{kanban-definition-UN3LZRKU-PZUtcbPx.js → kanban-definition-UN3LZRKU-DNHC16jY.js} +1 -1
  264. package/web-shell/assets/{linear-CZqRdJIU.js → linear-CQ6irBL9.js} +1 -1
  265. package/web-shell/assets/{mermaid.core-CPW_4UEF.js → mermaid.core-DtB6NO1e.js} +72 -72
  266. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D_Y75ID7.js → mindmap-definition-RKZ34NQL-QKMAgV2v.js} +1 -1
  267. package/web-shell/assets/{pieDiagram-4H26LBE5-Q4dTyLeF.js → pieDiagram-4H26LBE5-bvb6dGn6.js} +1 -1
  268. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-ckw329Ft.js → quadrantDiagram-W4KKPZXB-DLgdlG4D.js} +1 -1
  269. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DbVDm4It.js → requirementDiagram-4Y6WPE33-2M9YH4GF.js} +1 -1
  270. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CHuZ_ecH.js → sankeyDiagram-5OEKKPKP-DzwfclTH.js} +1 -1
  271. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DU2YSpq-.js → sequenceDiagram-3UESZ5HK-BvPmTuy2.js} +1 -1
  272. package/web-shell/assets/{stateDiagram-AJRCARHV-CA9PEBUo.js → stateDiagram-AJRCARHV-BjwUmrJF.js} +1 -1
  273. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C4L8zXeL.js +1 -0
  274. package/web-shell/assets/{timeline-definition-PNZ67QCA-Bhlo4WVc.js → timeline-definition-PNZ67QCA-CXzS6qqz.js} +1 -1
  275. package/web-shell/assets/{vennDiagram-CIIHVFJN-6xtPLsyl.js → vennDiagram-CIIHVFJN-yRSolF5B.js} +1 -1
  276. package/web-shell/assets/{wardley-L42UT6IY-3eozmXPf.js → wardley-L42UT6IY-ClLJjHPG.js} +1 -1
  277. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BOn6hKss.js → wardleyDiagram-YWT4CUSO-VIa6t2p2.js} +1 -1
  278. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BsP4-I_y.js → xychartDiagram-2RQKCTM6-CtmrkezW.js} +1 -1
  279. package/web-shell/index.html +18 -2
  280. package/chunks/MaxSizedBox-QNF3EIGU.js +0 -63
  281. package/chunks/agent-headless-RQ5BTX3G.js +0 -56
  282. package/chunks/bridge-JL2PMCIW.js +0 -66
  283. package/chunks/chunk-5GOVVXEV.js +0 -73
  284. package/chunks/chunk-BC3C4F3Q.js +0 -40
  285. package/chunks/chunk-BW4KCQFD.js +0 -1103
  286. package/chunks/chunk-RKIZXJMB.js +0 -13
  287. package/chunks/contextCommand-WYU6OQ2F.js +0 -61
  288. package/chunks/daemon-status-provider-HH2EC5FI.js +0 -65
  289. package/chunks/headlessSafetyWarnings-TBE35GJ4.js +0 -55
  290. package/chunks/initializer-2Y7SLOKV.js +0 -61
  291. package/chunks/list-ZAFHZ7OS.js +0 -65
  292. package/chunks/loadedSettingsAdapter-6KJXD6M3.js +0 -60
  293. package/chunks/nonInteractiveCli-5W4GIZQM.js +0 -96
  294. package/chunks/ripGrep-IEIFIWP4.js +0 -54
  295. package/chunks/serve-V6GVZR6U.js +0 -65
  296. package/chunks/spawnChannel-3VHW5EPY.js +0 -63
  297. package/chunks/theme-manager-LYLGAERF.js +0 -58
  298. package/chunks/workspace-providers-status-PIAFVYHA.js +0 -62
  299. package/chunks/workspace-service-YAIOD4HG.js +0 -71
  300. package/web-shell/assets/channel-iRo68q4Q.js +0 -1
  301. package/web-shell/assets/classDiagram-4FO5ZUOK-iHF24a8X.js +0 -1
  302. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-iHF24a8X.js +0 -1
  303. package/web-shell/assets/index-CHmzAWys.css +0 -5
  304. package/web-shell/assets/index-w6GTOHh1.js +0 -713
  305. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-t1LRI0oY.js +0 -1
@@ -0,0 +1,42 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-A4BMJM77.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/cli/src/serve/loopback-binds.ts
11
+ init_esbuild_shims();
12
+ var LOOPBACK_BINDS = /* @__PURE__ */ new Set([
13
+ "127.0.0.1",
14
+ "localhost",
15
+ "::1",
16
+ "[::1]"
17
+ ]);
18
+ function isIpv4Loopback(hostname) {
19
+ const octets = hostname.split(".");
20
+ if (octets.length !== 4) return false;
21
+ const [first, ...rest] = octets;
22
+ return first === "127" && rest.every((octet) => {
23
+ if (!/^\d+$/.test(octet)) return false;
24
+ const value = Number(octet);
25
+ return value >= 0 && value <= 255;
26
+ });
27
+ }
28
+ __name(isIpv4Loopback, "isIpv4Loopback");
29
+ function isLoopbackBind(hostname) {
30
+ const normalized = hostname.toLowerCase();
31
+ return LOOPBACK_BINDS.has(normalized) || isIpv4Loopback(normalized);
32
+ }
33
+ __name(isLoopbackBind, "isLoopbackBind");
34
+
35
+ export {
36
+ isLoopbackBind
37
+ };
38
+ /**
39
+ * @license
40
+ * Copyright 2025 Qwen Team
41
+ * SPDX-License-Identifier: Apache-2.0
42
+ */
@@ -0,0 +1,91 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ isTeammate
5
+ } from "./chunk-GO6LNQXT.js";
6
+ import {
7
+ ToolNames
8
+ } from "./chunk-4VZH35PN.js";
9
+ import {
10
+ init_esbuild_shims
11
+ } from "./chunk-A4BMJM77.js";
12
+ import {
13
+ __name
14
+ } from "./chunk-J2S4EL5Y.js";
15
+
16
+ // packages/core/src/agents/runtime/agent-context.ts
17
+ init_esbuild_shims();
18
+ import { AsyncLocalStorage } from "node:async_hooks";
19
+ var storage = new AsyncLocalStorage();
20
+ function runWithAgentContext(agentId, fn) {
21
+ const current = storage.getStore() ?? {};
22
+ const depth = (current.depth ?? -1) + 1;
23
+ return storage.run({ ...current, agentId, depth }, fn);
24
+ }
25
+ __name(runWithAgentContext, "runWithAgentContext");
26
+ function runWithRuntimeContentGenerator(view, fn) {
27
+ const current = storage.getStore() ?? {};
28
+ return storage.run({ ...current, runtimeView: view }, fn);
29
+ }
30
+ __name(runWithRuntimeContentGenerator, "runWithRuntimeContentGenerator");
31
+ function getCurrentAgentId() {
32
+ return storage.getStore()?.agentId ?? null;
33
+ }
34
+ __name(getCurrentAgentId, "getCurrentAgentId");
35
+ function getCurrentAgentDepth() {
36
+ return storage.getStore()?.depth ?? 0;
37
+ }
38
+ __name(getCurrentAgentDepth, "getCurrentAgentDepth");
39
+ function getRuntimeContentGenerator() {
40
+ return storage.getStore()?.runtimeView;
41
+ }
42
+ __name(getRuntimeContentGenerator, "getRuntimeContentGenerator");
43
+
44
+ // packages/core/src/agents/runtime/subagent-plan-tool-policy.ts
45
+ init_esbuild_shims();
46
+ var SUBAGENT_PLAN_LIFECYCLE_TOOLS = /* @__PURE__ */ new Set([
47
+ ToolNames.ENTER_PLAN_MODE,
48
+ ToolNames.EXIT_PLAN_MODE
49
+ ]);
50
+ function isSubagentLikeExecutionContext() {
51
+ return getCurrentAgentId() !== null || isTeammate();
52
+ }
53
+ __name(isSubagentLikeExecutionContext, "isSubagentLikeExecutionContext");
54
+ function isPlanLifecycleToolUnavailableInSubagent(toolName) {
55
+ return isSubagentLikeExecutionContext() && SUBAGENT_PLAN_LIFECYCLE_TOOLS.has(toolName);
56
+ }
57
+ __name(isPlanLifecycleToolUnavailableInSubagent, "isPlanLifecycleToolUnavailableInSubagent");
58
+ function getSubagentPlanToolUnavailableMessage(toolName) {
59
+ return `${toolName} is not available inside subagents or team agents. Plan mode is owned by the caller/main session; return your plan, findings, or constraints to the caller in your normal response instead of entering or exiting plan mode.`;
60
+ }
61
+ __name(getSubagentPlanToolUnavailableMessage, "getSubagentPlanToolUnavailableMessage");
62
+ function buildSubagentPlanToolBlockedResult(toolName, logTag, logger) {
63
+ const message = getSubagentPlanToolUnavailableMessage(toolName);
64
+ logger.warn(
65
+ `[${logTag}] Blocked plan lifecycle tool call from subagent: ${toolName}`
66
+ );
67
+ return {
68
+ llmContent: message,
69
+ returnDisplay: message,
70
+ error: { message }
71
+ };
72
+ }
73
+ __name(buildSubagentPlanToolBlockedResult, "buildSubagentPlanToolBlockedResult");
74
+
75
+ export {
76
+ runWithAgentContext,
77
+ runWithRuntimeContentGenerator,
78
+ getCurrentAgentId,
79
+ getCurrentAgentDepth,
80
+ getRuntimeContentGenerator,
81
+ SUBAGENT_PLAN_LIFECYCLE_TOOLS,
82
+ isSubagentLikeExecutionContext,
83
+ isPlanLifecycleToolUnavailableInSubagent,
84
+ getSubagentPlanToolUnavailableMessage,
85
+ buildSubagentPlanToolBlockedResult
86
+ };
87
+ /**
88
+ * @license
89
+ * Copyright 2025 Qwen
90
+ * SPDX-License-Identifier: Apache-2.0
91
+ */
@@ -0,0 +1,36 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-A4BMJM77.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/acp-bridge/src/workspacePaths.ts
11
+ init_esbuild_shims();
12
+ import { realpathSync } from "node:fs";
13
+ import * as path from "node:path";
14
+ function canonicalizeWorkspace(p) {
15
+ const resolved = path.resolve(p);
16
+ try {
17
+ return realpathSync.native(resolved);
18
+ } catch (err) {
19
+ if (err && typeof err === "object" && err.code === "ENOENT") {
20
+ return resolved;
21
+ }
22
+ throw err;
23
+ }
24
+ }
25
+ __name(canonicalizeWorkspace, "canonicalizeWorkspace");
26
+ var MAX_WORKSPACE_PATH_LENGTH = 4096;
27
+
28
+ export {
29
+ canonicalizeWorkspace,
30
+ MAX_WORKSPACE_PATH_LENGTH
31
+ };
32
+ /**
33
+ * @license
34
+ * Copyright 2025 Qwen Team
35
+ * SPDX-License-Identifier: Apache-2.0
36
+ */
@@ -2,24 +2,24 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-R5OP2ATH.js";
5
+ } from "./chunk-UQYOMM6J.js";
6
6
  import {
7
7
  computeThresholds,
8
8
  getCoreSystemPrompt
9
- } from "./chunk-YAINVQ3Q.js";
9
+ } from "./chunk-BFG6OZN7.js";
10
10
  import {
11
11
  buildSkillLlmContent
12
- } from "./chunk-HYCC3XM3.js";
12
+ } from "./chunk-B236XPGF.js";
13
13
  import {
14
14
  DiscoveredMCPTool,
15
15
  uiTelemetryService
16
- } from "./chunk-QNKBEJO2.js";
16
+ } from "./chunk-HJDF3ZVU.js";
17
17
  import {
18
18
  ToolNames
19
- } from "./chunk-BX5YO7UW.js";
19
+ } from "./chunk-4VZH35PN.js";
20
20
  import {
21
21
  DEFAULT_TOKEN_LIMIT
22
- } from "./chunk-U3KSMM7G.js";
22
+ } from "./chunk-YTFBURQD.js";
23
23
  import {
24
24
  init_esbuild_shims
25
25
  } from "./chunk-A4BMJM77.js";
@@ -145,7 +145,10 @@ ${skill.level}
145
145
  };
146
146
  });
147
147
  const skillsTokens = skillToolDefinitionTokens + loadedBodiesTokens;
148
- const thresholds = computeThresholds(contextWindowSize);
148
+ const thresholds = computeThresholds(
149
+ contextWindowSize,
150
+ config.getAutoCompactThreshold()
151
+ );
149
152
  const autocompactBuffer = Math.max(
150
153
  0,
151
154
  Math.round(contextWindowSize - thresholds.auto)
@@ -5,11 +5,11 @@ import {
5
5
  } from "./chunk-OMX7CUOE.js";
6
6
  import {
7
7
  atomicWriteJSON
8
- } from "./chunk-3227DZO4.js";
8
+ } from "./chunk-T42ACHFI.js";
9
9
  import {
10
10
  Storage,
11
11
  getProjectHash
12
- } from "./chunk-UX4SGCGN.js";
12
+ } from "./chunk-AVQDCKNF.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-A4BMJM77.js";
@@ -0,0 +1,82 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-A4BMJM77.js";
6
+ import {
7
+ __commonJS,
8
+ __require
9
+ } from "./chunk-J2S4EL5Y.js";
10
+
11
+ // node_modules/safer-buffer/safer.js
12
+ var require_safer = __commonJS({
13
+ "node_modules/safer-buffer/safer.js"(exports, module) {
14
+ "use strict";
15
+ init_esbuild_shims();
16
+ var buffer = __require("buffer");
17
+ var Buffer = buffer.Buffer;
18
+ var safer = {};
19
+ var key;
20
+ for (key in buffer) {
21
+ if (!buffer.hasOwnProperty(key)) continue;
22
+ if (key === "SlowBuffer" || key === "Buffer") continue;
23
+ safer[key] = buffer[key];
24
+ }
25
+ var Safer = safer.Buffer = {};
26
+ for (key in Buffer) {
27
+ if (!Buffer.hasOwnProperty(key)) continue;
28
+ if (key === "allocUnsafe" || key === "allocUnsafeSlow") continue;
29
+ Safer[key] = Buffer[key];
30
+ }
31
+ safer.Buffer.prototype = Buffer.prototype;
32
+ if (!Safer.from || Safer.from === Uint8Array.from) {
33
+ Safer.from = function(value, encodingOrOffset, length) {
34
+ if (typeof value === "number") {
35
+ throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
36
+ }
37
+ if (value && typeof value.length === "undefined") {
38
+ throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);
39
+ }
40
+ return Buffer(value, encodingOrOffset, length);
41
+ };
42
+ }
43
+ if (!Safer.alloc) {
44
+ Safer.alloc = function(size, fill, encoding) {
45
+ if (typeof size !== "number") {
46
+ throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
47
+ }
48
+ if (size < 0 || size >= 2 * (1 << 30)) {
49
+ throw new RangeError('The value "' + size + '" is invalid for option "size"');
50
+ }
51
+ var buf = Buffer(size);
52
+ if (!fill || fill.length === 0) {
53
+ buf.fill(0);
54
+ } else if (typeof encoding === "string") {
55
+ buf.fill(fill, encoding);
56
+ } else {
57
+ buf.fill(fill);
58
+ }
59
+ return buf;
60
+ };
61
+ }
62
+ if (!safer.kStringMaxLength) {
63
+ try {
64
+ safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
65
+ } catch (e) {
66
+ }
67
+ }
68
+ if (!safer.constants) {
69
+ safer.constants = {
70
+ MAX_LENGTH: safer.kMaxLength
71
+ };
72
+ if (safer.kStringMaxLength) {
73
+ safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
74
+ }
75
+ }
76
+ module.exports = safer;
77
+ }
78
+ });
79
+
80
+ export {
81
+ require_safer
82
+ };
@@ -1,5 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ MAX_WORKSPACE_PATH_LENGTH
5
+ } from "./chunk-SEZC2725.js";
3
6
  import {
4
7
  init_esbuild_shims
5
8
  } from "./chunk-A4BMJM77.js";
@@ -7,24 +10,6 @@ import {
7
10
  __name
8
11
  } from "./chunk-J2S4EL5Y.js";
9
12
 
10
- // packages/acp-bridge/src/workspacePaths.ts
11
- init_esbuild_shims();
12
- import { realpathSync } from "node:fs";
13
- import * as path from "node:path";
14
- function canonicalizeWorkspace(p) {
15
- const resolved = path.resolve(p);
16
- try {
17
- return realpathSync.native(resolved);
18
- } catch (err) {
19
- if (err && typeof err === "object" && err.code === "ENOENT") {
20
- return resolved;
21
- }
22
- throw err;
23
- }
24
- }
25
- __name(canonicalizeWorkspace, "canonicalizeWorkspace");
26
- var MAX_WORKSPACE_PATH_LENGTH = 4096;
27
-
28
13
  // packages/acp-bridge/src/bridgeErrors.ts
29
14
  init_esbuild_shims();
30
15
  var NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE = "Not currently generating";
@@ -53,6 +38,45 @@ var SessionNotFoundError = class extends Error {
53
38
  this.sessionId = sessionId;
54
39
  }
55
40
  };
41
+ var SessionArchivedError = class extends Error {
42
+ static {
43
+ __name(this, "SessionArchivedError");
44
+ }
45
+ sessionId;
46
+ constructor(sessionId) {
47
+ super(`Session "${sessionId}" is archived. Unarchive it before loading.`);
48
+ this.name = "SessionArchivedError";
49
+ this.sessionId = sessionId;
50
+ }
51
+ };
52
+ var SessionConflictError = class extends Error {
53
+ static {
54
+ __name(this, "SessionConflictError");
55
+ }
56
+ sessionId;
57
+ constructor(sessionId) {
58
+ super(
59
+ `Session "${sessionId}" exists in both active and archived directories. Delete the session with POST /sessions/delete before loading.`
60
+ );
61
+ this.name = "SessionConflictError";
62
+ this.sessionId = sessionId;
63
+ }
64
+ };
65
+ var SessionArchivingError = class extends Error {
66
+ static {
67
+ __name(this, "SessionArchivingError");
68
+ }
69
+ sessionId;
70
+ lockKind;
71
+ constructor(sessionId, lockKind = "exclusive") {
72
+ super(
73
+ `Session "${sessionId}" is being archived or unarchived; retry later.`
74
+ );
75
+ this.name = "SessionArchivingError";
76
+ this.sessionId = sessionId;
77
+ this.lockKind = lockKind;
78
+ }
79
+ };
56
80
  var RestoreInProgressError = class extends Error {
57
81
  static {
58
82
  __name(this, "RestoreInProgressError");
@@ -235,12 +259,12 @@ var WorkspaceInitConflictError = class extends Error {
235
259
  }
236
260
  path;
237
261
  existingSize;
238
- constructor(path2, existingSize) {
262
+ constructor(path, existingSize) {
239
263
  super(
240
- `Workspace file ${path2} already exists (${existingSize} bytes); pass {force: true} to overwrite.`
264
+ `Workspace file ${path} already exists (${existingSize} bytes); pass {force: true} to overwrite.`
241
265
  );
242
266
  this.name = "WorkspaceInitConflictError";
243
- this.path = path2;
267
+ this.path = path;
244
268
  this.existingSize = existingSize;
245
269
  }
246
270
  };
@@ -361,11 +385,12 @@ var CdWhilePromptActiveError = class extends Error {
361
385
  };
362
386
 
363
387
  export {
364
- canonicalizeWorkspace,
365
- MAX_WORKSPACE_PATH_LENGTH,
366
388
  NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE,
367
389
  isNotCurrentlyGeneratingCancelError,
368
390
  SessionNotFoundError,
391
+ SessionArchivedError,
392
+ SessionConflictError,
393
+ SessionArchivingError,
369
394
  RestoreInProgressError,
370
395
  InvalidSessionScopeError,
371
396
  SessionLimitExceededError,
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  createDebugLogger,
5
5
  isNodeError
6
- } from "./chunk-UX4SGCGN.js";
6
+ } from "./chunk-AVQDCKNF.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-A4BMJM77.js";
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  formatFetchErrorForUser
5
- } from "./chunk-KMGMKW5Q.js";
5
+ } from "./chunk-GLPV75ES.js";
6
6
  import {
7
7
  openBrowserSecurely
8
8
  } from "./chunk-22IFUCVR.js";
9
9
  import {
10
10
  atomicWriteFile
11
- } from "./chunk-3227DZO4.js";
11
+ } from "./chunk-T42ACHFI.js";
12
12
  import {
13
13
  combineAbortSignals
14
14
  } from "./chunk-64WXLC72.js";
15
15
  import {
16
16
  Storage,
17
17
  createDebugLogger
18
- } from "./chunk-UX4SGCGN.js";
18
+ } from "./chunk-AVQDCKNF.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-A4BMJM77.js";
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  createDebugLogger,
5
5
  isNodeError
6
- } from "./chunk-UX4SGCGN.js";
6
+ } from "./chunk-AVQDCKNF.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-A4BMJM77.js";
@@ -2,16 +2,16 @@
2
2
  "use strict";
3
3
  import {
4
4
  getEffectiveSupportedModes
5
- } from "./chunk-3TV3HUWZ.js";
5
+ } from "./chunk-75X2VLSH.js";
6
6
  import {
7
7
  require_jsx_runtime
8
- } from "./chunk-T4T2FNV4.js";
8
+ } from "./chunk-2X2JUE47.js";
9
9
  import {
10
10
  require_react
11
11
  } from "./chunk-KYMBIKIW.js";
12
12
  import {
13
13
  uiTelemetryService
14
- } from "./chunk-QNKBEJO2.js";
14
+ } from "./chunk-HJDF3ZVU.js";
15
15
  import {
16
16
  init_esbuild_shims
17
17
  } from "./chunk-A4BMJM77.js";
@@ -15,15 +15,15 @@ import {
15
15
  readCronTasks,
16
16
  removeCronTasks,
17
17
  updateCronTasks
18
- } from "./chunk-O2VBQ3Y2.js";
18
+ } from "./chunk-SJBIFVD2.js";
19
19
  import {
20
20
  ToolNames
21
- } from "./chunk-BX5YO7UW.js";
21
+ } from "./chunk-4VZH35PN.js";
22
22
  import {
23
23
  Storage,
24
24
  createDebugLogger,
25
25
  getProjectHash
26
- } from "./chunk-UX4SGCGN.js";
26
+ } from "./chunk-AVQDCKNF.js";
27
27
  import {
28
28
  init_esbuild_shims
29
29
  } from "./chunk-A4BMJM77.js";
@@ -242,6 +242,14 @@ var CronScheduler = class {
242
242
  _disabled = false;
243
243
  timer = null;
244
244
  onFire = null;
245
+ // Guard a consumer installs when it cannot execute certain durable jobs. A
246
+ // headless run can't expand a `.qwen/loop.md` sentinel, so it marks such
247
+ // durable jobs skippable here: they are then neither fired NOR have their
248
+ // persisted fired-state advanced (lastFiredAt stamp / one-shot removal),
249
+ // leaving the tick for the owning interactive session instead of silently
250
+ // consuming it for work the consumer never ran. Session-only jobs and durable
251
+ // jobs in a consumer that can run them are unaffected (predicate unset/false).
252
+ skipDurableFire = null;
245
253
  // --- Durable (file-backed) support ---
246
254
  durableEnabled = false;
247
255
  // Bumped by stop(). Async durable work captures the value before each
@@ -623,12 +631,27 @@ var CronScheduler = class {
623
631
  deliverPending(pending, onFire) {
624
632
  switch (pending.kind) {
625
633
  case "missed": {
626
- onFire({
627
- ...durableTaskToJob(pending.tasks[0]),
628
- prompt: buildMissedCronNotification(pending.tasks),
629
- missed: true
634
+ const skipped = [];
635
+ const runnable = pending.tasks.filter((t) => {
636
+ const job = durableTaskToJob(t);
637
+ if (job.durable && this.skipDurableFire?.(job)) {
638
+ debugLogger.debug(
639
+ `Skipping durable job ${t.id} (missed): consumer cannot run it`
640
+ );
641
+ skipped.push(t.id);
642
+ return false;
643
+ }
644
+ return true;
630
645
  });
631
- this.removeMissedFromDisk(pending.tasks.map((t) => t.id));
646
+ for (const id of skipped) this.pendingRemoval.delete(id);
647
+ if (runnable.length > 0) {
648
+ onFire({
649
+ ...durableTaskToJob(runnable[0]),
650
+ prompt: buildMissedCronNotification(runnable),
651
+ missed: true
652
+ });
653
+ this.removeMissedFromDisk(runnable.map((t) => t.id));
654
+ }
632
655
  break;
633
656
  }
634
657
  case "catch-up": {
@@ -636,6 +659,12 @@ var CronScheduler = class {
636
659
  for (const id of pending.ids) {
637
660
  const job = this.jobs.get(id);
638
661
  if (!job) continue;
662
+ if (job.durable && this.skipDurableFire?.(job)) {
663
+ debugLogger.debug(
664
+ `Skipping durable job ${job.id} (catch-up): consumer cannot run it`
665
+ );
666
+ continue;
667
+ }
639
668
  onFire(job);
640
669
  fired.push(id);
641
670
  }
@@ -643,10 +672,19 @@ var CronScheduler = class {
643
672
  break;
644
673
  }
645
674
  case "final": {
675
+ const fired = [];
646
676
  for (const job of pending.jobs) {
677
+ if (job.durable && this.skipDurableFire?.(job)) {
678
+ debugLogger.debug(
679
+ `Skipping durable job ${job.id} (final): consumer cannot run it`
680
+ );
681
+ this.pendingRemoval.delete(job.id);
682
+ continue;
683
+ }
647
684
  onFire(job);
685
+ fired.push(job.id);
648
686
  }
649
- this.removeMissedFromDisk(pending.jobs.map((j) => j.id));
687
+ this.removeMissedFromDisk(fired);
650
688
  break;
651
689
  }
652
690
  default: {
@@ -730,6 +768,16 @@ var CronScheduler = class {
730
768
  } catch {
731
769
  }
732
770
  }
771
+ /**
772
+ * Installs a predicate marking durable jobs the active consumer cannot run
773
+ * (see the `skipDurableFire` field). Such jobs are skipped before any fire or
774
+ * persist, so their durable schedule is left intact for an owning session that
775
+ * can run them. Set before `start()` so a buffered catch-up flush also honors
776
+ * it. A no-op for session-only jobs.
777
+ */
778
+ setSkipDurableFire(predicate) {
779
+ this.skipDurableFire = predicate;
780
+ }
733
781
  /**
734
782
  * Starts the scheduler tick. Calls `onFire` when a job is due.
735
783
  * Only fires when called — does not auto-fire missed intervals.
@@ -847,6 +895,12 @@ var CronScheduler = class {
847
895
  const removedIds = [];
848
896
  for (const job of this.jobs.values()) {
849
897
  if (job.durable && !this.isOwner) continue;
898
+ if (job.durable && this.skipDurableFire?.(job)) {
899
+ debugLogger.debug(
900
+ `Skipping durable job ${job.id} (tick): consumer cannot run it`
901
+ );
902
+ continue;
903
+ }
850
904
  const result = this.processJob(job, currentDate, currentMs);
851
905
  if (!job.durable || result === "none") continue;
852
906
  if (result === "fired-final" || !job.recurring) {
@@ -5,7 +5,7 @@ import {
5
5
  BaseToolInvocation,
6
6
  ToolDisplayNames,
7
7
  ToolNames
8
- } from "./chunk-BX5YO7UW.js";
8
+ } from "./chunk-4VZH35PN.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-A4BMJM77.js";
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-Y6Z2O3WR.js";
6
6
  import {
7
7
  resolveBundleDir
8
- } from "./chunk-YAINVQ3Q.js";
8
+ } from "./chunk-BFG6OZN7.js";
9
9
  import {
10
10
  Storage
11
- } from "./chunk-UX4SGCGN.js";
11
+ } from "./chunk-AVQDCKNF.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-A4BMJM77.js";
@@ -158,15 +158,15 @@ init_esbuild_shims();
158
158
 
159
159
  // import("./locales/**/*.js") in packages/cli/src/i18n/index.ts
160
160
  var globImport_locales_js = __glob({
161
- "./locales/ca.js": () => import("./ca-IUFWESZL.js"),
162
- "./locales/de.js": () => import("./de-EOW5PVHF.js"),
163
- "./locales/en.js": () => import("./en-HPWEJBTR.js"),
164
- "./locales/fr.js": () => import("./fr-BN5NKSAC.js"),
165
- "./locales/ja.js": () => import("./ja-7DEUB2TS.js"),
166
- "./locales/pt.js": () => import("./pt-TNZRNLQB.js"),
167
- "./locales/ru.js": () => import("./ru-NIAUBKCN.js"),
168
- "./locales/zh-TW.js": () => import("./zh-TW-TR3XYGE5.js"),
169
- "./locales/zh.js": () => import("./zh-5EUYXASN.js")
161
+ "./locales/ca.js": () => import("./ca-RYOETBUW.js"),
162
+ "./locales/de.js": () => import("./de-HB5NJXGB.js"),
163
+ "./locales/en.js": () => import("./en-FZREZFPO.js"),
164
+ "./locales/fr.js": () => import("./fr-XY3NQFCM.js"),
165
+ "./locales/ja.js": () => import("./ja-J7YAG7SA.js"),
166
+ "./locales/pt.js": () => import("./pt-6RTAA6SS.js"),
167
+ "./locales/ru.js": () => import("./ru-AUBGJ2C4.js"),
168
+ "./locales/zh-TW.js": () => import("./zh-TW-6GIKXEAN.js"),
169
+ "./locales/zh.js": () => import("./zh-V3B4TFWL.js")
170
170
  });
171
171
 
172
172
  // packages/cli/src/i18n/index.ts