@qwen-code/qwen-code 0.21.12-preview.3 → 0.21.12

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 (348) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +10 -0
  2. package/bundled/qc-helper/docs/features/channels/overview.md +1 -1
  3. package/bundled/qc-helper/docs/features/channels/plugins.md +11 -11
  4. package/bundled/qc-helper/docs/features/code-review.md +1 -1
  5. package/bundled/qc-helper/docs/qwen-serve.md +99 -34
  6. package/bundled/review/SKILL.md +55 -36
  7. package/chunks/{MaxSizedBox-EIK4BHBQ.js → MaxSizedBox-ZSJJ2D5S.js} +46 -46
  8. package/chunks/{StandaloneSessionPicker-NHVJDRYD.js → StandaloneSessionPicker-WHUHQXSA.js} +65 -66
  9. package/chunks/{acp-startup-profiler-JMJBZDVO.js → acp-startup-profiler-SVPUHLXV.js} +2 -2
  10. package/chunks/{acpAgent-37UDZP64.js → acpAgent-7JOAESF5.js} +960 -539
  11. package/chunks/{agent-FAWBG7PP.js → agent-E6V3VXQR.js} +42 -42
  12. package/chunks/{agent-headless-SHK4PCCH.js → agent-headless-OEQNFOMH.js} +42 -42
  13. package/chunks/{anthropicContentGenerator-4JSC3ZFL.js → anthropicContentGenerator-YDT4EOKO.js} +25 -25
  14. package/chunks/{artifact-tool-FRMBPDPB.js → artifact-tool-4GCQQDZI.js} +5 -5
  15. package/chunks/{askUserQuestion-7G3LI3IZ.js → askUserQuestion-HZJJLR3Z.js} +2 -2
  16. package/chunks/{bridge-DEAYNDCI.js → bridge-NPBV53UA.js} +49 -49
  17. package/chunks/{build-RZS65IIX.js → build-GDBLPA24.js} +1 -1
  18. package/chunks/{channel-management-service-SKAN6NOB.js → channel-management-service-OADNGQM3.js} +4 -4
  19. package/chunks/{channel-settings-store-UIGYER6R.js → channel-settings-store-4ODLJ4X2.js} +49 -49
  20. package/chunks/{channel-worker-group-YPTB5ASD.js → channel-worker-group-IHBIHQ45.js} +7 -7
  21. package/chunks/{channel-worker-manager-4EHJSPRH.js → channel-worker-manager-GEHYJ5AE.js} +7 -7
  22. package/chunks/{channel-worker-supervisor-DZKHYFHV.js → channel-worker-supervisor-ZJIIWM4I.js} +5 -5
  23. package/chunks/{chunk-LHOG4E6Y.js → chunk-22C7BQ6D.js} +3 -3
  24. package/chunks/{chunk-DP3IHZGG.js → chunk-2AUM35J5.js} +59 -7
  25. package/chunks/{chunk-2SB4SLKC.js → chunk-2IIJTXYF.js} +1 -3
  26. package/chunks/{chunk-DYVCDQW2.js → chunk-2IVYL3IF.js} +1 -1
  27. package/chunks/{chunk-EYW54TBD.js → chunk-2ZWH53I4.js} +3 -3
  28. package/chunks/{chunk-5I5NMQCU.js → chunk-36XKGB7E.js} +3 -3
  29. package/chunks/{chunk-AQHNAA7E.js → chunk-3AEKDXKT.js} +1 -1
  30. package/chunks/{chunk-M6SXIXBV.js → chunk-3GDBZJD6.js} +6 -6
  31. package/chunks/{chunk-6XZERB6P.js → chunk-3GM5DLBI.js} +5 -5
  32. package/chunks/{chunk-4M2F7OG7.js → chunk-3LDGOQXZ.js} +6 -6
  33. package/chunks/{chunk-BKHCW2BI.js → chunk-3VUENPWF.js} +10 -0
  34. package/chunks/{chunk-ENEEQMGM.js → chunk-45NQKMYB.js} +1 -1
  35. package/chunks/{chunk-MDFUBQAQ.js → chunk-47BGDLJG.js} +119 -27
  36. package/chunks/{chunk-EFIMD5VA.js → chunk-4AOVQPJU.js} +1 -1
  37. package/chunks/{chunk-HB6QW4LM.js → chunk-4KM2SYK5.js} +19 -16
  38. package/chunks/{chunk-UNCIELQJ.js → chunk-4XA4QIUA.js} +1 -1
  39. package/chunks/{chunk-2J53A6MV.js → chunk-56HVDG3M.js} +4 -4
  40. package/chunks/{chunk-N3FJOQX7.js → chunk-5AFGJNY6.js} +4 -4
  41. package/chunks/{chunk-2AZMF6G5.js → chunk-5RUCD4ED.js} +2 -2
  42. package/chunks/{chunk-32VOOMEF.js → chunk-62X3CM7Q.js} +7 -7
  43. package/chunks/{chunk-6LYDH7VT.js → chunk-63FNZTWG.js} +2 -2
  44. package/chunks/{chunk-P64FPV3G.js → chunk-6JEIRPLN.js} +47 -4
  45. package/chunks/{chunk-O5G7IQGM.js → chunk-6P5EXEBL.js} +499 -112
  46. package/chunks/{chunk-3ZYX7AUR.js → chunk-6SPD4Z7F.js} +1 -1
  47. package/chunks/{chunk-YZJVVQD3.js → chunk-6ZKSO6K7.js} +7 -7
  48. package/chunks/{chunk-N5ULBHP3.js → chunk-7KJPO7YH.js} +2 -2
  49. package/chunks/{chunk-MZSJ43WV.js → chunk-7U5G6JXI.js} +24 -2
  50. package/chunks/{chunk-K7JW6V5O.js → chunk-A6NRNRKE.js} +1 -1
  51. package/chunks/{chunk-XLQS3VI6.js → chunk-AKBFSOC5.js} +2 -2
  52. package/chunks/{chunk-LT532KF4.js → chunk-AW27A43Y.js} +10 -12
  53. package/chunks/{chunk-M4NWDIFU.js → chunk-AZQ3DT76.js} +1 -1
  54. package/chunks/{chunk-4GLFFNP3.js → chunk-B4VN3VDH.js} +5 -5
  55. package/chunks/{chunk-YTYPRVIZ.js → chunk-BSR5AXZR.js} +4 -3
  56. package/chunks/{chunk-AJX4ITUG.js → chunk-BSSLSQEW.js} +3 -3
  57. package/chunks/{chunk-EYY4IBPV.js → chunk-CGM3E75C.js} +3 -3
  58. package/chunks/{chunk-V4MJ56RS.js → chunk-CIDQISGM.js} +5 -5
  59. package/chunks/{chunk-T6W4KACQ.js → chunk-CPFFU46D.js} +1 -1
  60. package/chunks/{chunk-TYCXSMZU.js → chunk-CQ6IPDQW.js} +3 -3
  61. package/chunks/{chunk-KIFRFCCB.js → chunk-CZ4OWGQQ.js} +67 -22
  62. package/chunks/{chunk-N7NBMAMW.js → chunk-D2RNVVH6.js} +2 -2
  63. package/chunks/{chunk-KPVVWKF3.js → chunk-D7QGE3RT.js} +1 -1
  64. package/chunks/{chunk-TYGKUOEG.js → chunk-DAV4QFD5.js} +3 -11
  65. package/chunks/{chunk-QUESTNOP.js → chunk-DD6O3ZRD.js} +1 -1
  66. package/chunks/{chunk-NWPO6I7V.js → chunk-DEDESZDL.js} +1 -1
  67. package/chunks/{chunk-7LZ7DK4D.js → chunk-DFVXU5YM.js} +1 -1
  68. package/chunks/{chunk-TBVNYG5B.js → chunk-DG4IQ6JG.js} +5 -5
  69. package/chunks/{chunk-SAQHDAUJ.js → chunk-DPTMKFIH.js} +452 -57
  70. package/chunks/{chunk-M6HXP2SG.js → chunk-EBPLKY6U.js} +2192 -849
  71. package/chunks/{chunk-3XZYK76R.js → chunk-EJOGLSNJ.js} +2 -2
  72. package/chunks/{chunk-L7T742G2.js → chunk-FA5K6YI2.js} +47 -3
  73. package/chunks/{chunk-M2NMFAFR.js → chunk-FMIH5KMQ.js} +1 -1
  74. package/chunks/{chunk-HHGQGTJQ.js → chunk-FQDCO3CJ.js} +10 -1
  75. package/chunks/{chunk-V3LXMASR.js → chunk-FRHQQC2Z.js} +1 -1
  76. package/chunks/{chunk-732MOPEM.js → chunk-G6MUFRNI.js} +1 -1
  77. package/chunks/{chunk-KNXA5XXK.js → chunk-GXTMEATA.js} +15 -34
  78. package/chunks/{chunk-7SUQZ7QH.js → chunk-GZDWTBT3.js} +2 -2
  79. package/chunks/{chunk-IQFYO5BF.js → chunk-H7TMVHKE.js} +1 -1
  80. package/chunks/{chunk-KNQZXSLW.js → chunk-HG3UBTJ4.js} +23 -9
  81. package/chunks/{chunk-MPBRV3UU.js → chunk-HOSVOUDK.js} +71 -0
  82. package/chunks/{chunk-OPBATTFQ.js → chunk-HTYND72J.js} +1 -1
  83. package/chunks/{chunk-I4XSOFH2.js → chunk-I7BT2MME.js} +1 -1
  84. package/chunks/{chunk-LHY6HBRA.js → chunk-IH4Z54RJ.js} +7 -5
  85. package/chunks/{chunk-GYBDYWMV.js → chunk-IRSLAS4M.js} +2 -2
  86. package/chunks/{chunk-UZPWH6SP.js → chunk-IX4PWUDU.js} +401 -173
  87. package/chunks/{chunk-KT4OWAAZ.js → chunk-JRIVMPD2.js} +3 -3
  88. package/chunks/{chunk-Q7YDKOGY.js → chunk-JVEGA3MM.js} +1 -1
  89. package/chunks/{chunk-O5AZPHYZ.js → chunk-K34GJQOZ.js} +138 -16
  90. package/chunks/{chunk-L2GTEEEU.js → chunk-K5IDV3PC.js} +44 -1
  91. package/chunks/{chunk-5HBFERG5.js → chunk-KEC5FHLM.js} +3 -3
  92. package/chunks/{chunk-5PWLQ7SK.js → chunk-KLOMACIR.js} +15 -8
  93. package/chunks/{chunk-XWUQ4IH5.js → chunk-KWX56CHZ.js} +7 -7
  94. package/chunks/{chunk-VQZXRLEX.js → chunk-LCX5B364.js} +3 -3
  95. package/chunks/{chunk-CTQE2NB2.js → chunk-LSRI3ND3.js} +1 -1
  96. package/chunks/{chunk-5TXOGH4I.js → chunk-LUISTZXI.js} +3 -3
  97. package/chunks/{chunk-6AECVSVX.js → chunk-MAKIANMX.js} +3 -3
  98. package/chunks/{chunk-M4OYAR6J.js → chunk-MDNUCDKZ.js} +2 -2
  99. package/chunks/{chunk-CZXQ4UZA.js → chunk-MELQSJOU.js} +1 -1
  100. package/chunks/{chunk-6ZIIHBNV.js → chunk-MUNA4QDC.js} +4 -4
  101. package/chunks/{chunk-E5BWLU5J.js → chunk-N4SVADAV.js} +305 -143
  102. package/chunks/{chunk-URK542T4.js → chunk-NF5J2WFA.js} +15 -2
  103. package/chunks/{chunk-GJJQV4PY.js → chunk-NLFLYSS4.js} +1 -1
  104. package/chunks/{chunk-FRH4SSGX.js → chunk-NW2GIPG3.js} +2 -4
  105. package/chunks/{chunk-JS4Q5NG5.js → chunk-NX4A23LY.js} +3 -3
  106. package/chunks/{chunk-DEG7R6Z6.js → chunk-OK47XBYH.js} +79 -36
  107. package/chunks/{chunk-7D4KEFOT.js → chunk-OPVF453Q.js} +3 -3
  108. package/chunks/{chunk-J7DNMZFO.js → chunk-OR64CU46.js} +1 -1
  109. package/chunks/{chunk-DAX3G67A.js → chunk-OWGRUU7F.js} +1 -1
  110. package/chunks/{chunk-M2PY7CNK.js → chunk-OWXFBIB6.js} +2 -2
  111. package/chunks/{chunk-NELCY6JT.js → chunk-OYWVIXHT.js} +1 -3
  112. package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
  113. package/chunks/{chunk-QZ5G26ZE.js → chunk-PTSEETCO.js} +27 -27
  114. package/chunks/{chunk-IEP44U2R.js → chunk-PVXEJB66.js} +1 -1
  115. package/chunks/{chunk-NC4O6UE6.js → chunk-PZW46OTB.js} +2 -2
  116. package/chunks/{chunk-RQVVXDHS.js → chunk-Q4ZPYNIZ.js} +4 -4
  117. package/chunks/{chunk-QSWDGAIC.js → chunk-QILD6R27.js} +1 -1
  118. package/chunks/{chunk-GLWWPFTW.js → chunk-QLTATTPS.js} +1 -1
  119. package/chunks/{chunk-QTI7SRXI.js → chunk-QPBFRWCP.js} +3 -3
  120. package/chunks/{chunk-3TT6MZHJ.js → chunk-QSD4UH74.js} +842 -62
  121. package/chunks/{chunk-TEKFBSMY.js → chunk-RDVNSJQU.js} +3 -3
  122. package/chunks/{chunk-NPE3STIW.js → chunk-ROIJYS5K.js} +6 -6
  123. package/chunks/{chunk-JEMR2FTD.js → chunk-RQJA2YYO.js} +4 -4
  124. package/chunks/{chunk-YI6UGZF5.js → chunk-S6TCTH4Z.js} +13 -13
  125. package/chunks/{chunk-ZGWY4YUB.js → chunk-SYHXR6WM.js} +5 -5
  126. package/chunks/{chunk-O4BBDP2G.js → chunk-TB4YFWXG.js} +2 -2
  127. package/chunks/{chunk-ILVATFYJ.js → chunk-TDESMS7M.js} +22 -18
  128. package/chunks/{chunk-47FQVRCO.js → chunk-TMFWI4RC.js} +1 -1
  129. package/chunks/{chunk-T4FTABSW.js → chunk-TQDFSQQF.js} +1 -1
  130. package/chunks/{chunk-ZV4XVYL3.js → chunk-TTRH3RTQ.js} +4 -4
  131. package/chunks/{chunk-ZWPWQEF5.js → chunk-TXP5NGG3.js} +1 -1
  132. package/chunks/{chunk-E3GLDLYB.js → chunk-TYAMGABM.js} +0 -6
  133. package/chunks/{chunk-VWD7SNNN.js → chunk-UI5UGEF4.js} +1082 -926
  134. package/chunks/{chunk-MWZYNOCG.js → chunk-ULNWG62W.js} +3 -3
  135. package/chunks/{chunk-HGCQ5SE7.js → chunk-UXEO7E3V.js} +21 -0
  136. package/chunks/{chunk-U6PTKAOW.js → chunk-V6OBVAST.js} +1 -1
  137. package/chunks/{chunk-5UPJ774B.js → chunk-VIFA5VJD.js} +1 -1
  138. package/chunks/{chunk-Y66OOMKS.js → chunk-VLHR7F4E.js} +595 -58
  139. package/chunks/{chunk-EYS3GGM3.js → chunk-VPV7WBVT.js} +1 -1
  140. package/chunks/{chunk-XCGIMOLN.js → chunk-WCCLLK7X.js} +14 -1
  141. package/chunks/{chunk-JL3LC3CQ.js → chunk-WCEI6J56.js} +1 -1
  142. package/chunks/{chunk-JXK3WAP7.js → chunk-WDVDVWJ3.js} +6 -6
  143. package/chunks/{chunk-ZQSNP4TG.js → chunk-WI6GIM2M.js} +2 -2
  144. package/chunks/{chunk-TRYJ3BVE.js → chunk-WM3LUQLO.js} +7 -7
  145. package/chunks/{chunk-VJNBRRZG.js → chunk-WZMH7II3.js} +1 -1
  146. package/chunks/{chunk-HBZUU4AE.js → chunk-X5SLJOMF.js} +9 -7
  147. package/chunks/{chunk-FDWH6CBK.js → chunk-XAFIL4BD.js} +7 -7
  148. package/chunks/{chunk-P2UCMHDT.js → chunk-XDRXOSAD.js} +3 -3
  149. package/chunks/{chunk-RRQJPCRQ.js → chunk-XH3KAV2G.js} +2 -2
  150. package/chunks/{chunk-F6AOBFUN.js → chunk-YBHUXEC6.js} +1 -1
  151. package/chunks/{chunk-GZGDJ4E6.js → chunk-YBVVOSOH.js} +1 -1
  152. package/chunks/{chunk-EXG2R5UR.js → chunk-YCHNAKC5.js} +16 -14
  153. package/chunks/{chunk-XTH2OMDS.js → chunk-YIGGWOJE.js} +1 -1
  154. package/chunks/{chunk-IX7CFQGA.js → chunk-YILJKX2T.js} +3 -3
  155. package/chunks/{chunk-SSAOTDK7.js → chunk-YX2RDGAL.js} +1 -1
  156. package/chunks/{chunk-6S52N6PG.js → chunk-ZBB5EZZV.js} +2 -2
  157. package/chunks/{chunk-3GCU5O2E.js → chunk-ZLCT4C5A.js} +1 -1
  158. package/chunks/{chunk-4ETA3KRC.js → chunk-ZMY2P4L3.js} +3 -3
  159. package/chunks/{chunk-575MI5K3.js → chunk-ZQUY3ZJU.js} +4 -4
  160. package/chunks/{computer-use-S4JEU5P7.js → computer-use-F4URV4TU.js} +45 -45
  161. package/chunks/{config-utils-TXVKR27S.js → config-utils-Z3OW3IQG.js} +4 -4
  162. package/chunks/{contextCommand-2H5OH2HW.js → contextCommand-IGSS2U5J.js} +44 -44
  163. package/chunks/{core-runtime-IAQ4DD4Y.js → core-runtime-H5CZDN3A.js} +42 -42
  164. package/chunks/{create-sub-session-EKHKXJAA.js → create-sub-session-PA7MFTHK.js} +42 -42
  165. package/chunks/{create-sub-session-Y4WYDZGC.js → create-sub-session-XT6DLYOE.js} +2 -2
  166. package/chunks/{cron-create-ZOVA3CC2.js → cron-create-2JZ2TWTF.js} +4 -4
  167. package/chunks/{cron-delete-7Z3H4LJY.js → cron-delete-CTPD2P26.js} +4 -4
  168. package/chunks/{cron-list-UHGX3IQG.js → cron-list-V44KHAF6.js} +4 -4
  169. package/chunks/{daemon-PXIC4ZDK.js → daemon-GED37WOX.js} +30 -2
  170. package/chunks/daemon-git-worktree-guard-LZDCNJGV.js +2062 -0
  171. package/chunks/daemon-status-provider-QYM57Z44.js +102 -0
  172. package/chunks/{daemon-trust-policy-7JOBVFH3.js → daemon-trust-policy-TSRVEYZR.js} +48 -48
  173. package/chunks/{daemon-trust-policy-monitor-OU3NRHAR.js → daemon-trust-policy-monitor-2K2YETMT.js} +48 -48
  174. package/chunks/{deferred-core-runtime-SFT3KI2C.js → deferred-core-runtime-FKJ3OYE7.js} +44 -44
  175. package/chunks/{devtools-X6ROTKHE.js → devtools-4QFYJT6U.js} +1 -1
  176. package/chunks/{display-image-ZE3GZNIK.js → display-image-M2ELAVN4.js} +4 -4
  177. package/chunks/{dist-KTYDJNYM.js → dist-4ZPG4BY6.js} +2 -2
  178. package/chunks/{dist-NPS52B2V.js → dist-BROOP2EG.js} +1 -1
  179. package/chunks/{dist-BW2LDPV3.js → dist-IYYN3RUT.js} +2 -2
  180. package/chunks/{dist-EFJILGIS.js → dist-JWMKPWT5.js} +3 -1
  181. package/chunks/{dist-AVUYBK7L.js → dist-K7IQB53U.js} +1 -1
  182. package/chunks/{dist-PKSRQAR2.js → dist-MAQXAQ2Y.js} +1 -1
  183. package/chunks/{dist-BNWP6IZL.js → dist-WJ4BHIEW.js} +2 -2
  184. package/chunks/{dist-ZWDH5HLS.js → dist-YEPL4RAW.js} +1 -1
  185. package/chunks/{earlyInputCapture-27RPWE2D.js → earlyInputCapture-WJBSJQUF.js} +43 -43
  186. package/chunks/{edit-WXVZ7FHS.js → edit-X73LA4YO.js} +50 -49
  187. package/chunks/{enter-worktree-TYMVXFLA.js → enter-worktree-CLRQTIVN.js} +47 -47
  188. package/chunks/{enterPlanMode-FT4MRU5N.js → enterPlanMode-6BDYUQ5T.js} +48 -48
  189. package/chunks/{environment-Z6OMA34I.js → environment-WOAJXJDJ.js} +44 -44
  190. package/chunks/{errors-YMXK2GG3.js → errors-7OY5MXYY.js} +44 -44
  191. package/chunks/{exit-worktree-ODZUQLGJ.js → exit-worktree-TFFJXCRT.js} +47 -47
  192. package/chunks/{exitPlanMode-MBPAPBBV.js → exitPlanMode-WDURQMIU.js} +42 -42
  193. package/chunks/{external-tool-guard-provider-5HTGOPGU.js → external-tool-guard-provider-TE4DRY36.js} +1 -1
  194. package/chunks/{fast-path-ZU5T6XSN.js → fast-path-QQLGC37M.js} +5 -5
  195. package/chunks/{gemini-OZK6AIMC.js → gemini-VHE62IJL.js} +110 -105
  196. package/chunks/{geminiContentGenerator-MC6ZKWZG.js → geminiContentGenerator-VSHIEGAQ.js} +11 -11
  197. package/chunks/{glob-KJ4A4ZOM.js → glob-VMEEDDLO.js} +49 -49
  198. package/chunks/{goal-tools-JDK2SNMV.js → goal-tools-M4UDAZXP.js} +4 -4
  199. package/chunks/{grep-QWBLG564.js → grep-F4UAR7KX.js} +47 -47
  200. package/chunks/{handleAutoUpdate-M3ACKDKF.js → handleAutoUpdate-GN7Z6QAC.js} +46 -46
  201. package/chunks/{i18n-FPW7XZL5.js → i18n-ETW24DHW.js} +43 -43
  202. package/chunks/{image-gen-OTFC2S7L.js → image-gen-YPK2AZT4.js} +11 -11
  203. package/chunks/{initializer-5HKUXXBT.js → initializer-UA6KQ7MS.js} +49 -49
  204. package/chunks/{installationInfo-4OA6UW7V.js → installationInfo-P7OTIR4P.js} +43 -43
  205. package/chunks/{keychain-token-storage-JTWUYFU7.js → keychain-token-storage-NKKCUHI2.js} +2 -2
  206. package/chunks/{list-3TKZ264A.js → list-GRAMIQOT.js} +51 -51
  207. package/chunks/{list-agents-4GQ2XNEU.js → list-agents-O6WSY4CT.js} +2 -2
  208. package/chunks/{loadedSettingsAdapter-IRUANLS2.js → loadedSettingsAdapter-5O2TDS3I.js} +48 -48
  209. package/chunks/{loggingContentGenerator-D4URLH2A.js → loggingContentGenerator-J2J2AANS.js} +151 -120
  210. package/chunks/{loop-wakeup-HOQI3K5D.js → loop-wakeup-GVQRMUKS.js} +5 -5
  211. package/chunks/{ls-FSHISLLA.js → ls-6W2D7TKU.js} +6 -6
  212. package/chunks/{lsp-APQJ5ZEZ.js → lsp-NJ4KFBI2.js} +2 -2
  213. package/chunks/{managed-npm-update-2O7XSAWJ.js → managed-npm-update-WMV5ITKU.js} +45 -45
  214. package/chunks/{mcp-AFVHCHKT.js → mcp-XLP33CAI.js} +48 -48
  215. package/chunks/{monitor-PY4WDSX3.js → monitor-2MM23VDV.js} +47 -47
  216. package/chunks/{node-YSOU44FX.js → node-UUDY34IG.js} +3 -3
  217. package/chunks/nonInteractiveCli-KTA5K6FS.js +163 -0
  218. package/chunks/{notebook-edit-GEPL33NO.js → notebook-edit-QD4TRKLY.js} +47 -47
  219. package/chunks/{openaiContentGenerator-ACYSXQ6R.js → openaiContentGenerator-KLHSPVN2.js} +31 -31
  220. package/chunks/{pidfile-SUNYCAA4.js → pidfile-RQGZBNXT.js} +43 -43
  221. package/chunks/{processUtils-F7LP7YUV.js → processUtils-HZZDA2VV.js} +2 -2
  222. package/chunks/{qwenContentGenerator-BB6IPELF.js → qwenContentGenerator-T75M2Z3B.js} +50 -50
  223. package/chunks/{qwenOAuth2-OU3WGDOI.js → qwenOAuth2-5QZU444W.js} +10 -10
  224. package/chunks/{read-file-GORBXJTS.js → read-file-LOVUSBJC.js} +12 -12
  225. package/chunks/{read-mcp-resource-TJSJRH4F.js → read-mcp-resource-GWCP23WG.js} +2 -2
  226. package/chunks/{read-package-up-TCM6I7S2.js → read-package-up-K6RKTL5D.js} +1 -1
  227. package/chunks/{record-artifact-FXF5LHPE.js → record-artifact-IYQDEYMV.js} +3 -3
  228. package/chunks/{resumeHistoryUtils-FOAJJJWK.js → resumeHistoryUtils-LVKSSQII.js} +50 -50
  229. package/chunks/{ripGrep-RNLIZGCY.js → ripGrep-ZJSHKB6H.js} +42 -42
  230. package/chunks/{run-qwen-serve-GVMMX3IU.js → run-qwen-serve-GZW7B4WK.js} +186 -90
  231. package/chunks/{runtime-RNBZ5FDD.js → runtime-MYRXEO2E.js} +53 -53
  232. package/chunks/{scheduler-NTRFSPIP.js → scheduler-DPTPI6FW.js} +44 -44
  233. package/chunks/{sdk-exporters-grpc-4QKV6MCX.js → sdk-exporters-grpc-54L4LS5L.js} +2 -2
  234. package/chunks/{sdk-exporters-http-2VPMAPFI.js → sdk-exporters-http-NHBYB5FZ.js} +21 -17
  235. package/chunks/{sdk-impl-5W3JUCWF.js → sdk-impl-SK4P5WON.js} +17 -14
  236. package/chunks/{send-message-RBYLV5NY.js → send-message-O7FO63UK.js} +6 -6
  237. package/chunks/{serve-H3PGA26U.js → serve-XCG4XCDA.js} +52 -52
  238. package/chunks/{server-SUXD2F3C.js → server-AWQHKXLG.js} +310 -200
  239. package/chunks/{session-MTFVUWWM.js → session-P5FKNCNR.js} +94 -97
  240. package/chunks/{settings-GUJ3TN2J.js → settings-CSYVIP2R.js} +47 -47
  241. package/chunks/{shell-C2UP5FF2.js → shell-EGTSUO2P.js} +42 -42
  242. package/chunks/{skill-4XCNK55E.js → skill-IFUD72GF.js} +22 -22
  243. package/chunks/{skill-settings-Y2BU27XM.js → skill-settings-YOE7LBHE.js} +47 -47
  244. package/chunks/{spawnChannel-UUUUK734.js → spawnChannel-PQSZIOLY.js} +45 -47
  245. package/chunks/{standalone-update-MJ722XZ4.js → standalone-update-RB2EGUSF.js} +44 -44
  246. package/chunks/{startInteractiveUI-TCPIPNGN.js → startInteractiveUI-KMYUJ2MU.js} +3040 -2399
  247. package/chunks/{syntheticOutput-D3Z64LJC.js → syntheticOutput-DVHJMUGV.js} +3 -3
  248. package/chunks/{task-create-URFZ5EUX.js → task-create-4NC7PDI4.js} +11 -11
  249. package/chunks/{task-list-6JDFMPUW.js → task-list-LBSRMOC7.js} +5 -5
  250. package/chunks/{task-stop-HHUGCD25.js → task-stop-YFNATTIM.js} +2 -2
  251. package/chunks/{task-update-DVV6CUGI.js → task-update-BPLM52GD.js} +12 -12
  252. package/chunks/{team-create-WZWH2NJI.js → team-create-B6A6MJBT.js} +47 -47
  253. package/chunks/{team-delete-PZGGBQLM.js → team-delete-MKYMYBFM.js} +5 -5
  254. package/chunks/{team-plan-approval-SUZQJCWJ.js → team-plan-approval-5WO3CXXU.js} +48 -48
  255. package/chunks/{terminal-image-renderer-BCUN3Z3W.js → terminal-image-renderer-BTRE2GEU.js} +44 -44
  256. package/chunks/{theme-manager-UGMFDREN.js → theme-manager-XL2N5SBY.js} +43 -43
  257. package/chunks/{todoWrite-WINAZSZI.js → todoWrite-K5K7NRE5.js} +4 -4
  258. package/chunks/{tool-search-B6F3MPUZ.js → tool-search-QNBLXUGR.js} +18 -18
  259. package/chunks/{total-session-admission-MQLBJ5WL.js → total-session-admission-N4E5SFBO.js} +49 -49
  260. package/chunks/{trustedFolders-2XST7U5C.js → trustedFolders-MQS46LIU.js} +43 -43
  261. package/chunks/{update-relaunch-OVC7YNGD.js → update-relaunch-536KRL33.js} +5 -5
  262. package/chunks/{updateCheck-YAKM36WQ.js → updateCheck-QJI2SYWF.js} +48 -48
  263. package/chunks/{useAutoAcceptIndicator-RF6FVX3S.js → useAutoAcceptIndicator-7QASHD46.js} +51 -51
  264. package/chunks/{validateNonInterActiveAuth-IPPXFNQH.js → validateNonInterActiveAuth-ZNRGWBLV.js} +86 -88
  265. package/chunks/{version-4IDFEXOU.js → version-DBEQAFRW.js} +2 -2
  266. package/chunks/{web-fetch-NUOLHXPN.js → web-fetch-MBIVXKPE.js} +21 -21
  267. package/chunks/{web-search-LVOOV4XZ.js → web-search-4LBIN6VF.js} +16 -16
  268. package/chunks/{workflow-JSTYTG3K.js → workflow-LNMA55HY.js} +127 -61
  269. package/chunks/{workspace-providers-status-U4EYXA4K.js → workspace-providers-status-PDDMI6ST.js} +51 -51
  270. package/chunks/{workspace-registration-store-OG66U3CB.js → workspace-registration-store-BGRKKIYR.js} +1 -1
  271. package/chunks/{workspace-registry-WSHWQRQQ.js → workspace-registry-L4NCJ34K.js} +49 -49
  272. package/chunks/{workspace-service-QZXQHX2F.js → workspace-service-LOXYKYTR.js} +54 -54
  273. package/chunks/{workspace-skills-status-VRBHEX5O.js → workspace-skills-status-IJ5FOQI6.js} +49 -49
  274. package/chunks/{workspace-trust-reconciler-FCRIUIOF.js → workspace-trust-reconciler-H36TCR2S.js} +57 -57
  275. package/chunks/{write-file-PYL3JCCD.js → write-file-JJAY7JSP.js} +42 -42
  276. package/chunks/{zoom-image-RS6MU26F.js → zoom-image-4MVVVM7E.js} +12 -12
  277. package/cli.js +18 -17
  278. package/package.json +4 -4
  279. package/web-shell/assets/{arc-CgGUyHWd.js → arc-B-89zHN4.js} +1 -1
  280. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BR0Qv-1Y.js → architectureDiagram-3BPJPVTR-BkcOncHk.js} +1 -1
  281. package/web-shell/assets/{blockDiagram-GPEHLZMM-DIoaceaI.js → blockDiagram-GPEHLZMM-DQ4yboaF.js} +1 -1
  282. package/web-shell/assets/{c4Diagram-AAUBKEIU-Bc5k6BbI.js → c4Diagram-AAUBKEIU-C_8ZjPDI.js} +1 -1
  283. package/web-shell/assets/channel-Du2WFns8.js +1 -0
  284. package/web-shell/assets/{chunk-2J33WTMH-DtPEz2WX.js → chunk-2J33WTMH-naKVe1Bm.js} +1 -1
  285. package/web-shell/assets/{chunk-4BX2VUAB-Dydo6ydE.js → chunk-4BX2VUAB-DdoViKT2.js} +1 -1
  286. package/web-shell/assets/{chunk-55IACEB6-DD9_VWXm.js → chunk-55IACEB6-DUDQZEwU.js} +1 -1
  287. package/web-shell/assets/{chunk-727SXJPM-DVI2m59k.js → chunk-727SXJPM-BqpDTR5s.js} +1 -1
  288. package/web-shell/assets/{chunk-AQP2D5EJ-luatmaTN.js → chunk-AQP2D5EJ-CdmEknkT.js} +1 -1
  289. package/web-shell/assets/{chunk-FMBD7UC4-Duy8NTIi.js → chunk-FMBD7UC4-CH7fFTLB.js} +1 -1
  290. package/web-shell/assets/{chunk-ND2GUHAM-CrL1yhms.js → chunk-ND2GUHAM-ObgSuFKF.js} +1 -1
  291. package/web-shell/assets/{chunk-QZHKN3VN-C7BX6bu1.js → chunk-QZHKN3VN-D9fKdv_s.js} +1 -1
  292. package/web-shell/assets/classDiagram-4FO5ZUOK-Zw0HafH6.js +1 -0
  293. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Zw0HafH6.js +1 -0
  294. package/web-shell/assets/{cose-bilkent-S5V4N54A-BTzs7mIi.js → cose-bilkent-S5V4N54A-CvzATMx9.js} +1 -1
  295. package/web-shell/assets/{dagre-BM42HDAG-3VTUmWts.js → dagre-BM42HDAG-M_xU21QW.js} +1 -1
  296. package/web-shell/assets/{diagram-2AECGRRQ-Ehdp75GN.js → diagram-2AECGRRQ-CNrl9sW1.js} +1 -1
  297. package/web-shell/assets/{diagram-5GNKFQAL-B3wu3teE.js → diagram-5GNKFQAL-CUweVT6T.js} +1 -1
  298. package/web-shell/assets/{diagram-KO2AKTUF-DjgTSf2S.js → diagram-KO2AKTUF-D3n6Lxjo.js} +1 -1
  299. package/web-shell/assets/{diagram-LMA3HP47-Br9mwjY3.js → diagram-LMA3HP47-0SeFPK4t.js} +1 -1
  300. package/web-shell/assets/{diagram-OG6HWLK6-D4xz5M-z.js → diagram-OG6HWLK6-DAgyEwge.js} +1 -1
  301. package/web-shell/assets/{erDiagram-TEJ5UH35-CXayWlG_.js → erDiagram-TEJ5UH35-CzxBBDIK.js} +1 -1
  302. package/web-shell/assets/{flowDiagram-I6XJVG4X-CLonjQTi.js → flowDiagram-I6XJVG4X-B0uj0jyo.js} +1 -1
  303. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BTySFT-1.js → ganttDiagram-6RSMTGT7-DFzcj5km.js} +1 -1
  304. package/web-shell/assets/{gitGraphDiagram-PVQCEYII--2WcUjOe.js → gitGraphDiagram-PVQCEYII-DylJ_Fc9.js} +1 -1
  305. package/web-shell/assets/index-BIGQygTL.css +5 -0
  306. package/web-shell/assets/{index-DPJHkFOG.js → index-BKSAnXU9.js} +1 -1
  307. package/web-shell/assets/index-J7OMTqAN.js +1789 -0
  308. package/web-shell/assets/{infoDiagram-5YYISTIA-9vpgAf1m.js → infoDiagram-5YYISTIA-BYMcJVMI.js} +1 -1
  309. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DcRpHnAW.js → ishikawaDiagram-YF4QCWOH-t1quI1S3.js} +1 -1
  310. package/web-shell/assets/{journeyDiagram-JHISSGLW-C2TKorRm.js → journeyDiagram-JHISSGLW-YM_QVUJm.js} +1 -1
  311. package/web-shell/assets/{kanban-definition-UN3LZRKU-DdsFwB8b.js → kanban-definition-UN3LZRKU-jw8OddK1.js} +1 -1
  312. package/web-shell/assets/{linear-7PjRvJrf.js → linear-Dlr3RVuP.js} +1 -1
  313. package/web-shell/assets/{mermaid.core-raDXa11C.js → mermaid.core-CqGKzNzd.js} +5 -5
  314. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DLHc-PRN.js → mindmap-definition-RKZ34NQL-BqureoOS.js} +1 -1
  315. package/web-shell/assets/{pieDiagram-4H26LBE5-BftYpeTW.js → pieDiagram-4H26LBE5-Da20HkK1.js} +1 -1
  316. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-O-6ygOYn.js → quadrantDiagram-W4KKPZXB-BsNlMvJy.js} +1 -1
  317. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BmZWVufJ.js → requirementDiagram-4Y6WPE33-DzVCQCse.js} +1 -1
  318. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-2x5beiWt.js → sankeyDiagram-5OEKKPKP-BMo16voT.js} +1 -1
  319. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BH8uKokQ.js → sequenceDiagram-3UESZ5HK-Bgi-pdHk.js} +1 -1
  320. package/web-shell/assets/{stateDiagram-AJRCARHV-Dq1MFgX_.js → stateDiagram-AJRCARHV-xaPQXwGk.js} +1 -1
  321. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-D5RqimXD.js +1 -0
  322. package/web-shell/assets/{timeline-definition-PNZ67QCA-Cl2WKbv9.js → timeline-definition-PNZ67QCA-C_9RuvKG.js} +1 -1
  323. package/web-shell/assets/{vennDiagram-CIIHVFJN-BqoRo_Q-.js → vennDiagram-CIIHVFJN-Bgu6vdla.js} +1 -1
  324. package/web-shell/assets/{wardley-L42UT6IY-BTxp-Yot.js → wardley-L42UT6IY-CFTZ8IrX.js} +1 -1
  325. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DFXVCSH2.js → wardleyDiagram-YWT4CUSO-BASW9Vmt.js} +1 -1
  326. package/web-shell/assets/{xychartDiagram-2RQKCTM6-qQhWx0aE.js → xychartDiagram-2RQKCTM6--Nh-CD3F.js} +1 -1
  327. package/web-shell/index.html +2 -2
  328. package/chunks/chunk-CG3OQDNY.js +0 -649
  329. package/chunks/chunk-L34XSHIZ.js +0 -28
  330. package/chunks/chunk-N2TNM3QB.js +0 -9
  331. package/chunks/chunk-UOMZKPI5.js +0 -830
  332. package/chunks/chunk-WFRHWDBT.js +0 -622
  333. package/chunks/chunk-WLML6VIA.js +0 -18
  334. package/chunks/chunk-ZBBVBZBR.js +0 -137
  335. package/chunks/chunk-bdqvmfwv-OHYAFAAO.js +0 -17446
  336. package/chunks/daemon-status-provider-LPYR2GXY.js +0 -103
  337. package/chunks/dispatch-B53LNEO4.js +0 -37
  338. package/chunks/nonInteractiveCli-ZHW6F76F.js +0 -166
  339. package/chunks/opentui-entry-SBAOWW7M.js +0 -52325
  340. package/chunks/runtime-gate-T4ICWGQJ.js +0 -89
  341. package/chunks/wrapper-46Z24CTM.js +0 -35
  342. package/web-shell/assets/channel-D2b9IYpS.js +0 -1
  343. package/web-shell/assets/classDiagram-4FO5ZUOK-DHatTCmD.js +0 -1
  344. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DHatTCmD.js +0 -1
  345. package/web-shell/assets/index-CIFO52Wx.css +0 -5
  346. package/web-shell/assets/index-bhq3CUUF.js +0 -1789
  347. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-spuAYji6.js +0 -1
  348. /package/chunks/{chunk-44CTCCLY.js → chunk-NWNEANAT.js} +0 -0
