@qwen-code/qwen-code 0.21.0 → 0.21.1-simplify-system-prompt.0

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 (228) hide show
  1. package/chunks/{MaxSizedBox-5DPPWPGT.js → MaxSizedBox-INHRH72H.js} +11 -10
  2. package/chunks/{StandaloneSessionPicker-BIRMPLRD.js → StandaloneSessionPicker-O6RKBPU4.js} +25 -24
  3. package/chunks/{acpAgent-6J2U72PQ.js → acpAgent-HYFVXVDR.js} +119 -74
  4. package/chunks/{agent-6ODUANDO.js → agent-VXDAN5JK.js} +10 -9
  5. package/chunks/{agent-headless-7BYQTMHW.js → agent-headless-K4ZMMNBD.js} +10 -9
  6. package/chunks/{anthropicContentGenerator-75BKLTSP.js → anthropicContentGenerator-LXUXMOE7.js} +20 -9
  7. package/chunks/{bridge-ZUB64FAE.js → bridge-LGPZCFHO.js} +14 -13
  8. package/chunks/channel-management-service-G74LFADV.js +403 -0
  9. package/chunks/channel-settings-store-CHCDRTPY.js +89 -0
  10. package/chunks/{channel-worker-group-2ZD7TVAT.js → channel-worker-group-PTJIJSKC.js} +6 -5
  11. package/chunks/{channel-worker-manager-4OA4BCGB.js → channel-worker-manager-WIMGM2FD.js} +6 -5
  12. package/chunks/{channel-worker-supervisor-V7KCFJTS.js → channel-worker-supervisor-KUFTR6P5.js} +5 -4
  13. package/chunks/{chunk-OFDOK3VM.js → chunk-2JM6GZ5D.js} +3 -3
  14. package/chunks/{chunk-H4SBPHSA.js → chunk-2OM7GEXO.js} +1 -1
  15. package/chunks/{chunk-TGILQ3YH.js → chunk-2Q3OT4OV.js} +7 -7
  16. package/chunks/{chunk-PC6JANNU.js → chunk-2YZJCM5T.js} +4 -4
  17. package/chunks/{chunk-QAF7NMK7.js → chunk-32MVHM4T.js} +1 -1
  18. package/chunks/{chunk-K36B6G2O.js → chunk-3HBZKBMQ.js} +3 -3
  19. package/chunks/{chunk-GSN55ZRI.js → chunk-3IXOIAKE.js} +4 -4
  20. package/chunks/{chunk-IJTOWOD7.js → chunk-3JAQDSXN.js} +12 -0
  21. package/chunks/{chunk-UDX5OBWR.js → chunk-3MSHSCSN.js} +2 -2
  22. package/chunks/{chunk-ZFDTEDCF.js → chunk-4M377AZG.js} +3 -3
  23. package/chunks/{chunk-U7M2DMGW.js → chunk-52O2CIUL.js} +2 -2
  24. package/chunks/{chunk-R5AFZNQW.js → chunk-5THCYPLO.js} +3 -3
  25. package/chunks/{chunk-7MVVZO4N.js → chunk-5U4IPFBR.js} +4 -4
  26. package/chunks/{chunk-KIM5GUMA.js → chunk-66RMLJHC.js} +21 -21
  27. package/chunks/{chunk-FSITMZJH.js → chunk-6PSLCFQ2.js} +5 -5
  28. package/chunks/{chunk-ACY3A37B.js → chunk-7FZEBPKS.js} +3 -3
  29. package/chunks/{chunk-7JURR4JT.js → chunk-A6UO2C7C.js} +1 -1
  30. package/chunks/{chunk-JLU636DO.js → chunk-ALMR3E6Q.js} +1 -0
  31. package/chunks/{chunk-PWVFN2LF.js → chunk-B4UMZKMU.js} +1 -1
  32. package/chunks/{chunk-SQCQ4KO2.js → chunk-B6ZJ7SI6.js} +14 -14
  33. package/chunks/{chunk-YPE6A4GC.js → chunk-B7QDM6Z7.js} +1 -1
  34. package/chunks/{chunk-NIBLUX3Y.js → chunk-BO4XCS7P.js} +195 -3
  35. package/chunks/{chunk-WCXCRJYB.js → chunk-BRRAJXPA.js} +1 -1
  36. package/chunks/{chunk-TPRQ7RZH.js → chunk-BYFNTGKI.js} +37 -35
  37. package/chunks/{chunk-Y34KJKDC.js → chunk-C3NS4F2Q.js} +1 -1
  38. package/chunks/{chunk-Q4M4MDQ4.js → chunk-CC4N4M36.js} +1 -1
  39. package/chunks/{chunk-EBJQ6AXW.js → chunk-DM22XS4K.js} +5 -5
  40. package/chunks/{chunk-PHOF65IG.js → chunk-DM4Q4JJH.js} +1059 -722
  41. package/chunks/{chunk-JXJFVC6E.js → chunk-DN6ZX5AY.js} +3 -3
  42. package/chunks/{chunk-J24WCGIN.js → chunk-E5WH5O3C.js} +4 -4
  43. package/chunks/{chunk-4WIZGAH3.js → chunk-ER5LWJR6.js} +5 -57
  44. package/chunks/chunk-FY3M44RD.js +463 -0
  45. package/chunks/{chunk-IO3IX5Q4.js → chunk-G4WFQUYQ.js} +1 -1
  46. package/chunks/{chunk-VULLI6WQ.js → chunk-GDIPH4JY.js} +3 -3
  47. package/chunks/chunk-HV3G62R6.js +76 -0
  48. package/chunks/{chunk-YX324OPW.js → chunk-I7XZ3RY5.js} +1 -1
  49. package/chunks/{chunk-BULDBTYC.js → chunk-INADJJGW.js} +1 -26
  50. package/chunks/{chunk-RIBKPMRP.js → chunk-J6D3VXCC.js} +3 -3
  51. package/chunks/{chunk-TEHGS6UP.js → chunk-JALU3ZDU.js} +6 -6
  52. package/chunks/{chunk-YBL3QUDD.js → chunk-KIUFNBHR.js} +1 -1
  53. package/chunks/{chunk-VIA5XA4U.js → chunk-KU5XMLDK.js} +1 -1
  54. package/chunks/{chunk-KMQ33DO4.js → chunk-LG4GZIVV.js} +3 -3
  55. package/chunks/{chunk-ZNAUOR2I.js → chunk-LNARWLZQ.js} +1 -1
  56. package/chunks/{chunk-LQIW3YFY.js → chunk-LNURQEMZ.js} +4 -4
  57. package/chunks/{chunk-VRYUBFMC.js → chunk-LZEMEFKY.js} +1 -1
  58. package/chunks/{chunk-LB6DUZ26.js → chunk-M4UKFCZ2.js} +65 -46
  59. package/chunks/chunk-MK7VQDN3.js +79 -0
  60. package/chunks/{chunk-RWTEFFPU.js → chunk-ML52PL6O.js} +211 -209
  61. package/chunks/{chunk-RF3EXIHJ.js → chunk-MSLKI6C2.js} +12 -12
  62. package/chunks/{chunk-X5XDDSSH.js → chunk-MVS3NS2N.js} +1 -1
  63. package/chunks/{chunk-5NBDS5S6.js → chunk-N3FAY5CM.js} +7 -5
  64. package/chunks/{chunk-55DJUCI2.js → chunk-OJGCZBB7.js} +14 -9
  65. package/chunks/{chunk-BKHWX6I2.js → chunk-P5V4T7NK.js} +3 -3
  66. package/chunks/{chunk-LH2BYDQ5.js → chunk-PANH4R3B.js} +1 -1
  67. package/chunks/{chunk-RZIX2G32.js → chunk-PHVR5UUY.js} +1 -1
  68. package/chunks/{chunk-MZAXJAUM.js → chunk-PSWQZHEA.js} +1 -1
  69. package/chunks/{chunk-3RN6GBKS.js → chunk-QPDRAXDJ.js} +1 -1
  70. package/chunks/{chunk-2X55UKQE.js → chunk-QY5MMZ6O.js} +2 -2
  71. package/chunks/{chunk-CIKQ7KKO.js → chunk-RWS5VYWC.js} +14 -8
  72. package/chunks/{chunk-MVSUYZDT.js → chunk-SASBXAQL.js} +3 -3
  73. package/chunks/chunk-SQBYH7PX.js +1252 -0
  74. package/chunks/{chunk-MB4MZHMJ.js → chunk-SRZ6DXVG.js} +170 -389
  75. package/chunks/chunk-TF2X2WCT.js +363 -0
  76. package/chunks/{chunk-2SCDWPXI.js → chunk-TQCBGUHN.js} +2 -2
  77. package/chunks/{chunk-LK7CHLVP.js → chunk-U4VTUMMK.js} +0 -60
  78. package/chunks/{chunk-IKCX4CCL.js → chunk-U7TXFVUN.js} +6 -6
  79. package/chunks/{chunk-2NH6DYI4.js → chunk-V6VRAM7B.js} +10 -10
  80. package/chunks/{chunk-Z2BC6UJ5.js → chunk-VCBZUOSI.js} +1 -1
  81. package/chunks/{chunk-IKYJHJNF.js → chunk-VFSJ5VRH.js} +2 -2
  82. package/chunks/{chunk-LKEJ26GS.js → chunk-VV6XU5L7.js} +1 -1
  83. package/chunks/{chunk-7ZCNENPP.js → chunk-W4CQXHT6.js} +1 -1
  84. package/chunks/{chunk-HTR4WV6U.js → chunk-W4RQUHY3.js} +31 -1
  85. package/chunks/{chunk-ETSW4KLJ.js → chunk-WDSWXQU3.js} +1 -1
  86. package/chunks/{chunk-PSOO6YXD.js → chunk-XHRTVPG2.js} +8 -6
  87. package/chunks/{chunk-ZJHVAS7M.js → chunk-YAF5VNU7.js} +1 -1
  88. package/chunks/{chunk-JVPM2ULZ.js → chunk-Z5BLYMZM.js} +4 -4
  89. package/chunks/{chunk-M4FMGVY4.js → chunk-ZE5WPL4I.js} +2 -2
  90. package/chunks/{computer-use-SOQ4E3VX.js → computer-use-DOFAHZAB.js} +10 -9
  91. package/chunks/{config-utils-7V7GGIW6.js → config-utils-VFQXVGNR.js} +4 -3
  92. package/chunks/{contextCommand-JLHYA34Z.js → contextCommand-QIZYHDR5.js} +12 -11
  93. package/chunks/{create-sub-session-QRJLW5BV.js → create-sub-session-7543K2QA.js} +10 -9
  94. package/chunks/{daemon-YO6433NF.js → daemon-VOMQW7KZ.js} +189 -0
  95. package/chunks/{daemon-status-provider-2233Q37D.js → daemon-status-provider-OS5UWBHV.js} +18 -17
  96. package/chunks/{dist-WEAHOXDM.js → dist-ANLAT3GS.js} +1 -1
  97. package/chunks/{dist-BBLXMS3N.js → dist-BRB6EXK4.js} +1 -1
  98. package/chunks/{dist-YFNEUWSE.js → dist-K6Y4E7FX.js} +1 -1
  99. package/chunks/{dist-F6IBUDR4.js → dist-KTYYJ2C5.js} +1 -1
  100. package/chunks/{dist-46NQKLTW.js → dist-NNVBBOGU.js} +2 -2
  101. package/chunks/{dist-AIKFMUKK.js → dist-RTJFMNEZ.js} +1 -1
  102. package/chunks/{earlyInputCapture-A7NDU3PF.js → earlyInputCapture-WQT24RWD.js} +10 -9
  103. package/chunks/{edit-OBDSQURM.js → edit-RIEOJWKB.js} +10 -9
  104. package/chunks/{enter-worktree-U6MRPQ2P.js → enter-worktree-OGK5FQ3R.js} +10 -9
  105. package/chunks/{enterPlanMode-BC5QUZZ2.js → enterPlanMode-IWZYALIB.js} +10 -9
  106. package/chunks/{environment-W5UFC2CH.js → environment-VZ7BRI4Q.js} +12 -11
  107. package/chunks/{errors-M7CLORXH.js → errors-PCX25DVP.js} +12 -11
  108. package/chunks/{exit-worktree-DGNYMECB.js → exit-worktree-4TEYVIVP.js} +10 -9
  109. package/chunks/{exitPlanMode-GXTBWQAR.js → exitPlanMode-GHPUHBZJ.js} +38 -18
  110. package/chunks/{fast-path-JJZFJANL.js → fast-path-HYE7IFEV.js} +5 -5
  111. package/chunks/{gemini-QS36EBZV.js → gemini-NGRQX3YJ.js} +54 -51
  112. package/chunks/{geminiContentGenerator-AG4KB6CV.js → geminiContentGenerator-FQHPFZSR.js} +36 -7
  113. package/chunks/{glob-V7R3PSK3.js → glob-FRTM3X2E.js} +10 -9
  114. package/chunks/{grep-QYPSK7OP.js → grep-RKWVROCW.js} +10 -9
  115. package/chunks/{handleAutoUpdate-6DBEZYPV.js → handleAutoUpdate-2CZQRJ66.js} +14 -13
  116. package/chunks/{i18n-VUJJZIMU.js → i18n-XEQVMRKN.js} +11 -10
  117. package/chunks/{image-gen-Z3VPGKRC.js → image-gen-WIEM7KZA.js} +1 -1
  118. package/chunks/{initializer-UWAK5U5O.js → initializer-OVGZ4FLY.js} +15 -14
  119. package/chunks/{installationInfo-6O2YAA52.js → installationInfo-5UUQJI6Y.js} +11 -10
  120. package/chunks/{list-GB4ESM3T.js → list-HODU6RXD.js} +18 -17
  121. package/chunks/{loadedSettingsAdapter-OT6JVQ7U.js → loadedSettingsAdapter-TYNLBALY.js} +15 -14
  122. package/chunks/{loggingContentGenerator-HS3S5H3Q.js → loggingContentGenerator-WGM27QAW.js} +55 -91
  123. package/chunks/{managed-npm-update-JYEMMXA3.js → managed-npm-update-JQ2CG3RH.js} +11 -10
  124. package/chunks/{mcp-6DBDJPFU.js → mcp-J3DFWX4A.js} +15 -14
  125. package/chunks/{monitor-R3ODH5U6.js → monitor-7FEWXX5F.js} +10 -9
  126. package/chunks/{nonInteractiveCli-MOYCYBBU.js → nonInteractiveCli-F4GYSMHT.js} +50 -47
  127. package/chunks/{notebook-edit-BNOK452R.js → notebook-edit-JGJV2K6J.js} +10 -9
  128. package/chunks/{openaiContentGenerator-WMCU3O2H.js → openaiContentGenerator-JPVXDTAO.js} +8 -7
  129. package/chunks/{pidfile-TFRZZZIO.js → pidfile-4VNAR3EP.js} +10 -9
  130. package/chunks/{processUtils-RT7UNCC2.js → processUtils-V2LCK6T6.js} +2 -2
  131. package/chunks/{qwenContentGenerator-HHCRK4SX.js → qwenContentGenerator-TICV2W2Z.js} +12 -11
  132. package/chunks/{qwenOAuth2-OWLB5AKH.js → qwenOAuth2-XGFI5XJG.js} +1 -1
  133. package/chunks/{read-file-APMO3PSX.js → read-file-LZXUR4TO.js} +5 -5
  134. package/chunks/{resumeHistoryUtils-6KRYEAWZ.js → resumeHistoryUtils-65OX3SGJ.js} +14 -13
  135. package/chunks/{ripGrep-BEJDEDXW.js → ripGrep-2U2FRGMV.js} +10 -9
  136. package/chunks/{run-qwen-serve-FU6HEM4J.js → run-qwen-serve-3VCV4I7E.js} +69 -33
  137. package/chunks/{runtime-XXRRTNP6.js → runtime-AXJWIEDU.js} +20 -18
  138. package/chunks/{scheduler-G2ZS2Z7E.js → scheduler-RS2I6RU5.js} +10 -9
  139. package/chunks/{sdk-exporters-http-FYBSUCPD.js → sdk-exporters-http-FS6ZV7MF.js} +2 -2
  140. package/chunks/{sdk-impl-GMVPB7NB.js → sdk-impl-7FZSCSXB.js} +6 -6
  141. package/chunks/{serve-7BSTXJ4T.js → serve-W2GC47CM.js} +16 -15
  142. package/chunks/{server-4UMH7OIZ.js → server-HRZ23U7M.js} +499 -93
  143. package/chunks/{session-K3O3Q2SV.js → session-7XHZKTVV.js} +51 -48
  144. package/chunks/{settings-CR2EWTBA.js → settings-7ZGZDXAS.js} +14 -13
  145. package/chunks/{shell-HH3PF3A2.js → shell-45IPBDP5.js} +10 -9
  146. package/chunks/{skill-I3SDA4MB.js → skill-LIWXNLDW.js} +7 -6
  147. package/chunks/{spawnChannel-RWNDBXGA.js → spawnChannel-PVXQ5AGV.js} +12 -11
  148. package/chunks/{src-GE4TTTML.js → src-AY65BYR7.js} +36 -17
  149. package/chunks/{standalone-update-Q6WFRZZQ.js → standalone-update-ZMFNKAEY.js} +12 -11
  150. package/chunks/{startInteractiveUI-SLZGHRPH.js → startInteractiveUI-IW3CSKHA.js} +87 -88
  151. package/chunks/{team-create-YJALH5D2.js → team-create-O2FROQ4R.js} +10 -9
  152. package/chunks/{team-plan-approval-34QFYKGN.js → team-plan-approval-Q6WDBXTQ.js} +10 -9
  153. package/chunks/{theme-manager-SWRILQHI.js → theme-manager-YYPZFBAH.js} +10 -9
  154. package/chunks/{tool-search-NF7GB6LE.js → tool-search-APECNQ3Z.js} +5 -5
  155. package/chunks/{total-session-admission-DLHHHLD3.js → total-session-admission-JXES723M.js} +14 -13
  156. package/chunks/{tree-sitter-4D7QS7F6.js → tree-sitter-FS4VPMZA.js} +1 -1
  157. package/chunks/{tree-sitter-bash-VEJGF5XF.js → tree-sitter-bash-6B46JJCV.js} +1 -1
  158. package/chunks/{trustedFolders-KHXHY6PY.js → trustedFolders-HVI7IXUH.js} +11 -10
  159. package/chunks/{update-relaunch-WBUZJC5O.js → update-relaunch-ON5MDJQG.js} +5 -5
  160. package/chunks/{updateCheck-RKL6M5XN.js → updateCheck-WUJGHWZZ.js} +13 -12
  161. package/chunks/{useAutoAcceptIndicator-CFQ5BUJL.js → useAutoAcceptIndicator-CHSTZLZD.js} +17 -16
  162. package/chunks/{validateNonInterActiveAuth-3R223G3R.js → validateNonInterActiveAuth-JBLKBKRD.js} +47 -44
  163. package/chunks/{version-HS7YSFHV.js → version-LTNUBQJY.js} +1 -1
  164. package/chunks/{web-fetch-NKCSG7ZE.js → web-fetch-L5UTI53V.js} +5 -5
  165. package/chunks/{web-search-S62WAP4S.js → web-search-KM33JOS3.js} +2 -2
  166. package/chunks/{workflow-QAGU5RU4.js → workflow-K7FAWV77.js} +11 -10
  167. package/chunks/{workspace-providers-status-QSVZUETE.js → workspace-providers-status-GAKSF4LL.js} +18 -17
  168. package/chunks/{workspace-registration-store-24JMHDGF.js → workspace-registration-store-6TGVDJV5.js} +1 -1
  169. package/chunks/{workspace-registry-UT4RBNBM.js → workspace-registry-A7NQUONG.js} +14 -13
  170. package/chunks/{workspace-service-JFWRUS4V.js → workspace-service-STGVSO4N.js} +19 -18
  171. package/chunks/{workspace-skills-status-ZBBKJOI2.js → workspace-skills-status-66AK3DUA.js} +16 -15
  172. package/chunks/{write-file-VHIXW5M7.js → write-file-HUUCEG4P.js} +10 -9
  173. package/cli.js +12 -12
  174. package/package.json +3 -3
  175. package/web-shell/assets/{arc-DcbWnB9T.js → arc-BbHijhiN.js} +1 -1
  176. package/web-shell/assets/{architectureDiagram-3BPJPVTR-kMMF5sud.js → architectureDiagram-3BPJPVTR-Cb4B_JD0.js} +1 -1
  177. package/web-shell/assets/{blockDiagram-GPEHLZMM-Htl9vTJS.js → blockDiagram-GPEHLZMM-Dsjlh3H-.js} +1 -1
  178. package/web-shell/assets/{c4Diagram-AAUBKEIU-BnZnm0mQ.js → c4Diagram-AAUBKEIU-Cp5AeR4U.js} +1 -1
  179. package/web-shell/assets/channel-Bzdx6E8P.js +1 -0
  180. package/web-shell/assets/{chunk-2J33WTMH-DziB7kDG.js → chunk-2J33WTMH-CLcY7W2e.js} +1 -1
  181. package/web-shell/assets/{chunk-4BX2VUAB-CmkD8daw.js → chunk-4BX2VUAB-BUhvY2LR.js} +1 -1
  182. package/web-shell/assets/{chunk-55IACEB6-CHAd9A_U.js → chunk-55IACEB6-kDIFC_71.js} +1 -1
  183. package/web-shell/assets/{chunk-727SXJPM-Dqaam3fE.js → chunk-727SXJPM-CIBO15f2.js} +1 -1
  184. package/web-shell/assets/{chunk-AQP2D5EJ-D_-saBYM.js → chunk-AQP2D5EJ-BJ_T_slV.js} +1 -1
  185. package/web-shell/assets/{chunk-FMBD7UC4-B9r_veWD.js → chunk-FMBD7UC4-BEkW35J8.js} +1 -1
  186. package/web-shell/assets/{chunk-ND2GUHAM-B3EaCSpL.js → chunk-ND2GUHAM-GGPxofay.js} +1 -1
  187. package/web-shell/assets/{chunk-QZHKN3VN-CYq8x9mn.js → chunk-QZHKN3VN-Bifllrb6.js} +1 -1
  188. package/web-shell/assets/classDiagram-4FO5ZUOK-Cd6wbiuK.js +1 -0
  189. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cd6wbiuK.js +1 -0
  190. package/web-shell/assets/{cose-bilkent-S5V4N54A-D0ng4uiB.js → cose-bilkent-S5V4N54A-C-Add_Dp.js} +1 -1
  191. package/web-shell/assets/{dagre-BM42HDAG-DCZollQv.js → dagre-BM42HDAG-B7MfwNq2.js} +1 -1
  192. package/web-shell/assets/{diagram-2AECGRRQ-Dfk2pWS0.js → diagram-2AECGRRQ-CY_0zuDz.js} +1 -1
  193. package/web-shell/assets/{diagram-5GNKFQAL-kX38ltWR.js → diagram-5GNKFQAL-VyYSbCgA.js} +1 -1
  194. package/web-shell/assets/{diagram-KO2AKTUF-CJz2vsXh.js → diagram-KO2AKTUF-CBiIZ2PL.js} +1 -1
  195. package/web-shell/assets/{diagram-LMA3HP47-BvMLZm_7.js → diagram-LMA3HP47-BL3CrVOx.js} +1 -1
  196. package/web-shell/assets/{diagram-OG6HWLK6-l7kfStkO.js → diagram-OG6HWLK6-CZUPx96P.js} +1 -1
  197. package/web-shell/assets/{erDiagram-TEJ5UH35-BSVa8GGT.js → erDiagram-TEJ5UH35-B81xHr1-.js} +1 -1
  198. package/web-shell/assets/{flowDiagram-I6XJVG4X-CoawKIXH.js → flowDiagram-I6XJVG4X-EZWhir-J.js} +1 -1
  199. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFUDH0zF.js → ganttDiagram-6RSMTGT7-CVFSuIAg.js} +1 -1
  200. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Y2pvpT4e.js → gitGraphDiagram-PVQCEYII-C1H2uQDv.js} +1 -1
  201. package/web-shell/assets/{index-ckX9Pq5k.js → index-B2bXx96W.js} +273 -254
  202. package/web-shell/assets/{index-D0GX0zZf.js → index-BYo99NBH.js} +1 -1
  203. package/web-shell/assets/{index-D9haPt0X.css → index-_8mKjx8q.css} +1 -1
  204. package/web-shell/assets/{infoDiagram-5YYISTIA-CU8_zLiX.js → infoDiagram-5YYISTIA-BwyFMlF8.js} +1 -1
  205. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AVQiV0DU.js → ishikawaDiagram-YF4QCWOH-CQ7Yhn2Y.js} +1 -1
  206. package/web-shell/assets/{journeyDiagram-JHISSGLW-DQ0VSKa3.js → journeyDiagram-JHISSGLW-CJn2sf0l.js} +1 -1
  207. package/web-shell/assets/{kanban-definition-UN3LZRKU-BqnWqsE_.js → kanban-definition-UN3LZRKU-DaNRqwVN.js} +1 -1
  208. package/web-shell/assets/{linear-BkoihsaA.js → linear-DCKODZe2.js} +1 -1
  209. package/web-shell/assets/{mermaid.core-5RJs-31j.js → mermaid.core-CTGJOk27.js} +5 -5
  210. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D33Bxnpd.js → mindmap-definition-RKZ34NQL-BKU3_3rg.js} +1 -1
  211. package/web-shell/assets/{pieDiagram-4H26LBE5-BuEAw3BH.js → pieDiagram-4H26LBE5-COcwBJ82.js} +1 -1
  212. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Kox_usEq.js → quadrantDiagram-W4KKPZXB-CQnQ443x.js} +1 -1
  213. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CNjeUif0.js → requirementDiagram-4Y6WPE33-CZ2oj5cD.js} +1 -1
  214. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BCd2OL_U.js → sankeyDiagram-5OEKKPKP-BxAv5mNu.js} +1 -1
  215. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CF2ZTsz0.js → sequenceDiagram-3UESZ5HK-CztaySPs.js} +1 -1
  216. package/web-shell/assets/{stateDiagram-AJRCARHV-qenSzHtm.js → stateDiagram-AJRCARHV-CTQT1oGD.js} +1 -1
  217. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BjMdT6E_.js +1 -0
  218. package/web-shell/assets/{timeline-definition-PNZ67QCA-B5DyWdgs.js → timeline-definition-PNZ67QCA-K9Mkex5A.js} +1 -1
  219. package/web-shell/assets/{vennDiagram-CIIHVFJN-DqP4I_o_.js → vennDiagram-CIIHVFJN-B2rVIw76.js} +1 -1
  220. package/web-shell/assets/{wardley-L42UT6IY-CJe2e4mg.js → wardley-L42UT6IY-Z1w2JR4M.js} +1 -1
  221. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BMDSw-Rr.js → wardleyDiagram-YWT4CUSO-CIX9aKXf.js} +1 -1
  222. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BTVZYkxD.js → xychartDiagram-2RQKCTM6-CI9DLIKB.js} +1 -1
  223. package/web-shell/index.html +2 -2
  224. package/chunks/chunk-LEH5C7FV.js +0 -232
  225. package/web-shell/assets/channel-Cq7YKtfC.js +0 -1
  226. package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +0 -1
  227. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +0 -1
  228. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +0 -1
