@qwen-code/qwen-code 0.22.2-preview.0 → 0.22.2

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 (379) hide show
  1. package/bundled/goal-draft/SKILL.md +109 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +12 -12
  3. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/features/commands.md +2 -1
  5. package/bundled/qc-helper/docs/features/goals.md +58 -0
  6. package/bundled/qc-helper/docs/features/headless.md +13 -11
  7. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  8. package/chunks/MaxSizedBox-X5FZSNAJ.js +112 -0
  9. package/chunks/{StandaloneSessionPicker-KFMJILVY.js → StandaloneSessionPicker-AVLI6VJP.js} +76 -76
  10. package/chunks/{acpAgent-KNFTTDWL.js → acpAgent-MXEAN54C.js} +994 -277
  11. package/chunks/{agent-6V6MZOA7.js → agent-PJIPDWHB.js} +41 -41
  12. package/chunks/agent-headless-B4JVD7UK.js +87 -0
  13. package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-HGMBACVE.js} +7 -7
  14. package/chunks/{artifact-tool-XDJCZZCF.js → artifact-tool-5YT4QF7Y.js} +2 -2
  15. package/chunks/{askUserQuestion-ZXXERLEV.js → askUserQuestion-4SWJY65V.js} +2 -2
  16. package/chunks/bridge-FKZTVIS3.js +121 -0
  17. package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-X4AZ6IXX.js} +1 -1
  18. package/chunks/channel-settings-store-4UFCLBBG.js +117 -0
  19. package/chunks/{channel-worker-group-EVDC2P4K.js → channel-worker-group-27HMGD5S.js} +7 -6
  20. package/chunks/{channel-worker-manager-IJJZHGEI.js → channel-worker-manager-QEGX646Z.js} +9 -7
  21. package/chunks/{channel-worker-supervisor-YSKB5GVB.js → channel-worker-supervisor-UEW2WWCC.js} +5 -4
  22. package/chunks/{chunk-7QGEJI7M.js → chunk-23RFD54N.js} +1 -1
  23. package/chunks/{chunk-K5PNJ6VL.js → chunk-2K6ORIHJ.js} +13 -13
  24. package/chunks/{chunk-OGZAQWJP.js → chunk-2NYCN6F2.js} +11 -11
  25. package/chunks/chunk-2TNL5KPM.js +49 -0
  26. package/chunks/{chunk-ZEADBZLO.js → chunk-3AFMQUTI.js} +3 -3
  27. package/chunks/{chunk-LRLMDV5X.js → chunk-3DXFGHAJ.js} +185 -174
  28. package/chunks/{chunk-73WFGVIZ.js → chunk-3FDFA4MZ.js} +3 -3
  29. package/chunks/{chunk-WBT3STGU.js → chunk-3I6UTTDX.js} +1 -1
  30. package/chunks/{chunk-FVDQ5E67.js → chunk-3JGZSIDA.js} +3 -3
  31. package/chunks/{chunk-JJJD6QCC.js → chunk-3SGB2UHX.js} +15 -10
  32. package/chunks/{chunk-77TOMRBG.js → chunk-43GGFFLY.js} +3 -3
  33. package/chunks/{chunk-ZJG323IA.js → chunk-43UYNAWX.js} +6 -4
  34. package/chunks/{chunk-T2HMXHYA.js → chunk-4CDSK5AZ.js} +6 -6
  35. package/chunks/chunk-4CMJKUND.js +95 -0
  36. package/chunks/{chunk-EB4VDXNI.js → chunk-4FTKQNWJ.js} +1 -1
  37. package/chunks/{chunk-PAJGKZAA.js → chunk-4HV6HH33.js} +10 -8
  38. package/chunks/{chunk-BQBUZDDH.js → chunk-4J657AJR.js} +3 -3
  39. package/chunks/{chunk-BU7OUDQB.js → chunk-4JWNNLPT.js} +4 -4
  40. package/chunks/{chunk-4N6UAPD3.js → chunk-4MQEPP3Y.js} +9 -84
  41. package/chunks/{chunk-I6HWGOWD.js → chunk-5O72BNDD.js} +93 -14
  42. package/chunks/{chunk-IKN3IUJP.js → chunk-5XBFCMWD.js} +2 -2
  43. package/chunks/{chunk-2YDYDDE2.js → chunk-66KDY3LV.js} +3 -3
  44. package/chunks/{chunk-UVDOONRU.js → chunk-6CGL7E7G.js} +2 -2
  45. package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
  46. package/chunks/{chunk-SKNVVYIJ.js → chunk-6IUNAPLR.js} +3 -3
  47. package/chunks/{chunk-VUZY6MEQ.js → chunk-6LFJEACX.js} +4 -4
  48. package/chunks/{chunk-H2MDBYLL.js → chunk-6LFTG244.js} +8 -8
  49. package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
  50. package/chunks/{chunk-4IDJQOCO.js → chunk-77RG5SFQ.js} +1 -1
  51. package/chunks/{chunk-SDVF6A42.js → chunk-7DJCPZE3.js} +3 -3
  52. package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
  53. package/chunks/{chunk-H4JK2A2V.js → chunk-7UYV53BC.js} +1 -1
  54. package/chunks/{chunk-6HOU52QX.js → chunk-A7YP63XN.js} +4 -4
  55. package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
  56. package/chunks/{chunk-XO4NGYRP.js → chunk-AGR5UROZ.js} +5 -5
  57. package/chunks/{chunk-5T4LWWNX.js → chunk-B7CDU2SL.js} +2 -2
  58. package/chunks/{chunk-GQAIZL3H.js → chunk-BAJKAAOY.js} +68 -64
  59. package/chunks/{chunk-DWRFOH3G.js → chunk-BBWV7ONL.js} +3 -3
  60. package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
  61. package/chunks/{chunk-RUJTCU46.js → chunk-BNMF3K5X.js} +20 -19
  62. package/chunks/{chunk-IPQA4SR5.js → chunk-BWORX6FA.js} +1 -1
  63. package/chunks/{chunk-BKDAF7ES.js → chunk-BXDAPVQU.js} +2 -2
  64. package/chunks/{chunk-FY62MBPS.js → chunk-C6K43ZDE.js} +4 -4
  65. package/chunks/{chunk-JUIJ3FXC.js → chunk-CAJTKR6W.js} +5 -5
  66. package/chunks/{chunk-EADEZDPO.js → chunk-CCBZDVUA.js} +30 -25
  67. package/chunks/{chunk-DP7LABIB.js → chunk-CMHFCLBU.js} +1 -1
  68. package/chunks/{chunk-5AFPOEY3.js → chunk-CPGJJJLU.js} +1 -1
  69. package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
  70. package/chunks/{chunk-EWBY3PFB.js → chunk-CSMI4FP5.js} +1 -1
  71. package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
  72. package/chunks/{chunk-TQYZG5DU.js → chunk-DZWPESIF.js} +3 -3
  73. package/chunks/{chunk-5Y2JCJAH.js → chunk-EFUM7RVY.js} +15 -2
  74. package/chunks/{chunk-3UZCLCXR.js → chunk-EKSCLBBF.js} +3 -3
  75. package/chunks/{chunk-LJP2BBMK.js → chunk-EOGELB3H.js} +4 -4
  76. package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
  77. package/chunks/{chunk-RQAMNZ4Y.js → chunk-F5SZP77N.js} +310 -78
  78. package/chunks/{chunk-SQPOJ4ZI.js → chunk-F6FV3C5K.js} +12 -7
  79. package/chunks/{chunk-C2BAEV64.js → chunk-F7TNAPZ4.js} +9 -7
  80. package/chunks/{chunk-OAAPGZVH.js → chunk-FBSSIAAQ.js} +6 -6
  81. package/chunks/{chunk-2FN2HNTI.js → chunk-FDY5RMGH.js} +2 -2
  82. package/chunks/{chunk-U66FXEH2.js → chunk-FY76G3G5.js} +5 -5
  83. package/chunks/{chunk-LKOSBI2M.js → chunk-G34IR3D6.js} +9 -9
  84. package/chunks/{chunk-ZWKGZB2K.js → chunk-H2WDGQ6D.js} +3 -3
  85. package/chunks/chunk-H72BQNM3.js +645 -0
  86. package/chunks/{chunk-ILPXSKGQ.js → chunk-HVEYF6VT.js} +2 -2
  87. package/chunks/{chunk-EAV3TENS.js → chunk-HVQ3B7FF.js} +2 -2
  88. package/chunks/{chunk-MI7CMXPU.js → chunk-IJKTMLBE.js} +1 -1
  89. package/chunks/{chunk-IN66KO3N.js → chunk-IK5BW3CS.js} +2 -2
  90. package/chunks/{chunk-5NV2AN56.js → chunk-IOPCFOTF.js} +3 -3
  91. package/chunks/{chunk-O3BUXIPM.js → chunk-IZIVM7LZ.js} +3 -3
  92. package/chunks/{chunk-I6VVOZDK.js → chunk-J2OSJFP3.js} +2 -2
  93. package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
  94. package/chunks/{chunk-76WGY6LW.js → chunk-JCQD3INC.js} +3 -3
  95. package/chunks/{chunk-CITGRGCM.js → chunk-JHS74YAB.js} +4 -1
  96. package/chunks/{chunk-GXWY24QS.js → chunk-JSC3H3TD.js} +33 -10
  97. package/chunks/{chunk-NUHCXGAD.js → chunk-JSHHYW6T.js} +4 -4
  98. package/chunks/{chunk-5CW26JIE.js → chunk-JU4EEXC7.js} +2 -2
  99. package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
  100. package/chunks/{chunk-DX5FZGHZ.js → chunk-K2NQPH5D.js} +3 -3
  101. package/chunks/{chunk-VLY6XOBY.js → chunk-KEKZFOL6.js} +1 -1
  102. package/chunks/{chunk-RUQBJS34.js → chunk-KUX5D6DK.js} +1200 -339
  103. package/chunks/{chunk-UX3IFLJM.js → chunk-L2M46FP5.js} +149 -22
  104. package/chunks/{chunk-6US7BF3G.js → chunk-L6BZRIUL.js} +2 -2
  105. package/chunks/{chunk-BGWT7VBV.js → chunk-L6YT5H34.js} +4 -4
  106. package/chunks/{chunk-W2WRNJKX.js → chunk-LDP5OD6N.js} +5 -5
  107. package/chunks/{chunk-QB5DD75E.js → chunk-LXIBMVRN.js} +7 -7
  108. package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
  109. package/chunks/{chunk-OX44MOAN.js → chunk-MIIVI25Q.js} +3 -3
  110. package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
  111. package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
  112. package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
  113. package/chunks/{chunk-MB4OCRQ2.js → chunk-O2UN57NX.js} +2 -2
  114. package/chunks/{chunk-TWUA5EIL.js → chunk-OIP7C4FE.js} +5 -5
  115. package/chunks/{chunk-UCSV2IZW.js → chunk-OIVXBW3W.js} +3 -3
  116. package/chunks/{chunk-TOF4UZHH.js → chunk-P2SU6ZTI.js} +3 -3
  117. package/chunks/{chunk-N4B7VPXK.js → chunk-P5GGM4KS.js} +5 -5
  118. package/chunks/{chunk-ZKAZP2ZG.js → chunk-PDMJ3KGS.js} +2 -2
  119. package/chunks/{chunk-RRKNX553.js → chunk-PDQGMSZK.js} +1 -1
  120. package/chunks/{chunk-3UXJFOB3.js → chunk-PFCQ62V4.js} +5 -5
  121. package/chunks/{chunk-JLGFGPZJ.js → chunk-PKAYJDB3.js} +2 -2
  122. package/chunks/{chunk-GTUKW3I6.js → chunk-PPKZ7JOE.js} +1 -1
  123. package/chunks/{chunk-HOANA6GC.js → chunk-Q26AYA62.js} +4 -4
  124. package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
  125. package/chunks/{chunk-4PLAO7FS.js → chunk-QP4C6WCE.js} +3 -3
  126. package/chunks/{chunk-3B5DCAQU.js → chunk-R4PMVSR5.js} +27 -25
  127. package/chunks/{chunk-7JJUFI36.js → chunk-RIEFGNTP.js} +579 -3419
  128. package/chunks/{chunk-7XKW4CVK.js → chunk-RJC5EIKY.js} +4 -4
  129. package/chunks/chunk-RKFGE7JH.js +93 -0
  130. package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
  131. package/chunks/{chunk-GZJUCMH4.js → chunk-RUGNCYNO.js} +11 -633
  132. package/chunks/{chunk-ZLTEQYNC.js → chunk-SFPGAQUL.js} +2 -2
  133. package/chunks/{chunk-K6FURWIX.js → chunk-SJ3ZUWFK.js} +26 -4
  134. package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
  135. package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
  136. package/chunks/{chunk-O5YGAEQS.js → chunk-T32W2JHI.js} +6 -6
  137. package/chunks/chunk-T3WXYEZ4.js +304 -0
  138. package/chunks/{chunk-D6XO27Z5.js → chunk-TGWAQ5RB.js} +750 -296
  139. package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
  140. package/chunks/{chunk-OI2DR6QB.js → chunk-TRZTNIQ6.js} +2 -2
  141. package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
  142. package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
  143. package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
  144. package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
  145. package/chunks/{chunk-RQ5ASDFQ.js → chunk-V4QXXQJ2.js} +3 -3
  146. package/chunks/{chunk-BVE5EMIG.js → chunk-V5J4J5TP.js} +2 -2
  147. package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
  148. package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
  149. package/chunks/{chunk-V3GINY6K.js → chunk-VVW4ZNFY.js} +3 -3
  150. package/chunks/{chunk-YT5XN3HV.js → chunk-W5MJJ2V7.js} +1 -1
  151. package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
  152. package/chunks/{chunk-FN5C6C7G.js → chunk-WKK5BQNP.js} +151 -60
  153. package/chunks/chunk-XDFHY4R3.js +1584 -0
  154. package/chunks/{chunk-L436XFLJ.js → chunk-XDLEZ5HX.js} +1 -1
  155. package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
  156. package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
  157. package/chunks/{chunk-2MHGD7EE.js → chunk-XRSOI3DL.js} +1 -1
  158. package/chunks/{chunk-FJWICLG7.js → chunk-Y3QL45LS.js} +1 -1
  159. package/chunks/{chunk-RCDXSEJ5.js → chunk-Y6LSMB6J.js} +1 -1
  160. package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
  161. package/chunks/{chunk-4X5GYZFO.js → chunk-Z7FLBQPR.js} +7 -7
  162. package/chunks/{chunk-3BV7TZNQ.js → chunk-Z7TGYN5F.js} +3 -3
  163. package/chunks/{chunk-4Z3PSHN4.js → chunk-ZFKOCECU.js} +2 -2
  164. package/chunks/chunk-ZGXYO7DY.js +3416 -0
  165. package/chunks/{chunk-E6FGMDFQ.js → chunk-ZU4UDIWX.js} +19 -1
  166. package/chunks/config-utils-BBOCOGZW.js +113 -0
  167. package/chunks/contextCommand-EET67MQ2.js +108 -0
  168. package/chunks/{core-runtime-6TBMEULI.js → core-runtime-677KFX6Q.js} +53 -53
  169. package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
  170. package/chunks/{create-sub-session-SAOMTP62.js → create-sub-session-JKZAYZX7.js} +160 -79
  171. package/chunks/{cron-create-IJGVR5R2.js → cron-create-KJ4IY6PP.js} +57 -10
  172. package/chunks/{cron-delete-4N5BI6GL.js → cron-delete-MBLQCAYY.js} +4 -4
  173. package/chunks/{cron-list-2CATIPUX.js → cron-list-DWH2PQ47.js} +4 -4
  174. package/chunks/{daemon-NAYK4XXU.js → daemon-MJQUO7RA.js} +28 -1
  175. package/chunks/{daemon-git-worktree-guard-TYLESM6G.js → daemon-git-worktree-guard-6MVAAZZZ.js} +53 -53
  176. package/chunks/daemon-status-provider-RFKZOK3S.js +119 -0
  177. package/chunks/daemon-trust-policy-DRZPFB4Q.js +114 -0
  178. package/chunks/{daemon-trust-policy-monitor-WWX7I7P6.js → daemon-trust-policy-monitor-B5U6TQX5.js} +59 -59
  179. package/chunks/deferred-core-runtime-BBVIOP24.js +116 -0
  180. package/chunks/{display-image-DR55LL6M.js → display-image-BE7I6ZB6.js} +5 -5
  181. package/chunks/{dist-FVJZSIO4.js → dist-ILDBUWDB.js} +71 -19
  182. package/chunks/{dist-6H6RZ5H6.js → dist-QODVOVWI.js} +58 -35
  183. package/chunks/earlyInputCapture-2JOMMNQ4.js +109 -0
  184. package/chunks/{edit-GBDKI5DZ.js → edit-BSV6YRVW.js} +42 -42
  185. package/chunks/{en-6MDBWMTG.js → en-YLXBXM4Z.js} +2 -1
  186. package/chunks/{enter-worktree-UOZ6ZTP7.js → enter-worktree-MQXFFPKM.js} +7 -7
  187. package/chunks/{enterPlanMode-2KTIPPM3.js → enterPlanMode-PKNF35FE.js} +41 -41
  188. package/chunks/{environment-XJ75LJ6N.js → environment-MOZMPUHR.js} +55 -55
  189. package/chunks/errors-DMPQVYJL.js +115 -0
  190. package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-L344UY7K.js} +7 -7
  191. package/chunks/{exitPlanMode-AUMYTFIQ.js → exitPlanMode-UE4FGCY4.js} +41 -41
  192. package/chunks/{fast-path-TU7U2ETU.js → fast-path-773PV7PU.js} +5 -5
  193. package/chunks/{gemini-FKMYDP64.js → gemini-IP4FJAP5.js} +101 -100
  194. package/chunks/{geminiContentGenerator-WSHP7CSR.js → geminiContentGenerator-PUNEBWJW.js} +8 -8
  195. package/chunks/{glob-EOM6XK7H.js → glob-CZHOWUEA.js} +41 -41
  196. package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-YZQJXTGH.js} +9 -8
  197. package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
  198. package/chunks/handleAutoUpdate-SGXKTQM6.js +111 -0
  199. package/chunks/{i18n-XX7U2Q3X.js → i18n-B42HKHKH.js} +54 -54
  200. package/chunks/{image-gen-63NN2H5N.js → image-gen-HAYOEQ4O.js} +9 -9
  201. package/chunks/initializer-FB66WYR3.js +115 -0
  202. package/chunks/installationInfo-Y7AULNMX.js +109 -0
  203. package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
  204. package/chunks/list-2HWGSVRA.js +118 -0
  205. package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
  206. package/chunks/loadedSettingsAdapter-7Y7IEI6T.js +112 -0
  207. package/chunks/{loggingContentGenerator-TUDGCVUG.js → loggingContentGenerator-2GGZNGLG.js} +35 -22
  208. package/chunks/{loop-wakeup-XBPB2BRO.js → loop-wakeup-XJFONSQ7.js} +5 -5
  209. package/chunks/{ls-WFONAND2.js → ls-3VAT2J7A.js} +4 -4
  210. package/chunks/{lsp-DUKPDUXN.js → lsp-5W7IRUBH.js} +2 -2
  211. package/chunks/{managed-npm-update-5K4FWFX2.js → managed-npm-update-5TEV2E3J.js} +54 -54
  212. package/chunks/mcp-QGG5NMJJ.js +112 -0
  213. package/chunks/{monitor-UUHIAGT7.js → monitor-FI7PY36Z.js} +41 -41
  214. package/chunks/nonInteractiveCli-4LO2TL72.js +186 -0
  215. package/chunks/{notebook-edit-GZPB3Q57.js → notebook-edit-TPGMGBST.js} +42 -42
  216. package/chunks/{openaiContentGenerator-RPP6YBS3.js → openaiContentGenerator-SUCYANUZ.js} +24 -24
  217. package/chunks/pidfile-JMF2CLMY.js +113 -0
  218. package/chunks/{processUtils-ENAY2GSA.js → processUtils-IQZBYWSB.js} +2 -2
  219. package/chunks/prompt-terminal-ledger-DCZO6S7C.js +107 -0
  220. package/chunks/{qwenContentGenerator-GLUZVJAU.js → qwenContentGenerator-J4TXFGJT.js} +46 -46
  221. package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-RF33DNZW.js} +8 -8
  222. package/chunks/{read-file-75R5LUWQ.js → read-file-QE2B5FTX.js} +12 -12
  223. package/chunks/{read-mcp-resource-7A7NFSFL.js → read-mcp-resource-XD257PGJ.js} +2 -2
  224. package/chunks/{record-artifact-CPJ4IJSD.js → record-artifact-RZGZBENU.js} +4 -4
  225. package/chunks/{report-findings-VFM5DENC.js → report-findings-Q3SYKKW5.js} +5 -5
  226. package/chunks/{request-shutdown-AXVOFN5C.js → request-shutdown-BCLA3JV2.js} +7 -7
  227. package/chunks/resumeHistoryUtils-CZ4JRDVW.js +120 -0
  228. package/chunks/{ripGrep-FNLXQYBS.js → ripGrep-R6B6HWPX.js} +17 -17
  229. package/chunks/{run-qwen-serve-FJD4VMI2.js → run-qwen-serve-TPHZMSXJ.js} +148 -319
  230. package/chunks/{runtime-INDSJB4K.js → runtime-TTIGSBM4.js} +62 -62
  231. package/chunks/scheduled-tasks-QB4ZVUQS.js +129 -0
  232. package/chunks/{scheduler-Z52TCSUG.js → scheduler-YRUG22M7.js} +55 -55
  233. package/chunks/{sdk-exporters-http-XXSKBD2C.js → sdk-exporters-http-KCJ4ZFG7.js} +2 -2
  234. package/chunks/{sdk-impl-VPNBLV7I.js → sdk-impl-HLSEDAEP.js} +4 -4
  235. package/chunks/{send-message-A2GXDX3B.js → send-message-Y5I6NYAM.js} +7 -7
  236. package/chunks/serve-MXXCDAQN.js +120 -0
  237. package/chunks/{server-PSN5OOSX.js → server-DFUSSSHI.js} +19760 -19444
  238. package/chunks/{session-JPE34X6Q.js → session-3TEHNENZ.js} +100 -99
  239. package/chunks/{settings-IVGC4UYK.js → settings-VOZYKLTT.js} +58 -58
  240. package/chunks/{shell-A5PZGPBR.js → shell-6RTKZVMI.js} +41 -41
  241. package/chunks/{skill-UUXQPDEH.js → skill-FEOKFX26.js} +22 -21
  242. package/chunks/{skill-settings-WVRXLTK4.js → skill-settings-VA4XVYVL.js} +58 -58
  243. package/chunks/spawnChannel-F6WVP723.js +114 -0
  244. package/chunks/{standalone-update-IRFRNGAA.js → standalone-update-RGILUQVK.js} +55 -55
  245. package/chunks/{startInteractiveUI-MC4GLL6G.js → startInteractiveUI-WHJPFOGH.js} +2757 -2223
  246. package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
  247. package/chunks/{task-create-CDJSOEQD.js → task-create-TMSV7RD5.js} +11 -11
  248. package/chunks/{task-list-BELMPA75.js → task-list-W55RBFRX.js} +5 -5
  249. package/chunks/{task-stop-U3S3KZG2.js → task-stop-CXEH5L2D.js} +2 -2
  250. package/chunks/{task-update-77VCFDDZ.js → task-update-N536I4GQ.js} +11 -11
  251. package/chunks/{team-create-WO5ZBCFW.js → team-create-QYSWCYCL.js} +41 -41
  252. package/chunks/{team-delete-YWFXX77L.js → team-delete-FJRFX33M.js} +5 -5
  253. package/chunks/{team-plan-approval-KAVKRN7U.js → team-plan-approval-P7DAD644.js} +41 -41
  254. package/chunks/{terminal-image-renderer-SMRRNI6Z.js → terminal-image-renderer-SMQE46UJ.js} +55 -55
  255. package/chunks/theme-manager-RFO5WWFF.js +104 -0
  256. package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
  257. package/chunks/{tool-search-FBN6OC6U.js → tool-search-F2EMIAPV.js} +17 -17
  258. package/chunks/total-session-admission-HTVTP4BS.js +116 -0
  259. package/chunks/{trustedFolders-B4LPJBFK.js → trustedFolders-7OCNMUQE.js} +54 -54
  260. package/chunks/{update-relaunch-X5TJVKVG.js → update-relaunch-4GF3OXMB.js} +5 -5
  261. package/chunks/{updateCheck-JCLP5JFT.js → updateCheck-7QBDXZRT.js} +56 -56
  262. package/chunks/useAutoAcceptIndicator-UI4SNL2O.js +122 -0
  263. package/chunks/{validateNonInterActiveAuth-W7HYH5ZN.js → validateNonInterActiveAuth-BPPA563H.js} +96 -95
  264. package/chunks/{version-JG4J76GL.js → version-ANP4TS6O.js} +1 -1
  265. package/chunks/{web-fetch-SPLMEDWF.js → web-fetch-QJADSAH3.js} +16 -16
  266. package/chunks/{web-search-PNW6OEH6.js → web-search-7TTQKEKM.js} +9 -9
  267. package/chunks/{workflow-QHOIIXJO.js → workflow-5XN6XSOT.js} +105 -60
  268. package/chunks/workspace-providers-status-PDFZWL5Q.js +116 -0
  269. package/chunks/{workspace-registration-store-H375IYR2.js → workspace-registration-store-XKVW2YVH.js} +1 -1
  270. package/chunks/{workspace-registry-XTLCD7Z2.js → workspace-registry-23R7XRB5.js} +61 -59
  271. package/chunks/workspace-service-MUYO2QIC.js +131 -0
  272. package/chunks/workspace-skills-status-IKECTOOQ.js +115 -0
  273. package/chunks/{workspace-trust-reconciler-6SC6RKQE.js → workspace-trust-reconciler-KLGOB53D.js} +67 -65
  274. package/chunks/write-file-GGRBB5TZ.js +90 -0
  275. package/chunks/{zh-TW-MV4FWFB6.js → zh-TW-RPTMRTHG.js} +2 -1
  276. package/chunks/{zh-X3WGU6SI.js → zh-UNY63FR3.js} +2 -1
  277. package/chunks/{zoom-image-WGNPZ572.js → zoom-image-6ASG6J4C.js} +12 -12
  278. package/cli.js +14 -14
  279. package/locales/en.js +2 -0
  280. package/locales/zh-TW.js +2 -0
  281. package/locales/zh.js +2 -0
  282. package/package.json +3 -3
  283. package/web-shell/assets/{abnfDiagram-VCTEODGH-yq7z7Anb.js → abnfDiagram-VCTEODGH-uS-vtfs3.js} +1 -1
  284. package/web-shell/assets/{arc-CbJO0xnT.js → arc-BSTnk5pu.js} +1 -1
  285. package/web-shell/assets/{architectureDiagram-5GKGNRK7-CRh89421.js → architectureDiagram-5GKGNRK7-DCMyiqzy.js} +1 -1
  286. package/web-shell/assets/{blockDiagram-NRAW4CY4-C75KAhKv.js → blockDiagram-NRAW4CY4-C7_gt0r1.js} +1 -1
  287. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BzlMveFB.js → c4Diagram-UCG6FXSJ-BeQg2L8B.js} +1 -1
  288. package/web-shell/assets/channel-CENAhErJ.js +1 -0
  289. package/web-shell/assets/{chunk-2Q5K7J3B-DA8QDX3a.js → chunk-2Q5K7J3B-DnV9bKBe.js} +1 -1
  290. package/web-shell/assets/{chunk-5VM5RSS4-Bgu7gQ7Y.js → chunk-5VM5RSS4-rT1GAcT7.js} +1 -1
  291. package/web-shell/assets/{chunk-F27PBJKO-BOew7pIK.js → chunk-F27PBJKO-BcgSxqGA.js} +1 -1
  292. package/web-shell/assets/{chunk-G27WJ6UU-DHx1I-hO.js → chunk-G27WJ6UU-Bw1ZhyZq.js} +1 -1
  293. package/web-shell/assets/{chunk-JWPE2WC7-SarFW0WU.js → chunk-JWPE2WC7-D4iDw-96.js} +1 -1
  294. package/web-shell/assets/{chunk-LCL6LL3I-BLzP083Z.js → chunk-LCL6LL3I-D3MB3GTZ.js} +1 -1
  295. package/web-shell/assets/{chunk-POPQ4Y6H-Bmkv_iKm.js → chunk-POPQ4Y6H-Cep2ndrS.js} +1 -1
  296. package/web-shell/assets/{chunk-SVP7TREG-MPx9r1N2.js → chunk-SVP7TREG-BuahMHJc.js} +1 -1
  297. package/web-shell/assets/{chunk-XXDRQBXY-Ck-09rKG.js → chunk-XXDRQBXY-BdujIvJY.js} +1 -1
  298. package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +1 -0
  299. package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +1 -0
  300. package/web-shell/assets/{cose-bilkent-JH36ORCC-DWm6lfOG.js → cose-bilkent-JH36ORCC-CGLLUbF8.js} +1 -1
  301. package/web-shell/assets/{cynefin-OW5HDTMX-DcBUyr5R.js → cynefin-OW5HDTMX-D6kDsRSh.js} +1 -1
  302. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Df8qmd_p.js → cynefinDiagram-5FMLGOSQ-CCy78qZx.js} +1 -1
  303. package/web-shell/assets/{dagre-3AP2YEHR-DDmGspD7.js → dagre-3AP2YEHR-D5gJuJsf.js} +1 -1
  304. package/web-shell/assets/{diagram-S7CK7UJ4-BK_qFvbi.js → diagram-S7CK7UJ4-ZwEZ5W__.js} +1 -1
  305. package/web-shell/assets/{diagram-UQ7AKVKN-Uw3AP_bi.js → diagram-UQ7AKVKN-B036APjv.js} +1 -1
  306. package/web-shell/assets/{diagram-VSXAHHWV-CJOQKxY7.js → diagram-VSXAHHWV-BfDJ57Fq.js} +1 -1
  307. package/web-shell/assets/{diagram-VX7I27RA-DhdvZna5.js → diagram-VX7I27RA-Wha0p5rT.js} +1 -1
  308. package/web-shell/assets/{diagram-Z3DM3KII-edQU0nlP.js → diagram-Z3DM3KII-L20bz2K1.js} +1 -1
  309. package/web-shell/assets/{ebnfDiagram-PWID7BFC-4kugBEsO.js → ebnfDiagram-PWID7BFC-D1ZM0Cp7.js} +1 -1
  310. package/web-shell/assets/{erDiagram-SSCWMZ5O-BMkFivWO.js → erDiagram-SSCWMZ5O-CMtA19v8.js} +1 -1
  311. package/web-shell/assets/{flowDiagram-A5DVABFB-BM1ea8g-.js → flowDiagram-A5DVABFB-D96m326S.js} +1 -1
  312. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CXj_cKRf.js → ganttDiagram-EL5Y4UJY-BuHiYG2o.js} +1 -1
  313. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-D0nEqwqu.js → gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js} +1 -1
  314. package/web-shell/assets/index-8hXIpvo4.js +1865 -0
  315. package/web-shell/assets/{index-B6JN54Pd.js → index-CBGz4Qjl.js} +1 -1
  316. package/web-shell/assets/{index-C-XlQn24.css → index-DclEv91i.css} +1 -1
  317. package/web-shell/assets/{infoDiagram-RXCK75RN-DF7aGGbQ.js → infoDiagram-RXCK75RN-B6DAOyXe.js} +1 -1
  318. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CZYNX1lL.js → ishikawaDiagram-5VMMS53U-Bpg-joFo.js} +1 -1
  319. package/web-shell/assets/{journeyDiagram-EYS64GPL-CvrqMUz1.js → journeyDiagram-EYS64GPL-BclrHzGa.js} +1 -1
  320. package/web-shell/assets/{kanban-definition-3QL26DDD-BZNJQZBj.js → kanban-definition-3QL26DDD-5gJzNTYG.js} +1 -1
  321. package/web-shell/assets/{layout-Bf83x7D6.js → layout-CEz_1L8z.js} +1 -1
  322. package/web-shell/assets/{linear-Bkc3ES2f.js → linear-CBjTq9Hc.js} +1 -1
  323. package/web-shell/assets/{mermaid.core-C6xuovwz.js → mermaid.core-Dzhbxx_I.js} +6 -6
  324. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzH6gVRg.js → mindmap-definition-FBJOCRG2-DQdVqlBF.js} +1 -1
  325. package/web-shell/assets/{pegDiagram-XKGWAZYB-DCvLh2fa.js → pegDiagram-XKGWAZYB-D1JZlYXL.js} +1 -1
  326. package/web-shell/assets/{pieDiagram-E7YTZNPT-BtjVlx_6.js → pieDiagram-E7YTZNPT-BmkpYL0w.js} +1 -1
  327. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-IbroqxFe.js → quadrantDiagram-AXDQQJYC-DRvD6co5.js} +1 -1
  328. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BvMykiWW.js → railroadDiagram-O6MQD6OU-CEdjDuoo.js} +1 -1
  329. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D-HHMyrh.js → requirementDiagram-EFPCY7ZU-BCHG-ie8.js} +1 -1
  330. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C0XXhB6d.js → sankeyDiagram-P5KCCOFB-C9cZMnye.js} +1 -1
  331. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DseAXj5d.js → sequenceDiagram-WJ2MYXX4-DYHRV4zL.js} +1 -1
  332. package/web-shell/assets/{sizeCapture-X5ZJPWSS-Cek2EweK.js → sizeCapture-X5ZJPWSS-DlK21aye.js} +1 -1
  333. package/web-shell/assets/{stateDiagram-HBIQ2CUA-yLv8wafW.js → stateDiagram-HBIQ2CUA-BrmZssvk.js} +1 -1
  334. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +1 -0
  335. package/web-shell/assets/{swimlanes-XN3QIQJK-Cwz-opvE.js → swimlanes-XN3QIQJK-D9xfcayR.js} +1 -1
  336. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +8 -0
  337. package/web-shell/assets/{timeline-definition-24CTP7MA-BJuFD7OG.js → timeline-definition-24CTP7MA-D4gdDL_d.js} +1 -1
  338. package/web-shell/assets/{vennDiagram-4TSXK5OY-CNAavdoV.js → vennDiagram-4TSXK5OY-DdhIExjI.js} +1 -1
  339. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-DaIjAidq.js → wardleyDiagram-VM6X3IG4-C9RS_Zof.js} +1 -1
  340. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DkcQXjTy.js → xychartDiagram-S5SC5T6Z-orRgmxWk.js} +1 -1
  341. package/web-shell/index.html +2 -2
  342. package/chunks/MaxSizedBox-XYQOMOBE.js +0 -112
  343. package/chunks/agent-headless-3ZC4LX3E.js +0 -87
  344. package/chunks/bridge-LFFLHLU5.js +0 -119
  345. package/chunks/channel-settings-store-CAL2HWAH.js +0 -117
  346. package/chunks/chunk-JS73NNWF.js +0 -30
  347. package/chunks/chunk-VGHZT6JR.js +0 -51
  348. package/chunks/config-utils-YMJNA25D.js +0 -113
  349. package/chunks/contextCommand-WMPSNKPG.js +0 -108
  350. package/chunks/daemon-status-provider-YBQAZD3G.js +0 -118
  351. package/chunks/daemon-trust-policy-O75ZSIJN.js +0 -114
  352. package/chunks/deferred-core-runtime-MGCCR6LA.js +0 -116
  353. package/chunks/earlyInputCapture-2EJKJET3.js +0 -109
  354. package/chunks/errors-XEI3SJRV.js +0 -115
  355. package/chunks/handleAutoUpdate-S4CLP36D.js +0 -111
  356. package/chunks/initializer-D3CA3272.js +0 -115
  357. package/chunks/installationInfo-HVDQOSIE.js +0 -109
  358. package/chunks/list-XUDSTGT3.js +0 -118
  359. package/chunks/loadedSettingsAdapter-ZOJ4QEID.js +0 -112
  360. package/chunks/mcp-QJ6AUYE5.js +0 -112
  361. package/chunks/nonInteractiveCli-PAWO75YO.js +0 -185
  362. package/chunks/pidfile-RF3WUFKR.js +0 -113
  363. package/chunks/prompt-terminal-ledger-4CCXZ2LF.js +0 -107
  364. package/chunks/resumeHistoryUtils-GFPJD2XB.js +0 -120
  365. package/chunks/serve-GVD2WXVL.js +0 -120
  366. package/chunks/spawnChannel-KTURLD4B.js +0 -113
  367. package/chunks/theme-manager-A7CPN7F4.js +0 -104
  368. package/chunks/total-session-admission-B7U6UWKQ.js +0 -114
  369. package/chunks/useAutoAcceptIndicator-VBT3NKDM.js +0 -122
  370. package/chunks/workspace-providers-status-653DTR35.js +0 -116
  371. package/chunks/workspace-service-KVJWACCS.js +0 -131
  372. package/chunks/workspace-skills-status-TRJ2VWGU.js +0 -115
  373. package/chunks/write-file-EAZSJZKR.js +0 -90
  374. package/web-shell/assets/channel-B3sGR79J.js +0 -1
  375. package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +0 -1
  376. package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +0 -1
  377. package/web-shell/assets/index-DLjXM0dn.js +0 -1860
  378. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +0 -1
  379. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +0 -8