@@ -20,14 +20,13 @@ import {
20
20
  shouldSuppressRememberErrorDetails,
21
21
  workspaceMemoryFailureCode,
22
22
  workspaceMemoryFailureDiagnostics
23
- } from "./chunk-KIFRFCCB.js";
23
+ } from "./chunk-CZ4OWGQQ.js";
24
24
  import {
25
25
  deriveWebSocketBase,
26
26
  openQwenAsrRealtimeStream,
27
27
  openVoiceStream,
28
28
  openVoiceStreamWithRetry
29
- } from "./chunk-3XZYK76R.js";
30
- import "./chunk-ZBBVBZBR.js";
29
+ } from "./chunk-EJOGLSNJ.js";
31
30
  import {
32
31
  SetupGithubError,
33
32
  collectSessionData,
@@ -39,15 +38,15 @@ import {
39
38
  toJson,
40
39
  toJsonl,
41
40
  toMarkdown
42
- } from "./chunk-VWD7SNNN.js";
41
+ } from "./chunk-UI5UGEF4.js";
43
42
  import {
44
43
  OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
45
44
  ObservedChannelContactStore
46
- } from "./chunk-47FQVRCO.js";
45
+ } from "./chunk-TMFWI4RC.js";
47
46
  import {
48
47
  escapeAnsiCtrlCodes
49
48
  } from "./chunk-4NFY2S7N.js";