@@ -16,7 +16,7 @@ import {
16
16
  shouldSuppressRememberErrorDetails,
17
17
  workspaceMemoryFailureCode,
18
18
  workspaceMemoryFailureDiagnostics
19
- } from "./chunk-RIBKPMRP.js";
19
+ } from "./chunk-J6D3VXCC.js";
20
20
  import {
21
21
  openQwenAsrRealtimeStream,
22
22
  openVoiceStream,
@@ -33,66 +33,17 @@ import {
33
33
  toJson,
34
34
  toJsonl,
35
35
  toMarkdown
36
- } from "./chunk-EBJQ6AXW.js";
36
+ } from "./chunk-DM22XS4K.js";
37
37
  import {
38
38
  OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
39
39
  ObservedChannelContactStore
40
40
  } from "./chunk-RHLZR4E5.js";
41
41
  import "./chunk-IPUUTYMV.js";
42
- import "./chunk-WCXCRJYB.js";
42
+ import "./chunk-BRRAJXPA.js";
43
43
  import "./chunk-2MIN6GRR.js";
44
44
  import "./chunk-QHTIBUWB.js";
45
45
  import "./chunk-QTERJVPZ.js";
46
46
  import "./chunk-3Z43GZUQ.js";
47
- import {
48
- EMPTY_WORKSPACE_VOICE_UPDATE_ERROR,
49
- MAX_WORKSPACE_SKILL_NAME_LENGTH,
50
- WorkspaceSkillManagementError,
51
- WorkspaceVoiceError,
52
- buildWorkspaceVoiceSettingsWrites,
53
- buildWorkspaceVoiceStatus,
54
- createDaemonWorkspaceService,
55
- hasConfiguredBatchVoiceTranscriptionModel,
56
- transcribeWorkspaceVoiceAudio,
57
- validateWorkspaceSkillName,
58
- validateWorkspaceVoiceState,
59
- voiceSettingsScopeToWire
60
- } from "./chunk-TGILQ3YH.js";
61
- import {
62
- PermissionRulesValidationError,
63
- buildPermissionSettings,
64
- isPermissionRuleType,
65
- normalizePermissionRules,
66
- readPermissionRuleSet
67
- } from "./chunk-VRYUBFMC.js";
68
- import {
69
- assertVoiceBaseUrlNetworkAllowed,
70
- isStreamingVoiceModel,
71
- resolveVoiceStreamConfig,
72
- resolveVoiceTranscriptionConfig,
73
- sanitizeVoiceErrorMessage,
74
- transcribeVoiceAudio
75
- } from "./chunk-H4SBPHSA.js";
76
- import {
77
- isVoiceEnabled,
78
- isVoiceMode,
79
- readVoiceModel
80
- } from "./chunk-YBL3QUDD.js";
81
- import "./chunk-ZD6UTE4A.js";
82
- import {
83
- WorkspacePermissionRulesSessionRequiredError,
84
- WorkspaceSettingsPartialPersistError,
85
- WorkspaceSkillNotFoundError,
86
- WorkspaceSkillNotToggleableError
87
- } from "./chunk-OA4JVLSA.js";
88
- import {
89
- createTotalSessionAdmissionController
90
- } from "./chunk-VYPFXUCB.js";
91
- import {
92
- createSingleWorkspaceRegistry,
93
- createWorkspaceSessionOwnerIndex
94
- } from "./chunk-UGYMA4EI.js";
95
- import "./chunk-GRC5HGPI.js";
96
47
  import {
97
48
  CAPABILITIES_SCHEMA_VERSION,
98
49
  CLIENT_ID_HEADER,
@@ -150,33 +101,87 @@ import {
150
101
  setRateLimiter,
151
102
  unsafeRevealSecret,
152
103
  validateMcpRuntimeServerName
153
- } from "./chunk-IJTOWOD7.js";
104
+ } from "./chunk-3JAQDSXN.js";
154
105
  import {
155
106
  isLoopbackBind
156
107
  } from "./chunk-RXFQM6FQ.js";