@@ -40,19 +40,26 @@ import {
40
40
  resolveAcpHttpEnabled,
41
41
  setDeferredRuntimeRequestTiming,
42
42
  toDaemonStatusMemoryLimits
43
- } from "./chunk-SQPOJ4ZI.js";
44
- import "./chunk-VGHZT6JR.js";
43
+ } from "./chunk-F6FV3C5K.js";
45
44
  import {
46
- normalizeSessionIdForLookup
47
- } from "./chunk-ZEZKIS2K.js";
48
- import {
49
- isLoopbackBind
50
- } from "./chunk-RXFQM6FQ.js";
45
+ ConversationDirectoryIdentityError,
46
+ assertExactConversationRootIdentity,
47
+ createConversationRootIdentity,
48
+ inspectConversationDirectoryIdentity,
49
+ materializeConversationDirectoryIdentity,
50
+ revalidateConversationRootIdentity
51
+ } from "./chunk-T3WXYEZ4.js";
51
52
  import {
52
53
  formatMemoryBudgetStderr,
53
54
  resolveDaemonMemoryBudget,
54
55
  serveJournalGrowthPoolMb
55
56
  } from "./chunk-UXEO7E3V.js";
57
+ import {
58
+ isLoopbackBind
59
+ } from "./chunk-RXFQM6FQ.js";
60
+ import {
61
+ normalizeSessionIdForLookup
62
+ } from "./chunk-ZEZKIS2K.js";
56
63
  import "./chunk-NYWWQ437.js";