50
- import "./chunk-U6PTKAOW.js";
49
+ import "./chunk-V6OBVAST.js";
51
50
  import "./chunk-2MIN6GRR.js";
52
51
  import "./chunk-QHTIBUWB.js";
53
52
  import "./chunk-3Z43GZUQ.js";
@@ -107,18 +106,14 @@ import {
107
106
  setRateLimiter,
108
107
  unsafeRevealSecret,
109
108
  validateMcpRuntimeServerName
110
- } from "./chunk-KNQZXSLW.js";
109
+ } from "./chunk-HG3UBTJ4.js";
111
110
  import "./chunk-VGHZT6JR.js";
112
111
  import {
113
112
  isLoopbackBind,
114
113
  normalizeSessionIdForLookup,
115
114
  parseCallerSuppliedSessionId
116
115
  } from "./chunk-TQOF5KBL.js";
117
- import "./chunk-HGCQ5SE7.js";
118
- import {
119
- evaluateDaemonWorkspaceTrust,
120
- readDaemonTrustPolicySnapshot
121
- } from "./chunk-6AECVSVX.js";
116
+ import "./chunk-UXEO7E3V.js";
122
117
  import {
123
118
  EMPTY_WORKSPACE_VOICE_UPDATE_ERROR,
124
119
  MAX_WORKSPACE_SKILL_NAME_LENGTH,
@@ -132,14 +127,14 @@ import {
132
127
  validateWorkspaceSkillName,
133
128
  validateWorkspaceVoiceState,
134
129
  voiceSettingsScopeToWire
135
- } from "./chunk-EXG2R5UR.js";
130
+ } from "./chunk-YCHNAKC5.js";
136
131
  import {
137
132
  PermissionRulesValidationError,
138
133
  buildPermissionSettings,
139
134
  isPermissionRuleType,
140
135
  normalizePermissionRules,
141
136
  readPermissionRuleSet
142
- } from "./chunk-SSAOTDK7.js";
137
+ } from "./chunk-YX2RDGAL.js";
143
138
  import {
144
139
  assertVoiceBaseUrlNetworkAllowed,
145
140
  isStreamingVoiceModel,
@@ -147,13 +142,13 @@ import {
147
142
  resolveVoiceTranscriptionConfig,
148
143
  sanitizeVoiceErrorMessage,
149
144
  transcribeVoiceAudio
150
- } from "./chunk-VQZXRLEX.js";
145
+ } from "./chunk-LCX5B364.js";
151
146
  import {
152
147
  isVoiceEnabled,
153
148
  isVoiceMode,
154
149
  readVoiceModel
155
- } from "./chunk-5UPJ774B.js";
156
- import "./chunk-IQFYO5BF.js";
150
+ } from "./chunk-VIFA5VJD.js";
151
+ import "./chunk-H7TMVHKE.js";
157
152
  import {
158
153
  createTotalSessionAdmissionController
159
154
  } from "./chunk-X2UOOG5V.js";