108
+ import {
109
+ EMPTY_WORKSPACE_VOICE_UPDATE_ERROR,
110
+ MAX_WORKSPACE_SKILL_NAME_LENGTH,
111
+ WorkspaceSkillManagementError,
112
+ WorkspaceVoiceError,
113
+ buildWorkspaceVoiceSettingsWrites,
114
+ buildWorkspaceVoiceStatus,
115
+ createDaemonWorkspaceService,
116
+ hasConfiguredBatchVoiceTranscriptionModel,
117
+ transcribeWorkspaceVoiceAudio,
118
+ validateWorkspaceSkillName,
119
+ validateWorkspaceVoiceState,
120
+ voiceSettingsScopeToWire
121
+ } from "./chunk-2Q3OT4OV.js";
122
+ import {
123
+ PermissionRulesValidationError,
124
+ buildPermissionSettings,
125
+ isPermissionRuleType,
126
+ normalizePermissionRules,
127
+ readPermissionRuleSet
128
+ } from "./chunk-LZEMEFKY.js";
129
+ import {
130
+ assertVoiceBaseUrlNetworkAllowed,
131
+ isStreamingVoiceModel,
132
+ resolveVoiceStreamConfig,
133
+ resolveVoiceTranscriptionConfig,
134
+ sanitizeVoiceErrorMessage,
135
+ transcribeVoiceAudio
136
+ } from "./chunk-2OM7GEXO.js";
137
+ import {
138
+ isVoiceEnabled,
139
+ isVoiceMode,
140
+ readVoiceModel
141
+ } from "./chunk-KIUFNBHR.js";
142
+ import "./chunk-ZD6UTE4A.js";
143
+ import {
144
+ WorkspacePermissionRulesSessionRequiredError,
145
+ WorkspaceSettingsPartialPersistError,
146
+ WorkspaceSkillNotFoundError,
147
+ WorkspaceSkillNotToggleableError
148
+ } from "./chunk-OA4JVLSA.js";
149
+ import {
150
+ createTotalSessionAdmissionController
151
+ } from "./chunk-VYPFXUCB.js";
152
+ import {
153
+ createSingleWorkspaceRegistry,
154
+ createWorkspaceSessionOwnerIndex
155
+ } from "./chunk-UGYMA4EI.js";
156
+ import "./chunk-GRC5HGPI.js";
157
+ import {
158
+ assertValidChannelSecretUpdates
159
+ } from "./chunk-TF2X2WCT.js";
157
160
  import {
158
161
  daemonObservedContactsPath,
159
162
  loadChannelsConfig
160
- } from "./chunk-PSOO6YXD.js";
161
- import "./chunk-PC6JANNU.js";
163
+ } from "./chunk-XHRTVPG2.js";
164
+ import "./chunk-2YZJCM5T.js";
162
165
  import "./chunk-57OAHC2Y.js";