57
64
  import {
58
65
  resolveSessionRestoreTimeoutMs
@@ -90,12 +97,12 @@ import {
90
97
  MAX_REGISTERED_WORKSPACES,
91
98
  resolveWorkspaceInputs,
92
99
  workspaceRegistrationId
93
- } from "./chunk-4IDJQOCO.js";
94
- import "./chunk-ZJG323IA.js";
100
+ } from "./chunk-77RG5SFQ.js";
101
+ import "./chunk-43UYNAWX.js";
95
102
  import {
96
103
  LOAD_REPLAY_META_KEY
97
104
  } from "./chunk-OZ6KS6KW.js";
98
- import "./chunk-624NHDGB.js";
105
+ import "./chunk-ERFDKH32.js";
99
106
  import {
100
107
  canonicalizeWorkspace,
101
108
  translateAndCheckAbsoluteWorkspacePath
@@ -103,26 +110,27 @@ import {
103
110
  import {
104
111
  ExtraCaInspectionError,
105
112
  loadableCertificates
106
- } from "./chunk-PAJGKZAA.js";
113
+ } from "./chunk-4HV6HH33.js";
107
114
  import "./chunk-FYJ7W2PI.js";
108
115
  import "./chunk-Z7B6SRPM.js";
109
116
  import {
110
- ChannelDeliveryError,
111
- ChannelWebhookEnqueueError,
112
- isChannelDeliveryError
113
- } from "./chunk-7CWEZQ6T.js";
117
+ ChannelWebhookEnqueueError
118
+ } from "./chunk-STUJ7IMZ.js";
114
119
  import {
115
120
  normalizeWorkerDiagnostic,
116
121
  sanitizeWorkerDiagnostic
117
122
  } from "./chunk-JVPFTDBK.js";