@@ -170,39 +165,25 @@ import {
170
165
  } from "./chunk-4JRM2BSM.js";
171
166
  import {
172
167
  assertValidChannelSecretUpdates
173
- } from "./chunk-P64FPV3G.js";
168
+ } from "./chunk-6JEIRPLN.js";
174
169
  import {
175
170
  createDaemonStatusProvider
176
- } from "./chunk-RQVVXDHS.js";
171
+ } from "./chunk-Q4ZPYNIZ.js";
177
172
  import "./chunk-NTTBXH7U.js";
178
- import "./chunk-JEMR2FTD.js";
179
- import "./chunk-3SH53ANB.js";
180
- import {
181
- SessionArtifactAuthorizationError,
182
- SessionArtifactValidationError,
183
- createAcpSessionBridge,
184
- parseSessionSource
185
- } from "./chunk-O5G7IQGM.js";
186
- import {
187
- EVENT_SCHEMA_VERSION,
188
- EventBus,
189
- SubscriberLimitExceededError
190
- } from "./chunk-MZSJ43WV.js";
191
- import "./chunk-XCGIMOLN.js";
192
- import "./chunk-OCPBI7J5.js";
173
+ import "./chunk-RQJA2YYO.js";
193
174
  import {
194
175
  createWorkspaceProvidersStatusProvider
195
- } from "./chunk-YZJVVQD3.js";
176
+ } from "./chunk-6ZKSO6K7.js";
196
177
  import {
197
178
  getAuthTypeFromEnv,
198
179
  resolveCliGenerationConfig
199
- } from "./chunk-NPE3STIW.js";
180
+ } from "./chunk-ROIJYS5K.js";
200
181
  import {
201
182
  snapshotProcessEnv
202
- } from "./chunk-5I5NMQCU.js";
183
+ } from "./chunk-36XKGB7E.js";
203
184
  import {
204
185
  createWorkspaceSkillsStatusProvider
205
- } from "./chunk-AJX4ITUG.js";
186
+ } from "./chunk-BSSLSQEW.js";
206
187
  import "./chunk-BGXZBI5B.js";