163
166
  import {
164
167
  createDaemonStatusProvider
165
- } from "./chunk-J24WCGIN.js";
168
+ } from "./chunk-E5WH5O3C.js";
166
169
  import "./chunk-LXXMOYPL.js";
167
- import "./chunk-MVSUYZDT.js";
170
+ import "./chunk-SASBXAQL.js";
168
171
  import "./chunk-E5Z2AVNV.js";
169
172
  import {
170
173
  SessionArtifactAuthorizationError,
171
174
  SessionArtifactValidationError,
172
175
  createAcpSessionBridge,
173
176
  parseSessionSource
174
- } from "./chunk-KIM5GUMA.js";
177
+ } from "./chunk-66RMLJHC.js";
175
178
  import {
176
179
  EVENT_SCHEMA_VERSION,
177
180
  EventBus,
178
181
  SubscriberLimitExceededError
179
182
  } from "./chunk-GLWP3FDB.js";
183
+ import "./chunk-COH43MRJ.js";
184
+ import "./chunk-3SJ43L4W.js";
180
185
  import {
181
186
  BranchWhilePromptActiveError,
182
187
  CancelSentinelCollisionError,
@@ -210,34 +215,35 @@ import {
210
215
  WorkspaceInitSymlinkError,
211
216
  WorkspaceMismatchError
212
217
  } from "./chunk-UH3WSE5L.js";
213
- import "./chunk-COH43MRJ.js";
214
- import "./chunk-3SJ43L4W.js";
215
- import "./chunk-7JURR4JT.js";
218
+ import "./chunk-A6UO2C7C.js";
216
219
  import {
217
220
  createWorkspaceProvidersStatusProvider
218
- } from "./chunk-FSITMZJH.js";
221
+ } from "./chunk-6PSLCFQ2.js";
219
222
  import {
220
223
  getAuthTypeFromEnv,
221
224
  resolveCliGenerationConfig
222
- } from "./chunk-KMQ33DO4.js";
225
+ } from "./chunk-LG4GZIVV.js";
223
226
  import {
224
227
  snapshotProcessEnv
225
- } from "./chunk-ETSW4KLJ.js";
228
+ } from "./chunk-WDSWXQU3.js";
226
229
  import {
227
230
  createWorkspaceSkillsStatusProvider
228
- } from "./chunk-ACY3A37B.js";
231
+ } from "./chunk-7FZEBPKS.js";
229
232
  import "./chunk-2W3OOD4W.js";