123
+ import {
124
+ channelSelectionNames
125
+ } from "./chunk-ALMR3E6Q.js";
118
126
  import {
119
127
  QWEN_SERVER_TOKEN_ENV
120
128
  } from "./chunk-GYTKQYDB.js";
121
129
  import {
122
- channelSelectionNames
123
- } from "./chunk-ALMR3E6Q.js";
130
+ ChannelDeliveryError,
131
+ isChannelDeliveryError
132
+ } from "./chunk-RKFGE7JH.js";
124
133
  import "./chunk-UDG5EZJI.js";
125
- import "./chunk-M5GB774H.js";
126
134
  import {
127
135
  EXTERNAL_TOOL_GUARD_PROVIDER_ATTACHED_VALUE,
128
136
  EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
@@ -130,6 +138,7 @@ import {
130
138
  PRIVATE_EXTERNAL_TOOL_GUARD_ENV,
131
139
  PRIVATE_EXTERNAL_TOOL_GUARD_PROVIDER_ENV
132
140
  } from "./chunk-3VUENPWF.js";
141
+ import "./chunk-M5GB774H.js";
133
142
  import {
134
143
  MAX_DAEMON_WORKSPACES
135
144
  } from "./chunk-5HBA2Z7V.js";
@@ -150,7 +159,7 @@ import {
150
159
  } from "./chunk-5PA6UEYA.js";
151
160
  import {
152
161
  getCliVersion
153
- } from "./chunk-H4JK2A2V.js";
162
+ } from "./chunk-7UYV53BC.js";
154
163
  import "./chunk-W3N5XAZ6.js";