207
188
  import "./chunk-Z4X5MTRT.js";
208
189
  import {
@@ -218,35 +199,52 @@ import {
218
199
  import {
219
200
  require_express
220
201
  } from "./chunk-GDXET5XU.js";
202
+ import {
203
+ evaluateDaemonWorkspaceTrust,
204
+ readDaemonTrustPolicySnapshot
205
+ } from "./chunk-MAKIANMX.js";
221
206
  import {
222
207
  daemonObservedContactsPath,
223
208
  loadChannelsConfig
224
- } from "./chunk-TRYJ3BVE.js";
225
- import "./chunk-LHY6HBRA.js";
209
+ } from "./chunk-WM3LUQLO.js";
210
+ import "./chunk-IH4Z54RJ.js";
226
211
  import "./chunk-57OAHC2Y.js";
227
212
  import {
228
213
  parseChannelWebhookConfigLenient
229
- } from "./chunk-YTYPRVIZ.js";
230
- import "./chunk-ENEEQMGM.js";
214
+ } from "./chunk-BSR5AXZR.js";
215
+ import "./chunk-45NQKMYB.js";
231
216
  import {
232
217
  supportedChannelCatalog
233
- } from "./chunk-DEG7R6Z6.js";
234
- import "./chunk-V6WHFGST.js";
218
+ } from "./chunk-OK47XBYH.js";
235
219
  import {
236
220
  LIVE_HOST_BUNDLE_ID,
237
221
  LIVE_HOST_PROTOCOL_VERSION,
238
222
  LIVE_INPUT_AUDIO_EPOCH_BYTES
239
223
  } from "./chunk-NKLP3DCK.js";
240
- import "./chunk-TYGKUOEG.js";
224
+ import {
225
+ SessionArtifactAuthorizationError,
226
+ SessionArtifactValidationError,
227
+ createAcpSessionBridge,
228
+ parseSessionSource
229
+ } from "./chunk-6P5EXEBL.js";
230
+ import {
231
+ EVENT_SCHEMA_VERSION,
232
+ EventBus,
233
+ SubscriberLimitExceededError
234
+ } from "./chunk-7U5G6JXI.js";
235
+ import "./chunk-WCCLLK7X.js";
236
+ import "./chunk-OCPBI7J5.js";
237
+ import "./chunk-DAV4QFD5.js";
241
238
  import {
242
239
  STATUS_SCHEMA_VERSION,
243
240
  SessionRestoreTimeoutError,
244
241
  createIdleWorkspaceMemoryStatus,
245
242
  mapDomainErrorToErrorKind
246
- } from "./chunk-OPBATTFQ.js";
243
+ } from "./chunk-HTYND72J.js";
247
244
  import "./chunk-K6KS3LTN.js";
248
245
  import "./chunk-FC4KQFCS.js";
249
246
  import "./chunk-T3CHYWJZ.js";
247
+ import "./chunk-V6WHFGST.js";
250
248
  import {
251
249
  MAX_REGISTERED_WORKSPACES,
252
250
  WorkspaceDisplayNameValidationError,
@@ -254,12 +252,13 @@ import {
254
252
  WorkspaceRegistrationStoreLimitError,
255
253
  normalizeWorkspaceDisplayName,
256
254
  workspaceRegistrationId
257
- } from "./chunk-JL3LC3CQ.js";
255
+ } from "./chunk-WCEI6J56.js";
258
256
  import {
257
+ CHANNEL_PROMPT_META_KEY,
259
258
  DAEMON_PROMPT_DISPLAY_TEXT_META_KEY,
260
259
  REQUESTED_SESSION_ID_META_KEY,
261
260
  gradeActiveWorkCoverage
262
- } from "./chunk-HHGQGTJQ.js";
261
+ } from "./chunk-FQDCO3CJ.js";
263
262
  import {
264
263
  BranchWhilePromptActiveError,
265
264
  BridgeChannelQuarantinedError,
@@ -316,7 +315,7 @@ import {
316
315
  } from "./chunk-YP5KH5Y7.js";
317
316
  import {
318
317
  normalizeWorkerDiagnostic
319
- } from "./chunk-K7JW6V5O.js";
318
+ } from "./chunk-A6NRNRKE.js";
320
319
  import {
321
320
  normalizeServeChannelSelection
322
321
  } from "./chunk-ALMR3E6Q.js";
@@ -324,12 +323,12 @@ import "./chunk-HIBNSEJE.js";
324
323
  import {
325
324
  redactLogCredentials
326
325
  } from "./chunk-M5GB774H.js";
327
- import "./chunk-BKHCW2BI.js";
326
+ import "./chunk-3VUENPWF.js";
327
+ import "./chunk-5HBA2Z7V.js";
328
328
  import {
329
329
  sanitizeLogText
330
- } from "./chunk-LT532KF4.js";
330
+ } from "./chunk-AW27A43Y.js";
331
331
  import "./chunk-IW6RQPQB.js";
332
- import "./chunk-5HBA2Z7V.js";
333
332
  import {
334
333
  getDialogSettingKeys,
335
334
  getModelProvidersOwnerScope,
@@ -339,26 +338,26 @@ import {
339
338
  getWritableScopes,
340
339
  loadSettings,
341
340
  validateSettingValue
342
- } from "./chunk-M6SXIXBV.js";
341
+ } from "./chunk-3GDBZJD6.js";
343
342
  import "./chunk-RKUWKYED.js";
344
- import "./chunk-L7T742G2.js";
343
+ import "./chunk-FA5K6YI2.js";
345
344
  import "./chunk-GOXKNSDZ.js";
346
345
  import "./chunk-IDS7MSUP.js";
347
346
  import {
348
347
  detectSystemLanguage,
349
348
  resolveLanguageSetting
350
- } from "./chunk-GYBDYWMV.js";
349
+ } from "./chunk-IRSLAS4M.js";
351
350
  import {
352
351
  SUPPORTED_LANGUAGES,
353
352
  resolveSupportedLanguage
354
353
  } from "./chunk-5EJZE3FP.js";
355
- import "./chunk-RRQJPCRQ.js";
354
+ import "./chunk-XH3KAV2G.js";
356
355
  import "./chunk-MS7GNABG.js";
357
- import "./chunk-M2PY7CNK.js";
358
- import "./chunk-VJNBRRZG.js";
356
+ import "./chunk-OWXFBIB6.js";
357
+ import "./chunk-WZMH7II3.js";
359
358
  import {
360
359
  getWorkspaceTrustStatus
361
- } from "./chunk-4ETA3KRC.js";
360
+ } from "./chunk-ZMY2P4L3.js";
362
361
  import "./chunk-NPQ5ZKRP.js";