230
233
  import {
231
234
  STATUS_SCHEMA_VERSION,
232
235
  createIdleWorkspaceMemoryStatus,
233
236
  mapDomainErrorToErrorKind
234
- } from "./chunk-VIA5XA4U.js";
237
+ } from "./chunk-KU5XMLDK.js";
235
238
  import "./chunk-WBL3FJEU.js";
236
239
  import "./chunk-T2NCM2ET.js";
237
240
  import {
238
241
  parseChannelWebhookConfigLenient
239
- } from "./chunk-4WIZGAH3.js";
240
- import "./chunk-7ZCNENPP.js";
242
+ } from "./chunk-ER5LWJR6.js";
243
+ import "./chunk-W4CQXHT6.js";
244
+ import {
245
+ supportedChannelCatalog
246
+ } from "./chunk-MK7VQDN3.js";
241
247
  import "./chunk-V6WHFGST.js";
242
248
  import {
243
249
  MAX_REGISTERED_WORKSPACES,
@@ -246,7 +252,7 @@ import {
246
252
  WorkspaceRegistrationStoreLimitError,
247
253
  normalizeWorkspaceDisplayName,
248
254
  workspaceRegistrationId
249
- } from "./chunk-Q4M4MDQ4.js";
255
+ } from "./chunk-CC4N4M36.js";
250
256
  import {
251
257
  MAX_WORKSPACE_PATH_LENGTH,
252
258
  canonicalizeWorkspace,
@@ -261,19 +267,21 @@ import {
261
267
  MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH,
262
268
  QWEN_SERVER_TOKEN_ENV,
263
269
  isChannelDeliveryError,
264
- isChannelWebhookEnqueueError,
270
+ isChannelWebhookEnqueueError
271
+ } from "./chunk-U4VTUMMK.js";
272
+ import {
265
273
  normalizeWorkerDiagnostic
266
- } from "./chunk-LK7CHLVP.js";
274
+ } from "./chunk-HV3G62R6.js";
267
275
  import {
268
276
  normalizeServeChannelSelection
269
- } from "./chunk-JLU636DO.js";
277
+ } from "./chunk-ALMR3E6Q.js";
270
278
  import "./chunk-BK2UNYWD.js";
271
279
  import {
272
280
  redactLogCredentials
273
281
  } from "./chunk-M5GB774H.js";
274
282
  import {
275
283
  sanitizeLogText
276
- } from "./chunk-RWTEFFPU.js";
284
+ } from "./chunk-ML52PL6O.js";
277
285
  import "./chunk-UDXSXLER.js";
278
286
  import "./chunk-5HBA2Z7V.js";
279
287
  import {
@@ -285,7 +293,7 @@ import {
285
293
  getWritableScopes,
286
294
  loadSettings,
287
295
  validateSettingValue
288
- } from "./chunk-TEHGS6UP.js";
296
+ } from "./chunk-JALU3ZDU.js";
289
297
  import "./chunk-RKUWKYED.js";
290
298
  import "./chunk-GOXKNSDZ.js";
291
299
  import "./chunk-IDS7MSUP.js";
@@ -294,14 +302,14 @@ import {
294
302
  detectSystemLanguage,
295
303
  resolveLanguageSetting,
296
304
  resolveSupportedLanguage
297
- } from "./chunk-LKEJ26GS.js";
298
- import "./chunk-LH2BYDQ5.js";
305
+ } from "./chunk-VV6XU5L7.js";
306
+ import "./chunk-PANH4R3B.js";
299
307
  import "./chunk-6PEXNQTX.js";
300
- import "./chunk-YX324OPW.js";
308
+ import "./chunk-I7XZ3RY5.js";
301
309
  import "./chunk-VJNBRRZG.js";
302
310
  import {
303
311
  getWorkspaceTrustStatus
304
- } from "./chunk-Z2BC6UJ5.js";
312
+ } from "./chunk-VCBZUOSI.js";
305
313
  import "./chunk-ALGGS7UH.js";