155
164
  import "./chunk-NPQ5ZKRP.js";
156
165
  import {
@@ -193,7 +202,7 @@ import {
193
202
  // packages/cli/src/serve/run-qwen-serve.ts
194
203
  init_esbuild_shims();
195
204
  var import_express = __toESM(require_express(), 1);
196
- import { X509Certificate, createHash as createHash3, timingSafeEqual } from "node:crypto";
205
+ import { X509Certificate, createHash as createHash2, timingSafeEqual } from "node:crypto";
197
206
  import { execFile } from "node:child_process";
198
207
  import * as fs from "node:fs";
199
208
  import { createServer } from "node:http";
@@ -1404,7 +1413,7 @@ function createConcreteLogger(input) {
1404
1413
  }
1405
1414
  });
1406
1415
  let timeout;
1407
- const deadline = new Promise((resolve4) => {
1416
+ const deadline = new Promise((resolve3) => {
1408
1417
  timeout = setTimeout(() => {
1409
1418
  try {
1410
1419
  input.warnOnce(
@@ -1413,7 +1422,7 @@ function createConcreteLogger(input) {
1413
1422
  );
1414
1423
  } catch {
1415
1424
  } finally {
1416
- resolve4();
1425
+ resolve3();
1417
1426
  }
1418
1427
  }, input.policy.closeDrainBudgetMs);
1419
1428
  timeout.unref();
@@ -1761,249 +1770,7 @@ __name(initDaemonLogger, "initDaemonLogger");
1761
1770
  init_esbuild_shims();
1762
1771
  import { readdir, rmdir } from "node:fs/promises";
1763
1772
  import { homedir } from "node:os";
1764
- import { resolve as resolve2 } from "node:path";
1765
-
1766
- // packages/cli/src/utils/conversation-directory-identity.ts
1767
- init_esbuild_shims();
1768
- import { createHash as createHash2 } from "node:crypto";
1769
- import { lstat, mkdir, realpath } from "node:fs/promises";
1770
- import { isAbsolute, join as join2, relative as relative2, resolve, sep } from "node:path";
1771
- function hasVerifiableInode(ino) {
1772
- return Number(ino) !== 0;
1773
- }
1774
- __name(hasVerifiableInode, "hasVerifiableInode");
1775
- var ConversationDirectoryIdentityError = class extends Error {
1776
- constructor(scope, reason, cause) {
1777
- super(
1778
- `Conversation ${scope} identity validation failed: ${reason}`,
1779
- cause !== void 0 ? { cause } : void 0
1780
- );
1781
- this.scope = scope;
1782
- this.reason = reason;
1783
- }
1784
- static {
1785
- __name(this, "ConversationDirectoryIdentityError");
1786
- }
1787
- name = "ConversationDirectoryIdentityError";
1788
- };
1789
- function throwIdentityIoError(scope, cause) {
1790
- throw new ConversationDirectoryIdentityError(scope, "io_error", cause);
1791
- }
1792
- __name(throwIdentityIoError, "throwIdentityIoError");
1793
- var isSameConversationPath = /* @__PURE__ */ __name((left, right) => process.platform === "win32" ? left.toLowerCase() === right.toLowerCase() : left === right, "isSameConversationPath");
1794
- function getConversationDirectoryName(storageSessionId) {
1795
- if (storageSessionId.length === 0 || storageSessionId.length > 256) {
1796
- throw new ConversationDirectoryIdentityError("child", "invalid_session_id");
1797
- }
1798
- return `conversation-${createHash2("sha256").update(storageSessionId).digest("hex")}`;
1799
- }
1800
- __name(getConversationDirectoryName, "getConversationDirectoryName");
1801
- function validateDirectoryStats(stats, scope) {
1802
- if (stats.isSymbolicLink() || !stats.isDirectory()) {
1803
- throw new ConversationDirectoryIdentityError(scope, "not_directory");
1804
- }
1805
- if (process.platform !== "win32" && typeof process.getuid === "function" && stats.uid !== process.getuid()) {
1806
- throw new ConversationDirectoryIdentityError(scope, "wrong_owner");
1807
- }
1808
- if (process.platform !== "win32" && (stats.mode & 63) !== 0) {
1809
- throw new ConversationDirectoryIdentityError(scope, "wrong_mode");
1810
- }
1811
- }
1812
- __name(validateDirectoryStats, "validateDirectoryStats");
1813
- function hasRootIdentity(stats, root) {
1814
- if (!root.inodeVerifiable) return stats.dev === root.device;
1815
- return hasVerifiableInode(stats.ino) && stats.dev === root.device && stats.ino === root.inode;
1816
- }
1817
- __name(hasRootIdentity, "hasRootIdentity");
1818
- function isSameDirectoryIdentity(before, after) {
1819
- if (!hasVerifiableInode(before.ino) || !hasVerifiableInode(after.ino)) {
1820
- return before.dev === after.dev;
1821
- }
1822
- return before.dev === after.dev && before.ino === after.ino;
1823
- }
1824
- __name(isSameDirectoryIdentity, "isSameDirectoryIdentity");
1825
- function hasExpectedDirectoryIdentity(identity, expected) {
1826
- const inodesProvable = hasVerifiableInode(identity.inode) && hasVerifiableInode(expected.inode);
1827
- return identity.storageSessionId === expected.storageSessionId && identity.name === expected.name && isSameConversationPath(identity.canonicalPath, expected.canonicalPath) && identity.device === expected.device && (!inodesProvable || identity.inode === expected.inode) && isSameConversationPath(
1828
- identity.root.configuredRoot,
1829
- expected.root.configuredRoot
1830
- ) && isSameConversationPath(
1831
- identity.root.canonicalRoot,
1832
- expected.root.canonicalRoot
1833
- ) && identity.root.device === expected.root.device && (!identity.root.inodeVerifiable || !expected.root.inodeVerifiable || identity.root.inode === expected.root.inode);
1834
- }
1835
- __name(hasExpectedDirectoryIdentity, "hasExpectedDirectoryIdentity");
1836
- async function createConversationRootIdentity(configuredRoot) {
1837
- try {
1838
- await mkdir(configuredRoot, { recursive: true, mode: 448 });
1839
- } catch (error) {
1840
- let existing;
1841
- try {
1842
- existing = await lstat(configuredRoot);
1843
- } catch {
1844
- throwIdentityIoError("root", error);
1845
- }
1846
- validateDirectoryStats(existing, "root");
1847
- throwIdentityIoError("root", error);
1848
- }
1849
- let before;
1850
- try {
1851
- before = await lstat(configuredRoot);
1852
- } catch (error) {
1853
- throwIdentityIoError("root", error);
1854
- }
1855
- validateDirectoryStats(before, "root");
1856
- let canonicalRoot;
1857
- let after;
1858
- try {
1859
- canonicalRoot = await realpath(configuredRoot);
1860
- after = await lstat(canonicalRoot);
1861
- } catch (error) {
1862
- throwIdentityIoError("root", error);
1863
- }
1864
- validateDirectoryStats(after, "root");
1865
- if (!isSameDirectoryIdentity(before, after)) {
1866
- throw new ConversationDirectoryIdentityError("root", "identity_changed");
1867
- }
1868
- return {
1869
- configuredRoot,
1870
- canonicalRoot,
1871
- device: after.dev,
1872
- inode: after.ino,
1873
- inodeVerifiable: hasVerifiableInode(after.ino)
1874
- };
1875
- }
1876
- __name(createConversationRootIdentity, "createConversationRootIdentity");
1877
- async function revalidateConversationRootIdentity(root) {
1878
- let configuredStats;
1879
- try {
1880
- configuredStats = await lstat(root.configuredRoot);
1881
- } catch (error) {
1882
- throwIdentityIoError("root", error);
1883
- }
1884
- validateDirectoryStats(configuredStats, "root");
1885
- if (!hasRootIdentity(configuredStats, root)) {
1886
- throw new ConversationDirectoryIdentityError("root", "identity_changed");
1887
- }
1888
- let canonical;
1889
- try {
1890
- canonical = await realpath(root.configuredRoot);
1891
- } catch (error) {
1892
- throwIdentityIoError("root", error);
1893
- }
1894
- if (!isSameConversationPath(canonical, root.canonicalRoot)) {
1895
- throw new ConversationDirectoryIdentityError(
1896
- "root",
1897
- "canonical_path_changed"
1898
- );
1899
- }
1900
- let canonicalStats;
1901
- try {
1902
- canonicalStats = await lstat(root.canonicalRoot);
1903
- } catch (error) {
1904
- throwIdentityIoError("root", error);
1905
- }
1906
- validateDirectoryStats(canonicalStats, "root");
1907
- if (!hasRootIdentity(canonicalStats, root)) {
1908
- throw new ConversationDirectoryIdentityError("root", "identity_changed");
1909
- }
1910
- return root;
1911
- }
1912
- __name(revalidateConversationRootIdentity, "revalidateConversationRootIdentity");
1913
- async function assertExactConversationRootIdentity(root, candidate) {
1914
- await revalidateConversationRootIdentity(root);
1915
- const resolvedCandidate = resolve(candidate);
1916
- if (!isSameConversationPath(resolvedCandidate, root.configuredRoot) && !isSameConversationPath(resolvedCandidate, root.canonicalRoot)) {
1917
- throw new ConversationDirectoryIdentityError("root", "unexpected_identity");
1918
- }
1919
- let stats;
1920
- let canonical;
1921
- try {
1922
- stats = await lstat(resolvedCandidate);
1923
- validateDirectoryStats(stats, "root");
1924
- canonical = await realpath(resolvedCandidate);
1925
- } catch (error) {
1926
- if (error instanceof ConversationDirectoryIdentityError) throw error;
1927
- throwIdentityIoError("root", error);
1928
- }
1929
- if (!isSameConversationPath(canonical, root.canonicalRoot) || !hasRootIdentity(stats, root)) {
1930
- throw new ConversationDirectoryIdentityError("root", "unexpected_identity");
1931
- }
1932
- return root;
1933
- }
1934
- __name(assertExactConversationRootIdentity, "assertExactConversationRootIdentity");
1935
- async function inspectConversationDirectoryIdentity(root, storageSessionId, expected) {
1936
- await revalidateConversationRootIdentity(root);
1937
- const name = getConversationDirectoryName(storageSessionId);
1938
- const candidate = join2(root.canonicalRoot, name);
1939
- let before;
1940
- try {
1941
- before = await lstat(candidate);
1942
- } catch (error) {
1943
- if (error.code === "ENOENT") return void 0;
1944
- throwIdentityIoError("child", error);
1945
- }
1946
- validateDirectoryStats(before, "child");
1947
- let canonical;
1948
- let after;
1949
- try {
1950
- canonical = await realpath(candidate);
1951
- after = await lstat(canonical);
1952
- } catch (error) {
1953
- if (error.code === "ENOENT") return void 0;
1954
- throwIdentityIoError("child", error);
1955
- }
1956
- validateDirectoryStats(after, "child");
1957
- const child = relative2(root.canonicalRoot, canonical);
1958
- if (child !== name || child.includes(sep) || child.startsWith("..") || isAbsolute(child)) {
1959
- throw new ConversationDirectoryIdentityError("child", "not_direct_child");
1960
- }
1961
- if (!isSameDirectoryIdentity(before, after)) {
1962
- throw new ConversationDirectoryIdentityError("child", "identity_changed");
1963
- }
1964
- await revalidateConversationRootIdentity(root);
1965
- const identity = {
1966
- root,
1967
- storageSessionId,
1968
- name,
1969
- canonicalPath: canonical,
1970
- device: after.dev,
1971
- inode: after.ino
1972
- };
1973
- if (expected && !hasExpectedDirectoryIdentity(identity, expected)) {
1974
- throw new ConversationDirectoryIdentityError(
1975
- "child",
1976
- "unexpected_identity"
1977
- );
1978
- }
1979
- return identity;
1980
- }
1981
- __name(inspectConversationDirectoryIdentity, "inspectConversationDirectoryIdentity");
1982
- async function materializeConversationDirectoryIdentity(root, storageSessionId) {
1983
- await revalidateConversationRootIdentity(root);
1984
- const name = getConversationDirectoryName(storageSessionId);
1985
- const candidate = join2(root.canonicalRoot, name);
1986
- let created = false;
1987
- try {
1988
- await mkdir(candidate, { mode: 448 });
1989
- created = true;
1990
- } catch (error) {
1991
- if (error.code !== "EEXIST") {
1992
- throwIdentityIoError("child", error);
1993
- }
1994
- }
1995
- const identity = await inspectConversationDirectoryIdentity(
1996
- root,
1997
- storageSessionId
1998
- );
1999
- if (!identity) {
2000
- throw new ConversationDirectoryIdentityError("child", "identity_changed");
2001
- }
2002
- return { identity, created };
2003
- }
2004
- __name(materializeConversationDirectoryIdentity, "materializeConversationDirectoryIdentity");
2005
-
2006
- // packages/cli/src/serve/conversations/conversation-workspace.ts
1773
+ import { resolve } from "node:path";
2007
1774
  function liveIdentityError(error, exactRoot = false, creatingRoot = false) {
2008
1775
  if (!(error instanceof ConversationDirectoryIdentityError)) throw error;
2009
1776
  if (error.reason === "io_error" && error.cause !== void 0) {
@@ -2061,7 +1828,7 @@ function liveIdentityError(error, exactRoot = false, creatingRoot = false) {
2061
1828
  }
2062
1829
  __name(liveIdentityError, "liveIdentityError");
2063
1830
  function getConversationRootPath(homeDir = homedir()) {
2064
- return resolve2(homeDir, "Documents", "Qwen Code", "Conversations");
1831
+ return resolve(homeDir, "Documents", "Qwen Code", "Conversations");
2065
1832
  }
2066
1833
  __name(getConversationRootPath, "getConversationRootPath");
2067
1834
  async function revalidateConversationRoot(root) {
@@ -3105,8 +2872,8 @@ async function flushDaemonLogBounded(daemonLog, budgetMs) {
3105
2872
  await Promise.race([
3106
2873
  daemonLog.flush().catch(() => {
3107
2874
  }),
3108
- new Promise((resolve4) => {
3109
- timer = setTimeout(resolve4, budgetMs);
2875
+ new Promise((resolve3) => {
2876
+ timer = setTimeout(resolve3, budgetMs);
3110
2877
  timer.unref();
3111
2878
  })
3112
2879
  ]);
@@ -3337,7 +3104,7 @@ try {
3337
3104
  `;
3338
3105
  async function verifyWorkerTlsTrust(opts) {
3339
3106
  const timeoutMs = opts.timeoutMs ?? 5e3;
3340
- return new Promise((resolve4) => {
3107
+ return new Promise((resolve3) => {
3341
3108
  execFile(
3342
3109
  process.execPath,
3343
3110
  [
@@ -3358,10 +3125,10 @@ async function verifyWorkerTlsTrust(opts) {
3358
3125
  (error, stdout) => {
3359
3126
  try {
3360
3127
  const result = JSON.parse(stdout);
3361
- resolve4(result.ok ? void 0 : result);
3128
+ resolve3(result.ok ? void 0 : result);
3362
3129
  } catch {
3363
3130
  const failure = error;
3364
- resolve4({
3131
+ resolve3({
3365
3132
  code: failure?.code != null ? String(failure.code) : "WORKER_TLS_VERIFY_FAILED",
3366
3133
  message: failure?.message ?? "TLS verification probe failed."
3367
3134
  });
@@ -3799,12 +3566,12 @@ __name(hasRetryableChannelWorkerShutdownError, "hasRetryableChannelWorkerShutdow
3799
3566
  var channelWorkerRuntimePromise;
3800
3567
  async function loadChannelWorkerRuntime() {
3801
3568
  channelWorkerRuntimePromise ??= Promise.all([
3802
- import("./channel-worker-supervisor-YSKB5GVB.js"),
3803
- import("./pidfile-RF3WUFKR.js"),
3804
- import("./runtime-INDSJB4K.js"),
3569
+ import("./channel-worker-supervisor-UEW2WWCC.js"),
3570
+ import("./pidfile-JMF2CLMY.js"),
3571
+ import("./runtime-TTIGSBM4.js"),
3805
3572
  import("./cli-entry-path-4VJ3Y6T2.js"),
3806
- import("./channel-worker-group-EVDC2P4K.js"),
3807
- import("./channel-worker-manager-IJJZHGEI.js")
3573
+ import("./channel-worker-group-27HMGD5S.js"),
3574
+ import("./channel-worker-manager-QEGX646Z.js")
3808
3575
  ]).then(
3809
3576
  ([
3810
3577
  supervisor,
@@ -3910,7 +3677,7 @@ function shouldPreheatBridge(deps) {
3910
3677
  __name(shouldPreheatBridge, "shouldPreheatBridge");
3911
3678
  var coreRuntimePromise;
3912
3679
  function loadCoreRuntime() {
3913
- coreRuntimePromise ??= import("./core-runtime-6TBMEULI.js");
3680
+ coreRuntimePromise ??= import("./core-runtime-677KFX6Q.js");
3914
3681
  return coreRuntimePromise;
3915
3682
  }
3916
3683
  __name(loadCoreRuntime, "loadCoreRuntime");
@@ -3946,10 +3713,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
3946
3713
  var settingsRuntimePromise;
3947
3714
  function loadSettingsRuntimeModules() {
3948
3715
  settingsRuntimePromise ??= Promise.all([
3949
- import("./settings-IVGC4UYK.js"),
3950
- import("./environment-XJ75LJ6N.js"),
3951
- import("./loadedSettingsAdapter-ZOJ4QEID.js"),
3952
- import("./trustedFolders-B4LPJBFK.js")
3716
+ import("./settings-VOZYKLTT.js"),
3717
+ import("./environment-MOZMPUHR.js"),
3718
+ import("./loadedSettingsAdapter-7Y7IEI6T.js"),
3719
+ import("./trustedFolders-7OCNMUQE.js")
3953
3720
  ]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
3954
3721
  settings,
3955
3722
  environment,
@@ -3962,8 +3729,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
3962
3729
  var channelWebhookConfigRuntimePromise;
3963
3730
  function loadChannelWebhookConfigRuntime() {
3964
3731
  channelWebhookConfigRuntimePromise ??= Promise.all([
3965
- import("./runtime-INDSJB4K.js"),
3966
- import("./config-utils-YMJNA25D.js")
3732
+ import("./runtime-TTIGSBM4.js"),
3733
+ import("./config-utils-BBOCOGZW.js")
3967
3734
  ]).then(([channelRuntime, configUtils]) => ({
3968
3735
  loadChannelsConfig: channelRuntime.loadChannelsConfig,
3969
3736
  parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
@@ -3989,18 +3756,18 @@ async function loadServeRuntimeModules() {
3989
3756
  workspaceRegistryModule,
3990
3757
  promptLedgerModule
3991
3758
  ] = await Promise.all([
3992
- import("./server-PSN5OOSX.js"),
3993
- import("./bridge-LFFLHLU5.js"),
3994
- import("./spawnChannel-KTURLD4B.js"),
3759
+ import("./server-DFUSSSHI.js"),
3760
+ import("./bridge-FKZTVIS3.js"),
3761
+ import("./spawnChannel-F6WVP723.js"),
3995
3762
  import("./process-registry-PMJOA5CO.js"),
3996
- import("./workspace-service-KVJWACCS.js"),
3763
+ import("./workspace-service-MUYO2QIC.js"),
3997
3764
  import("./types-WYCFCEHR.js"),
3998
- import("./daemon-status-provider-YBQAZD3G.js"),
3999
- import("./workspace-providers-status-653DTR35.js"),
4000
- import("./workspace-skills-status-TRJ2VWGU.js"),
4001
- import("./total-session-admission-B7U6UWKQ.js"),
4002
- import("./workspace-registry-XTLCD7Z2.js"),
4003
- import("./prompt-terminal-ledger-4CCXZ2LF.js")
3765
+ import("./daemon-status-provider-RFKZOK3S.js"),
3766
+ import("./workspace-providers-status-PDFZWL5Q.js"),
3767
+ import("./workspace-skills-status-IKECTOOQ.js"),
3768
+ import("./total-session-admission-HTVTP4BS.js"),
3769
+ import("./workspace-registry-23R7XRB5.js"),
3770
+ import("./prompt-terminal-ledger-DCZO6S7C.js")
4004
3771
  ]);
4005
3772
  return {
4006
3773
  createServeApp: serverModule.createServeApp,
@@ -4045,7 +3812,7 @@ function sessionIdleTimeoutMs(value) {
4045
3812
  return value !== void 0 ? channelIdleTimeoutMs(value) : DEFAULT_SESSION_IDLE_TIMEOUT_MS;
4046
3813
  }
4047
3814
  __name(sessionIdleTimeoutMs, "sessionIdleTimeoutMs");
4048
- function currentServeFeaturesForRunQwenServe(opts, sessionShellCommandEnabled, sessionArtifactsPersistenceAvailable, env) {
3815
+ function currentServeFeaturesForRunQwenServe(opts, sessionShellCommandEnabled, sessionArtifactsPersistenceAvailable, currentSessionSchedulingAvailable, env) {
4049
3816
  return getAdvertisedServeFeatures(void 0, {
4050
3817
  requireAuth: opts.requireAuth === true,
4051
3818
  mcpPoolActive: opts.mcpPoolActive !== false,
@@ -4057,6 +3824,7 @@ function currentServeFeaturesForRunQwenServe(opts, sessionShellCommandEnabled, s
4057
3824
  sessionShellCommandEnabled,
4058
3825
  sessionArtifactsPersistenceAvailable,
4059
3826
  sessionGenerationAvailable: true,
3827
+ currentSessionSchedulingAvailable,
4060
3828
  workspaceGenerationAvailable: true,
4061
3829
  rateLimit: opts.rateLimit === true,
4062
3830
  reloadAvailable: true,
@@ -4083,6 +3851,7 @@ function createBootstrapCapabilities(input) {
4083
3851
  input.opts,
4084
3852
  input.sessionShellCommandEnabled,
4085
3853
  input.sessionArtifactsPersistenceAvailable,
3854
+ input.currentSessionSchedulingAvailable,
4086
3855
  input.env
4087
3856
  ),
4088
3857
  modelServices: [],
@@ -4198,12 +3967,12 @@ async function waitForRuntimeStartingForShutdown(runtimeStarting, daemonLog, tim
4198
3967
  let timer;
4199
3968
  await Promise.race([
4200
3969
  runtimeStarting,
4201
- new Promise((resolve4) => {
3970
+ new Promise((resolve3) => {
4202
3971
  timer = setTimeout(() => {
4203
3972
  daemonLog.warn(
4204
3973
  `${timeoutMs}ms runtime-startup wait reached during shutdown; continuing listener close`
4205
3974
  );
4206
- resolve4();
3975
+ resolve3();
4207
3976
  }, timeoutMs);
4208
3977
  timer.unref();
4209
3978
  })
@@ -4242,6 +4011,7 @@ function createBootstrapServeApp(input) {
4242
4011
  qwenCodeVersion,
4243
4012
  sessionShellCommandEnabled,
4244
4013
  sessionArtifactsPersistenceAvailable,
4014
+ currentSessionSchedulingAvailable,
4245
4015
  permissionPolicy,
4246
4016
  multiWorkspaceCapabilitiesRequireRuntime,
4247
4017
  getRuntimeError,
@@ -4301,6 +4071,7 @@ function createBootstrapServeApp(input) {
4301
4071
  qwenCodeVersion,
4302
4072
  sessionShellCommandEnabled,
4303
4073
  sessionArtifactsPersistenceAvailable,
4074
+ currentSessionSchedulingAvailable,
4304
4075
  permissionPolicy,
4305
4076
  env: process.env
4306
4077
  })
@@ -4418,6 +4189,7 @@ function createBootstrapServeApp(input) {
4418
4189
  opts,
4419
4190
  sessionShellCommandEnabled,
4420
4191
  sessionArtifactsPersistenceAvailable,
4192
+ currentSessionSchedulingAvailable,
4421
4193
  process.env
4422
4194
  )
4423
4195
  },
@@ -4614,8 +4386,8 @@ function matchesWebhookSecret(candidate, expected) {
4614
4386
  if (typeof candidate !== "string" || typeof expected !== "string" || expected.length === 0) {
4615
4387
  return false;
4616
4388
  }
4617
- const expectedDigest = createHash3("sha256").update(expected).digest();
4618
- const candidateDigest = createHash3("sha256").update(candidate).digest();
4389
+ const expectedDigest = createHash2("sha256").update(expected).digest();
4390
+ const candidateDigest = createHash2("sha256").update(candidate).digest();
4619
4391
  return timingSafeEqual(expectedDigest, candidateDigest);
4620
4392
  }
4621
4393
  __name(matchesWebhookSecret, "matchesWebhookSecret");
@@ -5041,7 +4813,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5041
4813
  }
5042
4814
  let workspaceRegistrationStore = deps.workspaceRegistrationStore;
5043
4815
  if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
5044
- const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-H375IYR2.js");
4816
+ const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-XKVW2YVH.js");
5045
4817
  workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
5046
4818
  }
5047
4819
  if (workspaceRegistrationStore) {
@@ -5325,7 +5097,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5325
5097
  "qwen serve: required external tool guard handshake succeeded."
5326
5098
  );
5327
5099
  }
5328
- const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-TYLESM6G.js");
5100
+ const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-6MVAAZZZ.js");
5329
5101
  const daemonToolGuardHandler = createDaemonToolGuard(
5330
5102
  externalToolGuardHandler
5331
5103
  );
@@ -5371,8 +5143,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5371
5143
  let resolveServeAppStartup;
5372
5144
  let rejectServeAppStartup;
5373
5145
  let serveAppStartupSettled = false;
5374
- const serveAppStartupReady = new Promise((resolve4, reject) => {
5375
- resolveServeAppStartup = resolve4;
5146
+ const serveAppStartupReady = new Promise((resolve3, reject) => {
5147
+ resolveServeAppStartup = resolve3;
5376
5148
  rejectServeAppStartup = reject;
5377
5149
  });
5378
5150
  void serveAppStartupReady.catch(() => void 0);
@@ -5402,8 +5174,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5402
5174
  let startRuntimeAfterHealth;
5403
5175
  let startRuntimeForRequest;
5404
5176
  const deferRuntimeUntilFirstHealth = deps.resolveOnListen === true && deps.deferRuntimeUntilFirstHealth === true;
5405
- const runtimeReady = new Promise((resolve4, reject) => {
5406
- markRuntimeReady = resolve4;
5177
+ const runtimeReady = new Promise((resolve3, reject) => {
5178
+ markRuntimeReady = resolve3;
5407
5179
  markRuntimeFailed = reject;
5408
5180
  });
5409
5181
  void runtimeReady.catch(() => {
@@ -5664,7 +5436,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5664
5436
  loadCoreRuntime(),
5665
5437
  loadSettingsRuntimeModules(),
5666
5438
  cliVersionPromise,
5667
- import("./daemon-trust-policy-O75ZSIJN.js")
5439
+ import("./daemon-trust-policy-DRZPFB4Q.js")
5668
5440
  ]);
5669
5441
  cliVersion = resolvedCliVersion;
5670
5442
  settingsRuntime.environment.preResolveHomeEnvOverrides();
@@ -6040,7 +5812,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6040
5812
  resolveSkillSettings,
6041
5813
  skillSettingStrings,
6042
5814
  updateWorkspaceSkillSettingLists
6043
- } = await import("./skill-settings-WVRXLTK4.js");
5815
+ } = await import("./skill-settings-VA4XVYVL.js");
6044
5816
  const fresh = loadSettingsForPersistence(workspace);
6045
5817
  const normalizedName = skillName.trim().toLowerCase();
6046
5818
  const resolved = resolveSkillSettings(fresh);
@@ -6105,7 +5877,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6105
5877
  resolveSkillSettings,
6106
5878
  skillSettingStrings,
6107
5879
  updateWorkspaceSkillSettingLists
6108
- } = await import("./skill-settings-WVRXLTK4.js");
5880
+ } = await import("./skill-settings-VA4XVYVL.js");
6109
5881
  const fresh = loadSettingsForPersistence(workspace);
6110
5882
  const resolved = resolveSkillSettings(fresh);
6111
5883
  const initialDisabled = skillSettingStrings(
@@ -6210,7 +5982,43 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6210
5982
  );
6211
5983
  }
6212
5984
  }), "persistSettingsFn");
6213
- const { createSubSessionLauncher } = await import("./create-sub-session-SAOMTP62.js");
5985
+ const [{ createSubSessionLauncher }, scheduledTaskRoutes] = await Promise.all([
5986
+ import("./create-sub-session-JKZAYZX7.js"),
5987
+ import("./scheduled-tasks-QB4ZVUQS.js")
5988
+ ]);
5989
+ const createCurrentSessionScheduledTaskHandler = /* @__PURE__ */ __name((workspaceCwd, runtimeBaseDir, getBridge, assertGenerationOpen) => async ({
5990
+ callerSessionId,
5991
+ cron,
5992
+ prompt,
5993
+ recurring,
5994
+ assertCallerPromptActive
5995
+ }) => {
5996
+ const targetBridge = getBridge();
5997
+ if (!targetBridge) {
5998
+ throw new Error(
5999
+ "Current-session scheduling is unavailable while the workspace runtime is starting."
6000
+ );
6001
+ }
6002
+ const task = await scheduledTaskRoutes.createScheduledTaskWithExistingSession(
6003
+ {
6004
+ workspaceCwd,
6005
+ runtimeBaseDir,
6006
+ bridge: targetBridge,
6007
+ assertGenerationOpen,
6008
+ resolveLiveSessionOwner: /* @__PURE__ */ __name((sessionId) => workspaceRegistryForPersistence.current === void 0 ? { kind: "unavailable" } : workspaceRegistryForPersistence.current.resolveLiveSessionOwner(
6009
+ sessionId
6010
+ ), "resolveLiveSessionOwner")
6011
+ },
6012
+ {
6013
+ sessionId: callerSessionId,
6014
+ cron,
6015
+ prompt,
6016
+ recurring
6017
+ },
6018
+ { source: "cron-tool", assertCallerPromptActive }
6019
+ );
6020
+ return { id: task.id, cron: task.cron };
6021
+ }, "createCurrentSessionScheduledTaskHandler");
6214
6022
  const subSessionLauncher = createSubSessionLauncher({
6215
6023
  getBridge: /* @__PURE__ */ __name(() => bridgeRef, "getBridge"),
6216
6024
  boundWorkspace,
@@ -6227,6 +6035,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6227
6035
  // connection that hosts a named client MCP server (#5626).
6228
6036
  clientMcpSender: clientMcpSenderRegistry.lookup,
6229
6037
  onCreateSubSession: subSessionLauncher.launch,
6038
+ onCreateCurrentSessionScheduledTask: createCurrentSessionScheduledTaskHandler(
6039
+ boundWorkspace,
6040
+ primarySessionRuntimeBaseDir,
6041
+ () => bridgeRef,
6042
+ () => primaryGenerationGuard.assertOpen()
6043
+ ),
6230
6044
  onChannelDelivery: createBoundChannelDeliveryHandler(
6231
6045
  boundWorkspace,
6232
6046
  () => channelWorkerManager,
@@ -6572,6 +6386,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6572
6386
  ),
6573
6387
  clientMcpSender: secondaryClientMcpSenderRegistry.lookup,
6574
6388
  onCreateSubSession: secondarySubSessionLauncher.launch,
6389
+ onCreateCurrentSessionScheduledTask: createCurrentSessionScheduledTaskHandler(
6390
+ workspaceInput.cwd,
6391
+ secondaryEnv.sessionRuntimeBaseDir,
6392
+ () => secondaryBridgeRef,
6393
+ () => secondaryGenerationGuard.assertOpen()
6394
+ ),
6575
6395
  onChannelDelivery: createBoundChannelDeliveryHandler(
6576
6396
  workspaceInput.cwd,
6577
6397
  () => channelWorkerManager,
@@ -6931,6 +6751,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6931
6751
  boundWorkspace: cwd,
6932
6752
  ...provenance === "live-conversation" ? {
6933
6753
  notifySentCompletion: true,
6754
+ getStandaloneSessionService: /* @__PURE__ */ __name(() => (runtimeApp ?? runtimeAppForCleanup)?.locals?.["standaloneSessionService"], "getStandaloneSessionService"),
6934
6755
  isolatedWorkspace: {
6935
6756
  materializeDirectory: /* @__PURE__ */ __name((sessionId) => liveConversationWorkspace.materializeConversationDirectory(
6936
6757
  sessionId
@@ -6953,6 +6774,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6953
6774
  ),
6954
6775
  clientMcpSender: wsClientMcpRegistry.lookup,
6955
6776
  onCreateSubSession: wsSubSessionLauncher.launch,
6777
+ onCreateCurrentSessionScheduledTask: createCurrentSessionScheduledTaskHandler(
6778
+ cwd,
6779
+ wsEnv.sessionRuntimeBaseDir,
6780
+ () => wsBridgeRef,
6781
+ () => generationGuard.assertOpen()
6782
+ ),
6956
6783
  onChannelDelivery: createBoundChannelDeliveryHandler(
6957
6784
  cwd,
6958
6785
  () => channelWorkerManager,
@@ -7439,8 +7266,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7439
7266
  { createChannelManagementService },
7440
7267
  { WorkspaceChannelSettingsStore }
7441
7268
  ] = await Promise.all([
7442
- import("./channel-management-service-HXXS3HOZ.js"),
7443
- import("./channel-settings-store-CAL2HWAH.js")
7269
+ import("./channel-management-service-X4AZ6IXX.js"),
7270
+ import("./channel-settings-store-4UFCLBBG.js")
7444
7271
  ]);
7445
7272
  return createChannelManagementService({
7446
7273
  workspaceCwd: targetRuntime.workspaceCwd,
@@ -7520,6 +7347,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7520
7347
  // (keepalive) and reloads them on boot (rehydration). Off by default so
7521
7348
  // direct createServeApp embeds/tests don't spawn sessions.
7522
7349
  manageScheduledTaskSessions: true,
7350
+ currentSessionSchedulingAvailable: deps.bridge === void 0,
7523
7351
  fsFactory: routeFsFactory,
7524
7352
  primaryWorkspaceTrusted: trustedWorkspace,
7525
7353
  primaryRuntimeEnv,
@@ -7644,8 +7472,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7644
7472
  { createWorkspaceTrustReconciler },
7645
7473
  { createDaemonTrustPolicyMonitor }
7646
7474
  ] = await Promise.all([
7647
- import("./workspace-trust-reconciler-6SC6RKQE.js"),
7648
- import("./daemon-trust-policy-monitor-WWX7I7P6.js")
7475
+ import("./workspace-trust-reconciler-KLGOB53D.js"),
7476
+ import("./daemon-trust-policy-monitor-B5U6TQX5.js")
7649
7477
  ]);
7650
7478
  const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
7651
7479
  const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
@@ -7740,7 +7568,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7740
7568
  handle?.disposeWorkspace(runtimeToDispose.workspaceId);
7741
7569
  const deadline = Date.now() + 1e3;
7742
7570
  while ((handle?.getWorkspaceActivity(runtimeToDispose.workspaceId).memoryTasks ?? 0) > 0 && Date.now() < deadline) {
7743
- await new Promise((resolve4) => setTimeout(resolve4, 25));
7571
+ await new Promise((resolve3) => setTimeout(resolve3, 25));
7744
7572
  }
7745
7573
  if ((handle?.getWorkspaceActivity(runtimeToDispose.workspaceId).memoryTasks ?? 0) > 0) {
7746
7574
  throw new Error(
@@ -7817,6 +7645,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7817
7645
  qwenCodeVersion: cliVersion,
7818
7646
  sessionShellCommandEnabled,
7819
7647
  sessionArtifactsPersistenceAvailable,
7648
+ currentSessionSchedulingAvailable: false,
7820
7649
  permissionPolicy,
7821
7650
  multiWorkspaceCapabilitiesRequireRuntime: workspaceInputs.length > 1,
7822
7651
  getRuntimeError: /* @__PURE__ */ __name(() => runtimeStartupError, "getRuntimeError"),
@@ -7860,7 +7689,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7860
7689
  );
7861
7690
  }
7862
7691
  const channelValidationSettingsRuntime = opts.channelSelection ? await loadSettingsRuntimeModules() : void 0;
7863
- const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-O75ZSIJN.js") : void 0;
7692
+ const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-DRZPFB4Q.js") : void 0;
7864
7693
  const channelValidationTrustSnapshot = channelValidationTrustPolicy ? await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot() : void 0;
7865
7694
  const resolveChannelWorkspaceGroupsAtListen = /* @__PURE__ */ __name(() => {
7866
7695
  if (!opts.channelSelection || !channelValidationSettingsRuntime || !channelRuntime) {
@@ -7966,7 +7795,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7966
7795
  if (opts.channelSelection) {
7967
7796
  reserveChannelServicePidfile(opts.channelSelection);
7968
7797
  }
7969
- return await new Promise((resolve4, reject) => {
7798
+ return await new Promise((resolve3, reject) => {
7970
7799
  let closeHost;
7971
7800
  const onListening = /* @__PURE__ */ __name((error) => {
7972
7801
  if (error) return;
@@ -8997,7 +8826,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8997
8826
  loggerPublished = true;
8998
8827
  loggerLifecycle.published();
8999
8828
  void (liveDiscoveryPublish ?? Promise.resolve()).then(
9000
- () => resolve4(handle)
8829
+ () => resolve3(handle)
9001
8830
  );
9002
8831
  } else {
9003
8832
  void runtimeReady.then(
@@ -9005,7 +8834,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9005
8834
  await liveDiscoveryPublish;
9006
8835
  loggerPublished = true;
9007
8836
  loggerLifecycle.published();
9008
- resolve4(handle);
8837
+ resolve3(handle);
9009
8838
  },
9010
8839
  (err) => {
9011
8840
  void handle.close().then(
@@ -9054,10 +8883,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9054
8883
  drainHost: /* @__PURE__ */ __name(() => {
9055
8884
  if (closeHost) return closeHost();
9056
8885
  if (!server.listening) return Promise.resolve();
9057
- return new Promise((resolve5, rejectClose) => {
8886
+ return new Promise((resolve4, rejectClose) => {
9058
8887
  server.close((error) => {
9059
8888
  if (error) rejectClose(error);
9060
- else resolve5();
8889
+ else resolve4();
9061
8890
  });
9062
8891
  });
9063
8892
  }, "drainHost")