363
362
  import {
364
363
  isWithinRoot as isWithinRoot2
@@ -428,17 +427,15 @@ import {
428
427
  partToString,
429
428
  readAgentMeta,
430
429
  readWorktreeSession,
431
- redactUrlCredentials,
432
430
  resolveBranchName,
433
431
  resolveProviderProtocol,
434
432
  shouldShowStep,
435
- stripAnsiAndControl,
436
433
  stripTerminalControlSequences,
437
434
  watchRepoBranch,
438
435
  writeWorkspaceContextFile,
439
436
  writeWorktreeSession,
440
437
  writeWorktreeSessionMarker
441
- } from "./chunk-M6HXP2SG.js";
438
+ } from "./chunk-EBPLKY6U.js";
442
439
  import "./chunk-GOFAQQZA.js";
443
440
  import "./chunk-5M6IDOMF.js";
444
441
  import "./chunk-TWPJO254.js";
@@ -446,12 +443,12 @@ import "./chunk-CQ35AJ4Z.js";
446
443
  import {
447
444
  MAX_JOBS,
448
445
  nextDurableFireMs
449
- } from "./chunk-QTI7SRXI.js";
450
- import "./chunk-KT4OWAAZ.js";
451
- import "./chunk-IX7CFQGA.js";
452
- import "./chunk-N7NBMAMW.js";
446
+ } from "./chunk-QPBFRWCP.js";
447
+ import "./chunk-JRIVMPD2.js";
448
+ import "./chunk-YILJKX2T.js";
449
+ import "./chunk-D2RNVVH6.js";
453
450
  import "./chunk-6PVPNMXU.js";
454
- import "./chunk-I4XSOFH2.js";
451
+ import "./chunk-I7BT2MME.js";
455
452
  import {
456
453
  nextFireTime,
457
454
  parseCron
@@ -464,22 +461,22 @@ import {
464
461
  readCronTasks,
465
462
  taskHasLegacyCondition,
466
463
  updateCronTasks
467
- } from "./chunk-XLQS3VI6.js";
468
- import "./chunk-NWPO6I7V.js";
464
+ } from "./chunk-AKBFSOC5.js";
465
+ import "./chunk-DEDESZDL.js";
469
466
  import "./chunk-O6GEWCJA.js";
470
467
  import "./chunk-T26EAKDL.js";
471
468
  import "./chunk-ZPJWUGCS.js";
472
469
  import "./chunk-CPBF7KYF.js";
470
+ import "./chunk-5RUCD4ED.js";
471
+ import "./chunk-KRXPRVGL.js";
472
+ import "./chunk-YBVVOSOH.js";
473
+ import "./chunk-CPFFU46D.js";
474
+ import "./chunk-ULNWG62W.js";
475
+ import "./chunk-DPTMKFIH.js";
473
476
  import {
474
477
  APPROVAL_MODES
475
- } from "./chunk-6LYDH7VT.js";
476
- import "./chunk-2AZMF6G5.js";
477
- import "./chunk-KRXPRVGL.js";
478
- import "./chunk-GZGDJ4E6.js";
479
- import "./chunk-T6W4KACQ.js";
480
- import "./chunk-MWZYNOCG.js";
481
- import "./chunk-SAQHDAUJ.js";
482
- import "./chunk-6XZERB6P.js";
478
+ } from "./chunk-63FNZTWG.js";
479
+ import "./chunk-3GM5DLBI.js";
483
480
  import {
484
481
  addDaemonRequestAttribute,
485
482
  captureDaemonTelemetryContext,
@@ -491,39 +488,21 @@ import {
491
488
  recordDaemonHttpResponse,
492
489
  runWithDaemonTelemetryContext,
493
490
  withDaemonRequestSpan
494
- } from "./chunk-O5AZPHYZ.js";
491
+ } from "./chunk-K34GJQOZ.js";
495
492
  import "./chunk-SAH4BD2J.js";
496
- import "./chunk-5PWLQ7SK.js";
497
- import "./chunk-EYS3GGM3.js";
493
+ import "./chunk-KLOMACIR.js";
494
+ import "./chunk-VPV7WBVT.js";
498
495
  import "./chunk-S6LOFUVP.js";
499
496
  import "./chunk-2J3OJGTL.js";
500
- import {
501
- CursorNotAtLineBoundaryError,
502
- LargeNonUtf8TextError,
503
- TextScanBudgetExceededError,
504
- decodeBufferWithEncodingInfoAsync,
505
- getAllGeminiMdFilenames,
506
- isUtf8CompatibleEncoding,
507
- isWithinRoot,
508
- parseLineTolerant,
509
- read
510
- } from "./chunk-HB6QW4LM.js";
511
- import "./chunk-YRLW2MSX.js";
512
- import "./chunk-VGC4I5JJ.js";
513
- import "./chunk-732MOPEM.js";
514
- import "./chunk-CTQE2NB2.js";
515
- import "./chunk-NC4O6UE6.js";
516
- import "./chunk-IEP44U2R.js";
517
497
  import {
518
498
  SubagentError,
519
499
  SubagentErrorCode
520
- } from "./chunk-ZV4XVYL3.js";
500
+ } from "./chunk-TTRH3RTQ.js";
521
501
  import "./chunk-K623ENWT.js";
522
502
  import {
523
503
  escapeXml
524
504
  } from "./chunk-AQ37AY7B.js";
525
- import "./chunk-V3LXMASR.js";
526
- import "./chunk-XTH2OMDS.js";
505
+ import "./chunk-FRHQQC2Z.js";
527
506
  import {
528
507
  QwenOAuth2Client,
529
508
  QwenOAuthPollError,
@@ -532,38 +511,59 @@ import {
532
511
  isDeviceAuthorizationSuccess,
533
512
  isDeviceTokenPending,
534
513
  isDeviceTokenSuccess
535
- } from "./chunk-TBVNYG5B.js";
514
+ } from "./chunk-DG4IQ6JG.js";
536
515
  import "./chunk-NAVJD2PQ.js";
537
- import "./chunk-5HBFERG5.js";
538
- import "./chunk-EYW54TBD.js";
516
+ import "./chunk-KEC5FHLM.js";
517
+ import "./chunk-2ZWH53I4.js";
539
518
  import "./chunk-P3QQPMQA.js";
540
- import "./chunk-O4BBDP2G.js";
541
- import "./chunk-KPVVWKF3.js";
542
- import "./chunk-XWUQ4IH5.js";
543
- import "./chunk-F6WFNA7U.js";
544
- import "./chunk-F6AOBFUN.js";
519
+ import "./chunk-TB4YFWXG.js";
520
+ import "./chunk-D7QGE3RT.js";
545
521
  import "./chunk-KM73TBQ4.js";
546
522
  import "./chunk-MPHPFVKK.js";
547
523
  import "./chunk-AXMWHKXA.js";
548
524
  import "./chunk-GLCZKT5V.js";
549
- import "./chunk-GJJQV4PY.js";
550
- import "./chunk-46UV252V.js";
551
- import "./chunk-FPGTNKCP.js";
552
525
  import "./chunk-DJ2GSRLV.js";
553
- import "./chunk-EFIMD5VA.js";
554
- import "./chunk-E5BWLU5J.js";
526
+ import "./chunk-NLFLYSS4.js";
555
527
  import "./chunk-CR3C7WXL.js";
528
+ import "./chunk-XWRJCPHC.js";
529
+ import {
530
+ CursorNotAtLineBoundaryError,
531
+ LargeNonUtf8TextError,
532
+ TextScanBudgetExceededError,
533
+ decodeBufferWithEncodingInfoAsync,
534
+ getAllGeminiMdFilenames,
535
+ isUtf8CompatibleEncoding,
536
+ isWithinRoot,
537
+ parseLineTolerant,
538
+ read
539
+ } from "./chunk-4KM2SYK5.js";
540
+ import "./chunk-YRLW2MSX.js";
541
+ import "./chunk-VGC4I5JJ.js";
542
+ import "./chunk-G6MUFRNI.js";
543
+ import "./chunk-LSRI3ND3.js";
544
+ import "./chunk-PVXEJB66.js";
545
+ import "./chunk-YIGGWOJE.js";
546
+ import "./chunk-KWX56CHZ.js";
547
+ import "./chunk-F6WFNA7U.js";
548
+ import "./chunk-46UV252V.js";
549
+ import "./chunk-FPGTNKCP.js";
550
+ import "./chunk-4AOVQPJU.js";
551
+ import "./chunk-PZW46OTB.js";
552
+ import "./chunk-YBHUXEC6.js";
553
+ import {
554
+ redactUrlCredentials,
555
+ stripAnsiAndControl
556
+ } from "./chunk-N4SVADAV.js";
556
557
  import "./chunk-HHJLM3WQ.js";
557
- import "./chunk-L2GTEEEU.js";
558
+ import "./chunk-K5IDV3PC.js";
558
559
  import {
559
560
  FatalConfigError,
560
561
  Storage,
561
562
  createDebugLogger,
562
563
  getErrorMessage,
563
564
  runWithoutDebugLogSession
564
- } from "./chunk-MPBRV3UU.js";
565
+ } from "./chunk-HOSVOUDK.js";
565
566
  import "./chunk-VOQXFAY5.js";