306
314
  import {
307
315
  isWithinRoot as isWithinRoot2
@@ -317,6 +325,7 @@ import {
317
325
  ClientMcpRegistrar,
318
326
  DEFAULT_LOG_LIMIT,
319
327
  ExtensionManager,
328
+ GITHUB_PR_ERROR_MESSAGE_MAX,
320
329
  GROUP_COLOR_OPTIONS,
321
330
  GitWorktreeService,
322
331
  IMAGE_CAPABILITY,
@@ -350,6 +359,7 @@ import {
350
359
  fetchGitCommitDetail,
351
360
  fetchGitDiff,
352
361
  fetchGitDiffHunksForFile,
362
+ fetchGitHubPullRequests,
353
363
  fetchGitLog,
354
364
  getGitWorkingTreeStatus,
355
365
  getSubagentSessionDir,
@@ -369,7 +379,7 @@ import {
369
379
  writeWorkspaceContextFile,
370
380
  writeWorktreeSession,
371
381
  writeWorktreeSessionMarker
372
- } from "./chunk-PHOF65IG.js";
382
+ } from "./chunk-DM4Q4JJH.js";
373
383
  import "./chunk-5M6IDOMF.js";
374
384
  import "./chunk-TWPJO254.js";
375
385
  import "./chunk-H6XPXXMH.js";
@@ -395,7 +405,7 @@ import "./chunk-ZOIFNCKL.js";
395
405
  import "./chunk-PWTZEM3C.js";
396
406
  import "./chunk-KRXPRVGL.js";
397
407
  import "./chunk-6PVPNMXU.js";
398
- import "./chunk-MZAXJAUM.js";
408
+ import "./chunk-PSWQZHEA.js";
399
409
  import "./chunk-SZRN75WQ.js";
400
410
  import "./chunk-HTO4JFDZ.js";
401
411
  import "./chunk-CPBF7KYF.js";
@@ -427,7 +437,7 @@ import "./chunk-XVNQMZ2I.js";
427
437
  import "./chunk-FODK6UMO.js";
428
438
  import "./chunk-GLNBDYUX.js";
429
439
  import "./chunk-DJ2GSRLV.js";
430
- import "./chunk-ZJHVAS7M.js";
440
+ import "./chunk-YAF5VNU7.js";
431
441
  import {
432
442
  addDaemonRequestAttribute,
433
443
  emitDaemonLog,
@@ -437,11 +447,12 @@ import {
437
447
  recordDaemonHttpRequest,
438
448
  recordDaemonHttpResponse,
439
449
  withDaemonRequestSpan
440
- } from "./chunk-NIBLUX3Y.js";
450
+ } from "./chunk-BO4XCS7P.js";
441
451
  import "./chunk-BPJSQIJX.js";
442
452
  import "./chunk-P3QQPMQA.js";
443
453
  import "./chunk-6FGBXPWM.js";
444
454
  import "./chunk-LS77BEZP.js";
455
+ import "./chunk-SQBYH7PX.js";
445
456
  import "./chunk-CR3C7WXL.js";
446
457
  import {
447
458
  decodeBufferWithEncodingInfo,
@@ -450,10 +461,10 @@ import {
450
461
  isWithinRoot,
451
462
  parseLineTolerant,
452
463
  read
453
- } from "./chunk-CIKQ7KKO.js";
464
+ } from "./chunk-RWS5VYWC.js";
454
465
  import "./chunk-VGC4I5JJ.js";
455
466
  import "./chunk-MUP3T3AD.js";
456
- import "./chunk-IKCX4CCL.js";
467
+ import "./chunk-U7TXFVUN.js";
457
468
  import "./chunk-46UV252V.js";
458
469
  import "./chunk-A4UCTEB5.js";
459
470
  import "./chunk-XWRJCPHC.js";
@@ -461,9 +472,9 @@ import "./chunk-UW5EOVUN.js";
461
472
  import "./chunk-2JZBVYTU.js";
462
473
  import "./chunk-5I2IWRSH.js";
463
474
  import "./chunk-A5L3JMUA.js";
464
- import "./chunk-MB4MZHMJ.js";
465
- import "./chunk-HTR4WV6U.js";
466
- import "./chunk-BULDBTYC.js";
475
+ import "./chunk-SRZ6DXVG.js";
476
+ import "./chunk-W4RQUHY3.js";
477
+ import "./chunk-INADJJGW.js";
467
478
  import "./chunk-U7ZFW55U.js";
468
479
  import "./chunk-UUUTRMI2.js";
469
480
  import "./chunk-PR75REBZ.js";
@@ -23903,14 +23914,14 @@ __name(canonicalCron, "canonicalCron");
23903
23914
  function registerScheduledTaskCrudRoutes(app, deps) {
23904
23915
  const {
23905
23916
  prefix,
23906
- resolveTarget,
23917
+ resolveTarget: resolveTarget2,
23907
23918
  mutate,
23908
23919
  safeBody: safeBody2,
23909
23920
  channelDeliveryAuthorizations
23910
23921
  } = deps;
23911
23922
  const base = `${prefix}/scheduled-tasks`;
23912
23923
  app.get(base, async (req, res) => {
23913
- const target = resolveTarget(req, res);
23924
+ const target = resolveTarget2(req, res);
23914
23925
  if (!target) return;
23915
23926
  try {
23916
23927
  const tasks = await readCronTasks(target.workspaceCwd);
@@ -23926,7 +23937,7 @@ function registerScheduledTaskCrudRoutes(app, deps) {
23926
23937
  }
23927
23938
  });
23928
23939
  app.post(base, mutate(), async (req, res) => {
23929
- const target = resolveTarget(req, res);
23940
+ const target = resolveTarget2(req, res);
23930
23941
  if (!target) return;
23931
23942
  const { workspaceCwd, bridge } = target;
23932
23943
  const body = safeBody2(req);
@@ -24102,7 +24113,7 @@ function registerScheduledTaskCrudRoutes(app, deps) {
24102
24113
  res.status(201).json(toView(task));
24103
24114
  });
24104
24115
  app.patch(`${base}/:id`, mutate(), async (req, res) => {
24105
- const target = resolveTarget(req, res);
24116
+ const target = resolveTarget2(req, res);
24106
24117
  if (!target) return;
24107
24118
  const { workspaceCwd, bridge } = target;
24108
24119
  const id = typeof req.params["id"] === "string" ? req.params["id"] : "";
@@ -24292,7 +24303,7 @@ function registerScheduledTaskCrudRoutes(app, deps) {
24292
24303
  res.status(200).json(toView(updated));
24293
24304
  });
24294
24305
  app.delete(`${base}/:id`, mutate(), async (req, res) => {
24295
- const target = resolveTarget(req, res);
24306
+ const target = resolveTarget2(req, res);
24296
24307
  if (!target) return;
24297
24308
  const { workspaceCwd, bridge } = target;
24298
24309
  const id = typeof req.params["id"] === "string" ? req.params["id"] : "";
@@ -24341,7 +24352,7 @@ function registerScheduledTaskCrudRoutes(app, deps) {
24341
24352
  res.status(200).json({ deleted: true, id });
24342
24353
  });
24343
24354
  app.post(`${base}/:id/run`, mutate(), async (req, res) => {
24344
- const target = resolveTarget(req, res);
24355
+ const target = resolveTarget2(req, res);
24345
24356
  if (!target) return;
24346
24357
  const { workspaceCwd } = target;
24347
24358
  const id = typeof req.params["id"] === "string" ? req.params["id"] : "";
@@ -25332,6 +25343,7 @@ function createServeFeatures(deps) {
25332
25343
  reloadAvailable,
25333
25344
  channelReloadAvailable,
25334
25345
  channelControlAvailable,
25346
+ channelManagementAvailable,
25335
25347
  sessionShellCommandEnabled,
25336
25348
  multiWorkspaceSessionsEnabled,
25337
25349
  dynamicWorkspaceRegistrationAvailable,
@@ -25370,6 +25382,7 @@ function createServeFeatures(deps) {
25370
25382
  reloadAvailable,
25371
25383
  channelReloadAvailable: channelReloadAvailable(),
25372
25384
  channelControlAvailable,
25385
+ channelManagementAvailable,
25373
25386
  multiWorkspaceSessionsEnabled: multiWorkspaceSessionsEnabled(),
25374
25387
  dynamicWorkspaceRegistrationAvailable,
25375
25388
  persistentWorkspaceRegistrationAvailable,
@@ -29437,6 +29450,73 @@ function registerWorkspaceQualifiedGitLogRoutes(app, deps) {
29437
29450
  }
29438
29451
  __name(registerWorkspaceQualifiedGitLogRoutes, "registerWorkspaceQualifiedGitLogRoutes");
29439
29452
 
29453
+ // packages/cli/src/serve/routes/workspace-github-prs.ts
29454
+ init_esbuild_shims();
29455
+ function sanitizeMessage(message, workspaceCwd) {
29456
+ return message.split(workspaceCwd).join("<workspace>");
29457
+ }
29458
+ __name(sanitizeMessage, "sanitizeMessage");
29459
+ function registerWorkspaceQualifiedGitHubPrsRoutes(app, deps) {
29460
+ app.get("/workspaces/:workspace/github/prs", async (req, res) => {
29461
+ const route = "GET /workspaces/:workspace/github/prs";
29462
+ const runtime = resolveWorkspaceRuntimeFromParam(
29463
+ deps.workspaceRegistry,
29464
+ req,
29465
+ res
29466
+ );
29467
+ if (!runtime) return;
29468
+ if (!requireTrustedWorkspaceRuntime(runtime, res)) return;
29469
+ applyReadHeaders(res);
29470
+ try {
29471
+ const result = await fetchGitHubPullRequests(runtime.workspaceCwd);
29472
+ switch (result.kind) {
29473
+ case "ok":
29474
+ res.status(200).json({
29475
+ v: 1,
29476
+ workspaceCwd: runtime.workspaceCwd,
29477
+ available: true,
29478
+ pullRequests: result.pullRequests
29479
+ });
29480
+ return;
29481
+ case "not_a_repo":
29482
+ res.status(200).json({
29483
+ v: 1,
29484
+ workspaceCwd: runtime.workspaceCwd,
29485
+ available: false,
29486
+ pullRequests: []
29487
+ });
29488
+ return;
29489
+ case "cli_unavailable":
29490
+ res.status(502).json({
29491
+ error: "The GitHub CLI (gh) is not installed on the daemon host; install it and run `gh auth login`.",
29492
+ code: "github_cli_unavailable",
29493
+ status: 502
29494
+ });
29495
+ return;
29496
+ case "failed": {
29497
+ const error2 = sanitizeMessage(
29498
+ sanitizeMessage(result.message, runtime.workspaceCwd),
29499
+ result.gitRoot
29500
+ ).slice(0, GITHUB_PR_ERROR_MESSAGE_MAX);
29501
+ res.status(502).json({
29502
+ error: error2,
29503
+ code: "github_prs_failed",
29504
+ status: 502
29505
+ });
29506
+ return;
29507
+ }
29508
+ default:
29509
+ throw new Error(
29510
+ `unexpected fetchGitHubPullRequests result: ${JSON.stringify(result)}`
29511
+ );
29512
+ }
29513
+ } catch (err) {
29514
+ deps.sendBridgeError(res, err, { route });
29515
+ }
29516
+ });
29517
+ }
29518
+ __name(registerWorkspaceQualifiedGitHubPrsRoutes, "registerWorkspaceQualifiedGitHubPrsRoutes");
29519
+
29440
29520
  // packages/cli/src/serve/workspace-git-state.ts
29441
29521
  init_esbuild_shims();
29442
29522
  var WorkspaceGitState = class {
@@ -30275,6 +30355,317 @@ function registerWorkspaceChannelControlRoutes(app, deps) {
30275
30355
  }
30276
30356
  __name(registerWorkspaceChannelControlRoutes, "registerWorkspaceChannelControlRoutes");
30277
30357
 
30358
+ // packages/cli/src/serve/routes/workspace-channel-management.ts
30359
+ init_esbuild_shims();
30360
+ var MAX_ERROR_LENGTH = 512;
30361
+ var MAX_INSTANCE_NAME_BYTES = 255;
30362
+ var WINDOWS_DEVICE_NAME = /^(?:con|prn|aux|nul|com[1-9]|lpt[1-9])$/iu;
30363
+ function isRecord(value) {
30364
+ return value !== null && typeof value === "object" && !Array.isArray(value);
30365
+ }
30366
+ __name(isRecord, "isRecord");
30367
+ function isWellFormed(value) {
30368
+ try {
30369
+ encodeURIComponent(value);
30370
+ return true;
30371
+ } catch {
30372
+ return false;
30373
+ }
30374
+ }
30375
+ __name(isWellFormed, "isWellFormed");
30376
+ function isPortableInstanceName(name, allowReservedAll = false) {
30377
+ if (allowReservedAll && name.trim() === "all") return true;
30378
+ const baseName = name.split(".", 1)[0].trimEnd();
30379
+ return isWellFormed(name) && name.trim().length > 0 && name !== "." && name !== ".." && name.trim() !== "all" && !name.includes("/") && !name.includes("\\") && !/[:*?"<>|\p{Cc}]/u.test(name) && !name.endsWith(".") && !name.endsWith(" ") && !WINDOWS_DEVICE_NAME.test(baseName) && Buffer.byteLength(name, "utf8") <= MAX_INSTANCE_NAME_BYTES;
30380
+ }
30381
+ __name(isPortableInstanceName, "isPortableInstanceName");
30382
+ function parseInstanceName(req, res, allowReservedAll = false) {
30383
+ const name = req.params["name"] ?? "";
30384
+ if (!isPortableInstanceName(name, allowReservedAll)) {
30385
+ res.status(400).json({
30386
+ error: `Channel instance names must be portable path components, differ from the reserved name "all", and be at most ${MAX_INSTANCE_NAME_BYTES} UTF-8 bytes.`,
30387
+ code: "invalid_channel_instance_name"
30388
+ });
30389
+ return void 0;
30390
+ }
30391
+ return name;
30392
+ }
30393
+ __name(parseInstanceName, "parseInstanceName");
30394
+ function parseRevision(body, res) {
30395
+ const expectedRevision = body["expectedRevision"];
30396
+ if (typeof expectedRevision !== "string" || expectedRevision.length === 0) {
30397
+ res.status(400).json({
30398
+ error: "`expectedRevision` must be a non-empty string.",
30399
+ code: "invalid_channel_management_request"
30400
+ });
30401
+ return void 0;
30402
+ }
30403
+ return { expectedRevision };
30404
+ }
30405
+ __name(parseRevision, "parseRevision");
30406
+ function parseUpsert(body, res) {
30407
+ const revision = parseRevision(body, res);
30408
+ if (!revision) return void 0;
30409
+ const config = body["config"];
30410
+ if (!isRecord(config) || typeof config["type"] !== "string" || config["type"].length === 0) {
30411
+ res.status(400).json({
30412
+ error: "`config` must contain a non-empty Channel type.",
30413
+ code: "invalid_channel_management_request"
30414
+ });
30415
+ return void 0;
30416
+ }
30417
+ const secrets = body["secrets"];
30418
+ if (secrets !== void 0) {
30419
+ try {
30420
+ assertValidChannelSecretUpdates(secrets);
30421
+ } catch {
30422
+ res.status(400).json({
30423
+ error: "Secret updates are invalid.",
30424
+ code: "channel_settings_invalid_secret"
30425
+ });
30426
+ return void 0;
30427
+ }
30428
+ }
30429
+ return {
30430
+ ...revision,
30431
+ config,
30432
+ ...secrets === void 0 ? {} : { secrets }
30433
+ };
30434
+ }
30435
+ __name(parseUpsert, "parseUpsert");
30436
+ function parseStartup(body, res) {
30437
+ const revision = parseRevision(body, res);
30438
+ if (!revision) return void 0;
30439
+ if (typeof body["enabled"] !== "boolean") {
30440
+ res.status(400).json({
30441
+ error: "`enabled` must be a boolean.",
30442
+ code: "invalid_channel_management_request"
30443
+ });
30444
+ return void 0;
30445
+ }
30446
+ return { ...revision, enabled: body["enabled"] };
30447
+ }
30448
+ __name(parseStartup, "parseStartup");
30449
+ function parsePairingCode(body, res) {
30450
+ const code = body["code"];
30451
+ if (typeof code !== "string" || !/^[A-HJ-NP-Z2-9]{8}$/iu.test(code.trim())) {
30452
+ res.status(400).json({
30453
+ error: "`code` must be an 8-character pairing code.",
30454
+ code: "invalid_channel_pairing_code"
30455
+ });
30456
+ return void 0;
30457
+ }
30458
+ return code.trim().toUpperCase();
30459
+ }
30460
+ __name(parsePairingCode, "parsePairingCode");
30461
+ function errorCode2(error2) {
30462
+ if (!error2 || typeof error2 !== "object") return void 0;
30463
+ try {
30464
+ const code = Reflect.get(error2, "code");
30465
+ return typeof code === "string" ? code : void 0;
30466
+ } catch {
30467
+ return void 0;
30468
+ }
30469
+ }
30470
+ __name(errorCode2, "errorCode");
30471
+ var ERROR_STATUS = /* @__PURE__ */ new Map([
30472
+ ["invalid_channel_instance_name", 400],
30473
+ ["channel_settings_invalid_name", 400],
30474
+ ["channel_settings_invalid_config", 400],
30475
+ ["channel_settings_invalid_secret", 400],
30476
+ ["channel_settings_unmanageable", 400],
30477
+ ["channel_workspace_mismatch", 400],
30478
+ ["ambiguous_channel_workspace", 400],
30479
+ ["untrusted_workspace", 403],
30480
+ ["channel_instance_not_found", 404],
30481
+ ["channel_pairing_request_not_found", 404],
30482
+ ["channel_pairing_not_enabled", 409],
30483
+ ["channel_settings_conflict", 409],
30484
+ ["channel_runtime_owner_mismatch", 409],
30485
+ ["channel_worker_not_enabled", 409],
30486
+ ["channel_service_conflict", 409],
30487
+ ["channel_worker_start_failed", 502],
30488
+ ["channel_worker_stop_failed", 500],
30489
+ ["daemon_draining", 503],
30490
+ ["channel_worker_unavailable", 503]
30491
+ ]);
30492
+ function sendManagementError(res, error2) {
30493
+ const code = errorCode2(error2);
30494
+ const status = code ? ERROR_STATUS.get(code) : void 0;
30495
+ if (code && status !== void 0) {
30496
+ const raw = error2 instanceof Error ? error2.message : String(error2);
30497
+ res.status(status).json({
30498
+ error: sanitizeLogText(redactLogCredentials(raw), MAX_ERROR_LENGTH),
30499
+ code
30500
+ });
30501
+ return;
30502
+ }
30503
+ res.status(500).json({
30504
+ error: "Channel management operation failed.",
30505
+ code: "channel_management_failed"
30506
+ });
30507
+ }
30508
+ __name(sendManagementError, "sendManagementError");
30509
+ function noStore(res) {
30510
+ res.set("Cache-Control", "no-store");
30511
+ }
30512
+ __name(noStore, "noStore");
30513
+ async function resolveTarget(req, res, resolveRuntime, resolveService) {
30514
+ const runtime = resolveRuntime(req, res);
30515
+ if (!runtime || !requireTrustedWorkspaceRuntime(runtime, res)) return;
30516
+ try {
30517
+ const service = await resolveService(runtime);
30518
+ if (!service) {
30519
+ res.status(503).json({
30520
+ error: "Channel management is unavailable.",
30521
+ code: "channel_management_unavailable"
30522
+ });
30523
+ return;
30524
+ }
30525
+ return { runtime, service };
30526
+ } catch (error2) {
30527
+ sendManagementError(res, error2);
30528
+ return;
30529
+ }
30530
+ }
30531
+ __name(resolveTarget, "resolveTarget");
30532
+ function registerWorkspaceChannelManagementRoutes(app, deps) {
30533
+ const primary = /* @__PURE__ */ __name(() => deps.primaryRuntime, "primary");
30534
+ const qualified = /* @__PURE__ */ __name((req, res) => resolveWorkspaceRuntimeFromParam(deps.workspaceRegistry, req, res), "qualified");
30535
+ const register = /* @__PURE__ */ __name((prefix, resolveRuntime) => {
30536
+ const pairingRead = deps.mutate({ strict: true });
30537
+ const pairingApprove = deps.mutate({ strict: true });
30538
+ const upsert = deps.mutate({ strict: true });
30539
+ const remove = deps.mutate({ strict: true });
30540
+ const startup = deps.mutate({ strict: true });
30541
+ const start = deps.mutate({ strict: true });
30542
+ const stop = deps.mutate({ strict: true });
30543
+ const restart = deps.mutate({ strict: true });
30544
+ const target = /* @__PURE__ */ __name((req, res) => resolveTarget(req, res, resolveRuntime, deps.resolveService), "target");
30545
+ const validateClient = /* @__PURE__ */ __name((req, res, runtime) => deps.parseAndValidateClientId(req, res, runtime) !== null, "validateClient");
30546
+ app.get(`${prefix}/channel-types`, async (req, res) => {
30547
+ const runtime = resolveRuntime(req, res);
30548
+ if (!runtime || !requireTrustedWorkspaceRuntime(runtime, res)) return;
30549
+ try {
30550
+ noStore(res);
30551
+ res.status(200).json(await supportedChannelCatalog());
30552
+ } catch (error2) {
30553
+ sendManagementError(res, error2);
30554
+ }
30555
+ });
30556
+ app.get(`${prefix}/channels`, async (req, res) => {
30557
+ const resolved = await target(req, res);
30558
+ if (!resolved || !validateClient(req, res, resolved.runtime)) return;
30559
+ try {
30560
+ noStore(res);
30561
+ res.status(200).json(await resolved.service.list());
30562
+ } catch (error2) {
30563
+ sendManagementError(res, error2);
30564
+ }
30565
+ });
30566
+ app.get(
30567
+ `${prefix}/channels/:name/pairing-requests`,
30568
+ pairingRead,
30569
+ async (req, res) => {
30570
+ const resolved = await target(req, res);
30571
+ if (!resolved || !validateClient(req, res, resolved.runtime)) return;
30572
+ const name = parseInstanceName(req, res);
30573
+ if (!name) return;
30574
+ try {
30575
+ noStore(res);
30576
+ res.status(200).json(await resolved.service.pairingRequests(name));
30577
+ } catch (error2) {
30578
+ sendManagementError(res, error2);
30579
+ }
30580
+ }
30581
+ );
30582
+ app.post(
30583
+ `${prefix}/channels/:name/pairing-requests/approve`,
30584
+ pairingApprove,
30585
+ async (req, res) => {
30586
+ const resolved = await target(req, res);
30587
+ if (!resolved || !validateClient(req, res, resolved.runtime)) return;
30588
+ const name = parseInstanceName(req, res);
30589
+ if (!name) return;
30590
+ const code = parsePairingCode(deps.safeBody(req), res);
30591
+ if (!code) return;
30592
+ try {
30593
+ noStore(res);
30594
+ res.status(200).json(await resolved.service.approvePairing(name, code));
30595
+ } catch (error2) {
30596
+ sendManagementError(res, error2);
30597
+ }
30598
+ }
30599
+ );
30600
+ app.put(`${prefix}/channels/:name`, upsert, async (req, res) => {
30601
+ const resolved = await target(req, res);
30602
+ if (!resolved || !validateClient(req, res, resolved.runtime)) return;
30603
+ const name = parseInstanceName(req, res);
30604
+ if (!name) return;
30605
+ const request2 = parseUpsert(deps.safeBody(req), res);
30606
+ if (!request2) return;
30607
+ try {
30608
+ noStore(res);
30609
+ res.status(200).json(await resolved.service.upsert(name, request2));
30610
+ } catch (error2) {
30611
+ sendManagementError(res, error2);
30612
+ }
30613
+ });
30614
+ app.delete(`${prefix}/channels/:name`, remove, async (req, res) => {
30615
+ const resolved = await target(req, res);
30616
+ if (!resolved || !validateClient(req, res, resolved.runtime)) return;
30617
+ const name = parseInstanceName(req, res);
30618
+ if (!name) return;
30619
+ const request2 = parseRevision(deps.safeBody(req), res);
30620
+ if (!request2) return;
30621
+ try {
30622
+ noStore(res);
30623
+ res.status(200).json(await resolved.service.remove(name, request2));
30624
+ } catch (error2) {
30625
+ sendManagementError(res, error2);
30626
+ }
30627
+ });
30628
+ app.put(`${prefix}/channels/:name/startup`, startup, async (req, res) => {
30629
+ const resolved = await target(req, res);
30630
+ if (!resolved || !validateClient(req, res, resolved.runtime)) return;
30631
+ const name = parseInstanceName(req, res);
30632
+ if (!name) return;
30633
+ const request2 = parseStartup(deps.safeBody(req), res);
30634
+ if (!request2) return;
30635
+ try {
30636
+ noStore(res);
30637
+ res.status(200).json(await resolved.service.setStartup(name, request2));
30638
+ } catch (error2) {
30639
+ sendManagementError(res, error2);
30640
+ }
30641
+ });
30642
+ const action = /* @__PURE__ */ __name((operation, middleware) => {
30643
+ app.post(
30644
+ `${prefix}/channels/:name/${operation}`,
30645
+ middleware,
30646
+ async (req, res) => {
30647
+ const resolved = await target(req, res);
30648
+ if (!resolved || !validateClient(req, res, resolved.runtime)) return;
30649
+ const name = parseInstanceName(req, res);
30650
+ if (!name) return;
30651
+ try {
30652
+ noStore(res);
30653
+ res.status(200).json(await resolved.service[operation](name));
30654
+ } catch (error2) {
30655
+ sendManagementError(res, error2);
30656
+ }
30657
+ }
30658
+ );
30659
+ }, "action");
30660
+ action("start", start);
30661
+ action("stop", stop);
30662
+ action("restart", restart);
30663
+ }, "register");
30664
+ register("/workspace", primary);
30665
+ register("/workspaces/:workspace", qualified);
30666
+ }
30667
+ __name(registerWorkspaceChannelManagementRoutes, "registerWorkspaceChannelManagementRoutes");
30668
+
30278
30669
  // packages/cli/src/serve/routes/workspace-channel-observed-contacts.ts
30279
30670
  init_esbuild_shims();
30280
30671
  var DEFAULT_FRESH_WITHIN_SECONDS = 7 * 24 * 60 * 60;
@@ -31171,6 +31562,7 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
31171
31562
  // runtime, so it has the same reload surface as legacy deps.workspace.
31172
31563
  reloadAvailable: deps.workspace !== void 0 || injectedWorkspaceRegistry !== void 0,
31173
31564
  channelControlAvailable: deps.getChannelWorkerControl !== void 0 && deps.setChannelWorkerSelection !== void 0 && deps.stopChannelWorker !== void 0,
31565
+ channelManagementAvailable: deps.channelManagementService !== void 0,
31174
31566
  channelReloadAvailable: /* @__PURE__ */ __name(() => {
31175
31567
  if (deps.reloadChannelWorker === void 0) return false;
31176
31568
  const control = deps.getChannelWorkerControl?.();
@@ -31505,6 +31897,10 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
31505
31897
  workspaceRegistry,
31506
31898
  sendBridgeError: sendBridgeError2
31507
31899
  });
31900
+ registerWorkspaceQualifiedGitHubPrsRoutes(app, {
31901
+ workspaceRegistry,
31902
+ sendBridgeError: sendBridgeError2
31903
+ });
31508
31904
  mountWorkspaceMemoryRoutes(app, {
31509
31905
  bridge: primaryBridge,
31510
31906
  boundWorkspace: primaryBoundWorkspace,
@@ -31768,6 +32164,16 @@ function createServeApp(opts, getPort = () => opts.port, deps = {}) {
31768
32164
  parseAndValidateClientId: /* @__PURE__ */ __name((req, res) => parseAndValidateWorkspaceClientId(req, res, primaryBridge), "parseAndValidateClientId")
31769
32165
  });
31770
32166
  }
32167
+ if (deps.channelManagementService) {
32168
+ registerWorkspaceChannelManagementRoutes(app, {
32169
+ primaryRuntime,
32170
+ workspaceRegistry,
32171
+ resolveService: deps.channelManagementService,
32172
+ mutate,
32173
+ safeBody,
32174
+ parseAndValidateClientId: /* @__PURE__ */ __name((req, res, runtime) => parseAndValidateWorkspaceClientId(req, res, runtime.bridge), "parseAndValidateClientId")
32175
+ });
32176
+ }
31771
32177
  registerWorkspaceChannelObservedContactRoutes(app, {
31772
32178
  primaryWorkspace: primaryBoundWorkspace,
31773
32179
  workspaceRegistry