566
- import "./chunk-XWRJCPHC.js";
567
567
  import {
568
568
  writeStderrLine,
569
569
  writeStderrLineSafe
@@ -571,13 +571,13 @@ import {
571
571
  import "./chunk-75DOP5OR.js";
572
572
  import "./chunk-DMTGGOSA.js";
573
573
  import "./chunk-YQ3U5MUC.js";
574
- import "./chunk-AMDSOFFV.js";
575
574
  import {
576
575
  import_websocket,
577
576
  import_websocket_server,
578
577
  wrapper_default
579
- } from "./chunk-E3GLDLYB.js";
578
+ } from "./chunk-TYAMGABM.js";
580
579
  import "./chunk-FCMNKVXT.js";
580
+ import "./chunk-AMDSOFFV.js";
581
581
  import "./chunk-QUGAUQGJ.js";
582
582
  import {
583
583
  init_esbuild_shims
@@ -23328,6 +23328,19 @@ function parseHistoryPageSize(body, res) {
23328
23328
  return value;
23329
23329
  }
23330
23330
  __name(parseHistoryPageSize, "parseHistoryPageSize");
23331
+ function parseLiveReplayMode(body, res) {
23332
+ const value = body["liveReplayMode"];
23333
+ if (value === void 0) return void 0;
23334
+ if (value !== "full" && value !== "summary") {
23335
+ res.status(400).json({
23336
+ error: "`liveReplayMode` must be `full` or `summary`",
23337
+ code: "invalid_live_replay_mode"
23338
+ });
23339
+ return null;
23340
+ }
23341
+ return value;
23342
+ }
23343
+ __name(parseLiveReplayMode, "parseLiveReplayMode");
23331
23344
  function workspaceTranscriptCursorExceedsLimit(cursor, maxBytes = WORKSPACE_TRANSCRIPT_CURSOR_MAX_BYTES) {
23332
23345
  return Buffer.byteLength(cursor) > maxBytes;
23333
23346
  }
@@ -24594,6 +24607,8 @@ function registerSessionRoutes(app, deps) {
24594
24607
  if (approvalMode === null) return;
24595
24608
  const historyPageSize = action === "load" ? parseHistoryPageSize(body ?? {}, res) : void 0;
24596
24609
  if (historyPageSize === null) return;
24610
+ const liveReplayMode = parseLiveReplayMode(body ?? {}, res);
24611
+ if (liveReplayMode === null) return;
24597
24612
  const clientId = parseClientIdHeader(req, res);
24598
24613
  if (clientId === null) return;
24599
24614
  let sessionIdReservation;
@@ -24644,6 +24659,7 @@ function registerSessionRoutes(app, deps) {
24644
24659
  workspaceCwd,
24645
24660
  historyReplay: "response",
24646
24661
  ...historyPageSize !== void 0 ? { historyPageSize } : {},
24662
+ ...liveReplayMode !== void 0 ? { liveReplayMode } : {},
24647
24663
  ...clientId !== void 0 ? { clientId } : {},
24648
24664
  ...approvalMode !== void 0 ? { approvalMode } : {},
24649
24665
  ...metadata
@@ -25659,19 +25675,23 @@ function registerSessionRoutes(app, deps) {
25659
25675
  const forwardedMeta = typeof forwardedBody["_meta"] === "object" && forwardedBody["_meta"] !== null && !Array.isArray(forwardedBody["_meta"]) ? { ...forwardedBody["_meta"] } : void 0;
25660
25676
  const promptAuthorization = forwardedMeta?.[CHANNEL_WORKER_PROMPT_AUTHORIZATION_META_KEY];
25661
25677
  const promptDisplayText = forwardedMeta?.[DAEMON_PROMPT_DISPLAY_TEXT_META_KEY];
25678
+ const channelPrompt = forwardedMeta?.[CHANNEL_PROMPT_META_KEY];
25662
25679
  if (forwardedMeta) {
25663
25680
  delete forwardedMeta[CHANNEL_WORKER_PROMPT_AUTHORIZATION_META_KEY];
25664
25681
  delete forwardedMeta[DAEMON_PROMPT_DISPLAY_TEXT_META_KEY];
25682
+ delete forwardedMeta[CHANNEL_PROMPT_META_KEY];
25665
25683
  if (Object.keys(forwardedMeta).length > 0) {
25666
25684
  forwardedBody["_meta"] = forwardedMeta;
25667
25685
  } else {
25668
25686
  delete forwardedBody["_meta"];
25669
25687
  }
25670
25688
  }
25671
- const trustedPromptDisplayText = typeof promptDisplayText === "string" && isChannelWorkerPromptAuthorized(
25689
+ const channelWorkerAuthorized = isChannelWorkerPromptAuthorized(
25672
25690
  promptAuthorization,
25673
25691
  runtime.workspaceCwd
25674
- ) ? promptDisplayText : void 0;
25692
+ );
25693
+ const trustedPromptDisplayText = typeof promptDisplayText === "string" && channelWorkerAuthorized ? promptDisplayText : void 0;
25694
+ const trustedChannelPrompt = channelWorkerAuthorized && channelPrompt === true;
25675
25695
  const lastEventId = ownerBridge.getSessionLastEventId(sessionId);
25676
25696
  const eventEpoch = ownerBridge.getSessionEventEpoch(sessionId);
25677
25697
  addDaemonRequestAttribute("qwen-code.prompt_id", promptId);
@@ -25705,6 +25725,7 @@ function registerSessionRoutes(app, deps) {
25705
25725
  promptId,
25706
25726
  ...effectiveDeadlineMs !== void 0 ? { deadlineMs: effectiveDeadlineMs } : {},
25707
25727
  ...trustedPromptDisplayText !== void 0 ? { promptDisplayText: trustedPromptDisplayText } : {},
25728
+ ...trustedChannelPrompt ? { channelPrompt: true } : {},
25708
25729
  ...delivery !== void 0 ? {
25709
25730
  channelDelivery: {
25710
25731
  deliveryId: promptId,
@@ -28411,18 +28432,21 @@ function startScheduledTaskKeepalive(opts) {
28411
28432
  const metadata = await new SessionService(
28412
28433
  boundWorkspace
28413
28434
  ).readCreationMetadata(sessionId);
28414
- const load = bridge.loadSession({
28435
+ const resume = bridge.resumeSession({
28415
28436
  sessionId,
28416
28437
  workspaceCwd: boundWorkspace,
28417
- historyReplay: "response",
28418
28438
  ...metadata
28419
28439
  });
28420
- void load.catch(() => {
28440
+ void resume.catch(() => {
28421
28441
  }).finally(() => {
28422
28442
  reviving.delete(sessionId);
28423
28443
  });
28424
28444
  try {
28425
- await withTimeout(load, reviveTimeoutMs, `loadSession(${sessionId})`);
28445
+ await withTimeout(
28446
+ resume,
28447
+ reviveTimeoutMs,
28448
+ `resumeSession(${sessionId})`
28449
+ );
28426
28450
  log.debug("keepalive: revived non-resident session", sessionId);
28427
28451
  reviveState.delete(sessionId);
28428
28452
  } catch (loadErr) {
@@ -28519,11 +28543,11 @@ function startScheduledTaskKeepalive(opts) {
28519
28543
  };
28520
28544
  }
28521
28545
  __name(startScheduledTaskKeepalive, "startScheduledTaskKeepalive");
28522
- var REHYDRATE_LOAD_TIMEOUT_MS = 7e4;
28546
+ var REHYDRATE_RESUME_TIMEOUT_MS = 7e4;
28523
28547
  var REHYDRATE_MAX_CONCURRENCY = 4;
28524
28548
  async function rehydrateScheduledTaskSessions(deps) {
28525
28549
  const { bridge, boundWorkspace } = deps;
28526
- const timeoutMs = deps.loadTimeoutMs ?? REHYDRATE_LOAD_TIMEOUT_MS;
28550
+ const timeoutMs = deps.loadTimeoutMs ?? REHYDRATE_RESUME_TIMEOUT_MS;
28527
28551
  let tasks;
28528
28552
  try {
28529
28553
  tasks = await readCronTasks(boundWorkspace);
@@ -28543,16 +28567,15 @@ async function rehydrateScheduledTaskSessions(deps) {
28543
28567
  const metadata = await new SessionService(
28544
28568
  boundWorkspace
28545
28569
  ).readCreationMetadata(sessionId);
28546
- const load = bridge.loadSession({
28570
+ const resume = bridge.resumeSession({
28547
28571
  sessionId,
28548
28572
  workspaceCwd: boundWorkspace,
28549
- historyReplay: "response",
28550
28573
  ...metadata
28551
28574
  });
28552
- void load.catch(() => {
28575
+ void resume.catch(() => {
28553
28576
  });
28554
28577
  try {
28555
- await withTimeout(load, timeoutMs, `loadSession(${sessionId})`);
28578
+ await withTimeout(resume, timeoutMs, `resumeSession(${sessionId})`);
28556
28579
  loaded.push(sessionId);
28557
28580
  } catch (err) {
28558
28581
  failed.push(sessionId);
@@ -32434,7 +32457,7 @@ function registerWorkspaceManagementRoutes(app, deps) {
32434
32457
  throw new Error("Workspace registration limit reached");
32435
32458
  }
32436
32459
  }, "assertOwnedRuntimeAdmission");
32437
- const publishOwnedRuntime = /* @__PURE__ */ __name(async (canonicalCwd, provenance, validate) => {
32460
+ const publishOwnedRuntime = /* @__PURE__ */ __name(async (canonicalCwd, provenance, validateBeforePublication) => {
32438
32461
  if (!createWorkspaceRuntime || !runtimeRemoval) {
32439
32462
  throw new Error("Managed workspace runtime publication is unavailable");
32440
32463
  }
@@ -32445,7 +32468,10 @@ function registerWorkspaceManagementRoutes(app, deps) {
32445
32468
  let registered = false;
32446
32469
  try {
32447
32470
  runtime = await createWorkspaceRuntime(canonicalCwd, { provenance });
32448
- await validate(runtime);
32471
+ if (runtime.primary) {
32472
+ throw new Error("Daemon-owned workspace runtime must not be primary");
32473
+ }
32474
+ await validateBeforePublication(runtime);
32449
32475
  const publish = /* @__PURE__ */ __name(async () => {
32450
32476
  if (sealed) throw new Error("Daemon is shutting down");
32451
32477
  if (workspaceRegistry.getManagedByWorkspaceCwd(canonicalCwd)) {
@@ -43326,6 +43352,91 @@ var LiveTaskService = class {
43326
43352
  }
43327
43353
  };
43328
43354
 
43355
+ // packages/cli/src/serve/conversations/conversation-runtime-manager.ts
43356
+ init_esbuild_shims();
43357
+ var ConversationRuntimeManager = class {
43358
+ constructor(options) {
43359
+ this.options = options;
43360
+ }
43361
+ static {
43362
+ __name(this, "ConversationRuntimeManager");
43363
+ }
43364
+ runtime;
43365
+ pending;
43366
+ ensure() {
43367
+ if (this.pending) return this.pending;
43368
+ const pending = this.ensureOnce().finally(() => {
43369
+ if (this.pending === pending) this.pending = void 0;
43370
+ });
43371
+ this.pending = pending;
43372
+ return pending;
43373
+ }
43374
+ async ensureOnce() {
43375
+ const root = await this.options.workspace.revalidate();
43376
+ if (this.runtime) {
43377
+ await this.options.workspace.assertExactRoot(this.runtime.workspaceCwd);
43378
+ this.assertActiveRuntime(
43379
+ root.canonicalRoot,
43380
+ this.runtime,
43381
+ "Live conversation runtime is no longer an active owned runtime."
43382
+ );
43383
+ return this.runtime;
43384
+ }
43385
+ const entry = this.options.registry.getEntryByWorkspaceCwd(
43386
+ root.canonicalRoot
43387
+ );
43388
+ if (entry) {
43389
+ const existing = entry.current?.runtime;
43390
+ if (entry.state !== "active" || !existing) {
43391
+ throw new Error(
43392
+ "Live conversation runtime is no longer an active owned runtime."
43393
+ );
43394
+ }
43395
+ this.assertOwnedRuntime(
43396
+ existing,
43397
+ "Live conversation root is already registered without Live provenance."
43398
+ );
43399
+ await this.options.workspace.assertExactRoot(existing.workspaceCwd);
43400
+ this.assertActiveRuntime(
43401
+ root.canonicalRoot,
43402
+ existing,
43403
+ "Live conversation runtime is no longer an active owned runtime."
43404
+ );
43405
+ this.runtime = existing;
43406
+ return existing;
43407
+ }
43408
+ const created = await this.options.publishRuntime(
43409
+ root.canonicalRoot,
43410
+ async (candidate) => {
43411
+ await this.options.workspace.assertExactRoot(candidate.workspaceCwd);
43412
+ this.assertOwnedRuntime(
43413
+ candidate,
43414
+ "Live conversation runtime failed its ownership gate."
43415
+ );
43416
+ }
43417
+ );
43418
+ this.assertActiveRuntime(
43419
+ root.canonicalRoot,
43420
+ created,
43421
+ "Live conversation runtime is no longer an active owned runtime."
43422
+ );
43423
+ this.runtime = created;
43424
+ return created;
43425
+ }
43426
+ assertActiveRuntime(canonicalRoot, runtime, message) {
43427
+ this.assertOwnedRuntime(runtime, message);
43428
+ const entry = this.options.registry.getEntryByWorkspaceCwd(canonicalRoot);
43429
+ if (entry?.state !== "active" || entry.current?.runtime !== runtime) {
43430
+ throw new Error(message);
43431
+ }
43432
+ }
43433
+ assertOwnedRuntime(runtime, message) {
43434
+ if (runtime.primary || runtime.provenance !== "live-conversation" || !runtime.trusted || runtime.removable !== false) {
43435
+ throw new Error(message);
43436
+ }
43437
+ }
43438
+ };
43439
+
43329
43440
  // packages/cli/src/serve/server.ts
43330
43441
  var warnedDefaultTrust = false;
43331
43442
  function loadServeChannelWebhookConfigs(sources) {
@@ -43812,94 +43923,95 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
43812
43923
  message: "The Live Appshot channel is unavailable."
43813
43924
  }
43814
43925
  );
43815
- let liveRuntime;
43816
- let liveRuntimePromise;
43926
+ const conversationRuntimeManager = deps.liveConversationWorkspace ? new ConversationRuntimeManager({
43927
+ workspace: deps.liveConversationWorkspace,
43928
+ registry: workspaceRegistry,
43929
+ publishRuntime: /* @__PURE__ */ __name(async (canonicalRoot, validate) => {
43930
+ const runtime = await workspaceManagementHandle.publishOwnedRuntime(
43931
+ canonicalRoot,
43932
+ "live-conversation",
43933
+ async (candidate) => {
43934
+ await validate(candidate);
43935
+ await deps.liveConversationWorkspace.revalidate();
43936
+ }
43937
+ );
43938
+ invalidateServeFeaturesCache();
43939
+ return runtime;
43940
+ }, "publishRuntime")
43941
+ }) : void 0;
43942
+ let liveBoundRuntime;
43943
+ let liveBindingPromise;
43817
43944
  let liveRuntimeBootPromise;
43818
43945
  let liveAppshotChannelPromise;
43819
43946
  let liveCoordinatorSealed = false;
43820
- const bindLiveAppshotHandler = /* @__PURE__ */ __name((runtime) => {
43947
+ const clearLiveRuntimeHandlers = /* @__PURE__ */ __name((runtime) => {
43948
+ const handlers = [
43949
+ runtime.bridge.setLiveScreenContextCaptureHandler,
43950
+ runtime.bridge.setLiveTaskToolRequestHandler,
43951
+ runtime.bridge.setLiveSpeakToUserHandler
43952
+ ];
43953
+ for (const clear of handlers) {
43954
+ try {
43955
+ clear?.call(runtime.bridge, void 0);
43956
+ } catch {
43957
+ continue;
43958
+ }
43959
+ }
43960
+ }, "clearLiveRuntimeHandlers");
43961
+ const bindLiveRuntimeHandlers = /* @__PURE__ */ __name((runtime) => {
43821
43962
  if (liveCoordinatorSealed) {
43822
43963
  throw new Error("Live Voice is shutting down.");
43823
43964
  }
43824
- const setHandler = runtime.bridge.setLiveScreenContextCaptureHandler;
43825
- if (!setHandler) {
43965
+ const setScreenHandler = runtime.bridge.setLiveScreenContextCaptureHandler;
43966
+ const setTaskHandler = runtime.bridge.setLiveTaskToolRequestHandler;
43967
+ const setSpeakHandler = runtime.bridge.setLiveSpeakToUserHandler;
43968
+ if (!setScreenHandler) {
43826
43969
  throw new Error("Live conversation runtime has no Appshot channel.");
43827
43970
  }
43828
- setHandler.call(
43829
- runtime.bridge,
43830
- ({ callerSessionId }) => liveCoordinator.captureScreenContext(callerSessionId)
43831
- );
43832
- const setTaskHandler = runtime.bridge.setLiveTaskToolRequestHandler;
43833
43971
  if (!setTaskHandler) {
43834
43972
  throw new Error("Live conversation runtime has no task-tool channel.");
43835
43973
  }
43836
- setTaskHandler.call(runtime.bridge, (info) => liveTaskService.handle(info));
43837
- const setSpeakHandler = runtime.bridge.setLiveSpeakToUserHandler;
43838
43974
  if (!setSpeakHandler) {
43839
43975
  throw new Error("Live conversation runtime has no speech channel.");
43840
43976
  }
43841
- setSpeakHandler.call(
43842
- runtime.bridge,
43843
- ({ callerSessionId, message }) => liveSessionCoordinator.speakToUser(callerSessionId, message)
43844
- );
43845
- }, "bindLiveAppshotHandler");
43977
+ liveBoundRuntime = runtime;
43978
+ try {
43979
+ setScreenHandler.call(
43980
+ runtime.bridge,
43981
+ ({ callerSessionId }) => liveCoordinator.captureScreenContext(callerSessionId)
43982
+ );
43983
+ setTaskHandler.call(
43984
+ runtime.bridge,
43985
+ (info) => liveTaskService.handle(info)
43986
+ );
43987
+ setSpeakHandler.call(
43988
+ runtime.bridge,
43989
+ ({ callerSessionId, message }) => liveSessionCoordinator.speakToUser(callerSessionId, message)
43990
+ );
43991
+ } catch (error2) {
43992
+ clearLiveRuntimeHandlers(runtime);
43993
+ throw error2;
43994
+ }
43995
+ }, "bindLiveRuntimeHandlers");
43846
43996
  const ensureLiveConversationRuntime = /* @__PURE__ */ __name(() => {
43847
43997
  if (liveCoordinatorSealed) {
43848
43998
  return Promise.reject(new Error("Live Voice is shutting down."));
43849
43999
  }
43850
- if (liveRuntimePromise) return liveRuntimePromise;
44000
+ if (liveBindingPromise) return liveBindingPromise;
43851
44001
  const pending = (async () => {
43852
- const conversationWorkspace = deps.liveConversationWorkspace;
43853
- const runtimePublisher = workspaceManagementHandle;
43854
- if (!conversationWorkspace || !runtimePublisher) {
44002
+ if (!conversationRuntimeManager) {
43855
44003
  throw new Error("Live conversation runtime is unavailable.");
43856
44004
  }
43857
- const root = await conversationWorkspace.revalidate();
43858
- if (liveRuntime) {
43859
- await conversationWorkspace.assertExactRoot(liveRuntime.workspaceCwd);
43860
- const entry = workspaceRegistry.getEntryByWorkspaceCwd(
43861
- root.canonicalRoot
43862
- );
43863
- if (entry?.state !== "active" || entry.current?.runtime !== liveRuntime || liveRuntime.provenance !== "live-conversation" || !liveRuntime.trusted || liveRuntime.removable !== false) {
43864
- throw new Error(
43865
- "Live conversation runtime is no longer an active owned runtime."
43866
- );
43867
- }
43868
- bindLiveAppshotHandler(liveRuntime);
43869
- return liveRuntime;
43870
- }
43871
- const existing = workspaceRegistry.getByWorkspaceCwd(root.canonicalRoot);
43872
- if (existing) {
43873
- if (existing.provenance !== "live-conversation" || !existing.trusted || existing.removable !== false) {
43874
- throw new Error(
43875
- "Live conversation root is already registered without Live provenance."
43876
- );
43877
- }
43878
- await conversationWorkspace.assertExactRoot(existing.workspaceCwd);
43879
- liveRuntime = existing;
43880
- bindLiveAppshotHandler(existing);
43881
- return existing;
44005
+ const runtime = await conversationRuntimeManager.ensure();
44006
+ if (liveCoordinatorSealed) {
44007
+ throw new Error("Live Voice is shutting down.");
43882
44008
  }
43883
- const created = await runtimePublisher.publishOwnedRuntime(
43884
- root.canonicalRoot,
43885
- "live-conversation",
43886
- async (candidate) => {
43887
- await conversationWorkspace.assertExactRoot(candidate.workspaceCwd);
43888
- if (candidate.provenance !== "live-conversation" || !candidate.trusted || candidate.removable !== false) {
43889
- throw new Error(
43890
- "Live conversation runtime failed its ownership gate."
43891
- );
43892
- }
43893
- }
43894
- );
43895
- liveRuntime = created;
43896
- bindLiveAppshotHandler(created);
43897
- invalidateServeFeaturesCache();
43898
- return created;
44009
+ bindLiveRuntimeHandlers(runtime);
44010
+ return runtime;
43899
44011
  })().finally(() => {
43900
- if (liveRuntimePromise === pending) liveRuntimePromise = void 0;
44012
+ if (liveBindingPromise === pending) liveBindingPromise = void 0;
43901
44013
  });
43902
- liveRuntimePromise = pending;
44014
+ liveBindingPromise = pending;
43903
44015
  return pending;
43904
44016
  }, "ensureLiveConversationRuntime");
43905
44017
  const verifyLiveAppshotChannel = /* @__PURE__ */ __name(() => {
@@ -44023,9 +44135,7 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
44023
44135
  liveCoordinatorSealed = true;
44024
44136
  if (liveCoordinatorStopped) return;
44025
44137
  liveCoordinatorStopped = true;
44026
- liveRuntime?.bridge.setLiveScreenContextCaptureHandler?.(void 0);
44027
- liveRuntime?.bridge.setLiveTaskToolRequestHandler?.(void 0);
44028
- liveRuntime?.bridge.setLiveSpeakToUserHandler?.(void 0);
44138
+ if (liveBoundRuntime) clearLiveRuntimeHandlers(liveBoundRuntime);
44029
44139
  liveSessionCoordinator.dispose();
44030
44140
  liveCoordinator.dispose();
44031
44141
  }, "stopLiveCoordinator");
@@ -44033,7 +44143,7 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
44033
44143
  app.locals.sealAndWaitLiveCoordinator = async () => {
44034
44144
  stopLiveCoordinator();
44035
44145
  await Promise.all([
44036
- liveRuntimePromise?.catch(() => void 0),
44146
+ liveBindingPromise?.catch(() => void 0),
44037
44147
  liveAppshotChannelPromise?.catch(() => void 0)
44038
44148
  ]);
44039
44149
  };