@qwen-code/qwen-code 0.21.0 → 0.21.1

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 (406) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +2 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +38 -28
  3. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/features/channels/github.md +107 -0
  5. package/bundled/qc-helper/docs/features/channels/overview.md +61 -6
  6. package/bundled/qc-helper/docs/features/code-review.md +1 -1
  7. package/bundled/qc-helper/docs/features/hooks.md +52 -15
  8. package/bundled/qc-helper/docs/features/mcp.md +9 -1
  9. package/bundled/qc-helper/docs/features/scheduled-tasks.md +3 -1
  10. package/bundled/qc-helper/docs/features/sub-agents.md +20 -0
  11. package/bundled/qc-helper/docs/qwen-serve.md +4 -2
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
  13. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  14. package/bundled/review/DESIGN.md +19 -0
  15. package/bundled/review/SKILL.md +120 -61
  16. package/chunks/MaxSizedBox-VI3ROJJA.js +84 -0
  17. package/chunks/{StandaloneSessionPicker-BIRMPLRD.js → StandaloneSessionPicker-LYXKD2EV.js} +67 -68
  18. package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-DFVPFQ6C.js} +2 -2
  19. package/chunks/{acpAgent-6J2U72PQ.js → acpAgent-WN5SRDQO.js} +1373 -553
  20. package/chunks/agent-K6ECSM64.js +80 -0
  21. package/chunks/agent-headless-NO4Y2HOE.js +74 -0
  22. package/chunks/{anthropicContentGenerator-75BKLTSP.js → anthropicContentGenerator-V2QOGVYD.js} +79 -27
  23. package/chunks/{artifact-tool-Y5T7GG7F.js → artifact-tool-6K6U7XYJ.js} +4 -4
  24. package/chunks/{askUserQuestion-2H6747FR.js → askUserQuestion-GD2IJJ7I.js} +4 -4
  25. package/chunks/bridge-3KJEWDNE.js +90 -0
  26. package/chunks/{build-RV63TIRH.js → build-S6DO7LMM.js} +1 -1
  27. package/chunks/{ca-25EDXPFZ.js → ca-6W3SK7OQ.js} +6 -1
  28. package/chunks/channel-management-service-XR7GZSWF.js +403 -0
  29. package/chunks/channel-settings-store-HW4FXXUA.js +87 -0
  30. package/chunks/{channel-worker-group-2ZD7TVAT.js → channel-worker-group-XDPTDWTX.js} +11 -6
  31. package/chunks/{channel-worker-manager-4OA4BCGB.js → channel-worker-manager-YYEHVRRE.js} +11 -6
  32. package/chunks/{channel-worker-supervisor-V7KCFJTS.js → channel-worker-supervisor-74HTWA2G.js} +7 -5
  33. package/chunks/{chunk-M5JM7OSF.js → chunk-2DN4J57Y.js} +2 -3
  34. package/chunks/{chunk-ETSW4KLJ.js → chunk-2FAK6PNM.js} +2 -2
  35. package/chunks/{chunk-BPJSQIJX.js → chunk-2J3OJGTL.js} +0 -2
  36. package/chunks/{chunk-EPDRMGT4.js → chunk-2LKVPASC.js} +4 -28
  37. package/chunks/{chunk-PWTZEM3C.js → chunk-2LQTH543.js} +3 -37
  38. package/chunks/{chunk-LH2BYDQ5.js → chunk-2N7CODY5.js} +18 -12
  39. package/chunks/{chunk-4WIZGAH3.js → chunk-2XSLTRFZ.js} +6 -58
  40. package/chunks/{chunk-FSITMZJH.js → chunk-3EFXSQCM.js} +18 -9
  41. package/chunks/{chunk-HIJQF5B5.js → chunk-3L2SPEBH.js} +1 -1
  42. package/chunks/{chunk-BIQWWWJN.js → chunk-4G2BISNC.js} +1 -1
  43. package/chunks/{chunk-PWVFN2LF.js → chunk-52ZSWYEG.js} +1 -1
  44. package/chunks/{chunk-ZJHVAS7M.js → chunk-5KTQXHPY.js} +4 -5
  45. package/chunks/{chunk-PC6JANNU.js → chunk-5MKRTI4T.js} +4 -4
  46. package/chunks/{chunk-DHHOYAPR.js → chunk-5TBMQLGG.js} +7 -7
  47. package/chunks/{chunk-A4UCTEB5.js → chunk-5WV5S2GT.js} +0 -1
  48. package/chunks/chunk-5YKDXHUY.js +463 -0
  49. package/chunks/chunk-5ZF5XXTS.js +363 -0
  50. package/chunks/{chunk-K4XWPEWB.js → chunk-64LQLPL7.js} +4 -33
  51. package/chunks/{chunk-YPE6A4GC.js → chunk-657BH7VM.js} +2 -2
  52. package/chunks/{chunk-R5AFZNQW.js → chunk-65PQENQP.js} +14 -7
  53. package/chunks/{chunk-RIBKPMRP.js → chunk-6PE7N3A4.js} +18 -7
  54. package/chunks/{chunk-JZA3JUDJ.js → chunk-6QIGFD5W.js} +1 -1
  55. package/chunks/{chunk-JVPM2ULZ.js → chunk-6RPMI2AB.js} +6 -6
  56. package/chunks/{chunk-OHNBB4XR.js → chunk-75GFAX4R.js} +1 -1
  57. package/chunks/{chunk-NIBLUX3Y.js → chunk-75MIQ3LV.js} +148 -21
  58. package/chunks/{chunk-U7M2DMGW.js → chunk-7AEJDLRA.js} +130 -5
  59. package/chunks/{chunk-TPRQ7RZH.js → chunk-7BAU433D.js} +2293 -945
  60. package/chunks/{chunk-M4FMGVY4.js → chunk-7DXQIJID.js} +3 -3
  61. package/chunks/{chunk-RWTEFFPU.js → chunk-7I5GTCT4.js} +620 -383
  62. package/chunks/{chunk-A5L3JMUA.js → chunk-7XATOOE7.js} +18 -4
  63. package/chunks/{chunk-Y34KJKDC.js → chunk-A2D5BAVP.js} +1 -1
  64. package/chunks/{chunk-5I2IWRSH.js → chunk-A3NDJ5SB.js} +2 -2
  65. package/chunks/{chunk-OFDOK3VM.js → chunk-A4COXFB3.js} +8 -13
  66. package/chunks/{chunk-JLU636DO.js → chunk-ALMR3E6Q.js} +1 -0
  67. package/chunks/{chunk-Q4M4MDQ4.js → chunk-AQIDMUGU.js} +1 -1
  68. package/chunks/{chunk-PJIZUQVC.js → chunk-AZQ3DT76.js} +2 -2
  69. package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
  70. package/chunks/{chunk-BJX6ZSUK.js → chunk-BCZFQXWK.js} +2 -2
  71. package/chunks/{chunk-MB4MZHMJ.js → chunk-BGTQCTQW.js} +211 -522
  72. package/chunks/{chunk-MZAXJAUM.js → chunk-BMFALVGQ.js} +1 -1
  73. package/chunks/{chunk-PSOO6YXD.js → chunk-BNWB5CYE.js} +9 -7
  74. package/chunks/{chunk-BKHWX6I2.js → chunk-BPZKP57P.js} +11 -3
  75. package/chunks/{chunk-H4SBPHSA.js → chunk-CAPPWD3X.js} +3 -3
  76. package/chunks/{chunk-LQIW3YFY.js → chunk-CQL64ESB.js} +7 -7
  77. package/chunks/{chunk-TOFQCPDC.js → chunk-CVHIL5IG.js} +4 -5
  78. package/chunks/{chunk-XVNQMZ2I.js → chunk-DGEIYUC3.js} +0 -1
  79. package/chunks/{chunk-BPZALHVR.js → chunk-DI35ZN7T.js} +1 -1
  80. package/chunks/chunk-DZLYR4U3.js +1252 -0
  81. package/chunks/{chunk-TEHGS6UP.js → chunk-EIF3FXTB.js} +117 -24
  82. package/chunks/{chunk-2SCDWPXI.js → chunk-EJGJIBRS.js} +5 -5
  83. package/chunks/{chunk-7MVVZO4N.js → chunk-EVKE2FZL.js} +4 -4
  84. package/chunks/{chunk-OKY7HXPG.js → chunk-FNMZK765.js} +2 -2
  85. package/chunks/{chunk-VIA5XA4U.js → chunk-FTD6DP4T.js} +3 -1
  86. package/chunks/chunk-FYJ7W2PI.js +194 -0
  87. package/chunks/{chunk-L5UHQJTJ.js → chunk-GATT5TKW.js} +1 -1
  88. package/chunks/{chunk-X5XDDSSH.js → chunk-GEBV2JGB.js} +28 -5
  89. package/chunks/{chunk-VAK25FTU.js → chunk-GKX7E4CO.js} +1 -1
  90. package/chunks/{chunk-LS77BEZP.js → chunk-GLCZKT5V.js} +1 -5
  91. package/chunks/{chunk-5NBDS5S6.js → chunk-GNR2RNMP.js} +162 -7
  92. package/chunks/{chunk-YH6G52F2.js → chunk-GXIJHV66.js} +4 -4
  93. package/chunks/chunk-GZ3RCT54.js +76 -0
  94. package/chunks/{chunk-2X55UKQE.js → chunk-HMRM2A3U.js} +3 -3
  95. package/chunks/chunk-HV26XH34.js +319 -0
  96. package/chunks/{chunk-LB6DUZ26.js → chunk-J7OACQDE.js} +229 -172
  97. package/chunks/{chunk-K36B6G2O.js → chunk-JFMA7Y5M.js} +5 -5
  98. package/chunks/{chunk-55DJUCI2.js → chunk-JHNRZMHI.js} +53 -43
  99. package/chunks/{chunk-63P4EL5V.js → chunk-JMONIXMJ.js} +1 -1
  100. package/chunks/{chunk-L26JL52R.js → chunk-JSD33JG6.js} +47 -64
  101. package/chunks/{chunk-YBL3QUDD.js → chunk-JTV5K7NH.js} +1 -1
  102. package/chunks/{chunk-RZIX2G32.js → chunk-JX27F6QS.js} +1 -1
  103. package/chunks/chunk-JYBU6YUE.js +378 -0
  104. package/chunks/{chunk-7JURR4JT.js → chunk-KAMYKP7E.js} +167 -81
  105. package/chunks/{chunk-KMQ33DO4.js → chunk-KCO4FLFJ.js} +4 -4
  106. package/chunks/{chunk-2W3OOD4W.js → chunk-L55JWS76.js} +6 -3
  107. package/chunks/{chunk-RHLZR4E5.js → chunk-LGAOC3ZS.js} +1 -1
  108. package/chunks/{chunk-EBJQ6AXW.js → chunk-LO4ROVP4.js} +262 -16
  109. package/chunks/{chunk-NH6KE4JX.js → chunk-LW3RFMG7.js} +3 -3
  110. package/chunks/{chunk-J56UI34H.js → chunk-M7OONWYU.js} +2 -2
  111. package/chunks/{chunk-2NH6DYI4.js → chunk-MHAIJPTD.js} +12 -12
  112. package/chunks/{chunk-FODK6UMO.js → chunk-MPHPFVKK.js} +0 -2
  113. package/chunks/{chunk-VRYUBFMC.js → chunk-MR5EAQ5M.js} +1 -1
  114. package/chunks/{chunk-JESCGQM3.js → chunk-NAVJD2PQ.js} +8 -7
  115. package/chunks/{chunk-H5FFA6TH.js → chunk-NOKIVHOL.js} +16 -3
  116. package/chunks/{chunk-6OUGMXDC.js → chunk-NWNEANAT.js} +7 -7
  117. package/chunks/{chunk-SQCQ4KO2.js → chunk-OCESJA77.js} +393 -330
  118. package/chunks/chunk-OCPBI7J5.js +18 -0
  119. package/chunks/{chunk-E5TUC6CA.js → chunk-OKF7JF3R.js} +3 -3
  120. package/chunks/{chunk-TGILQ3YH.js → chunk-P4WOAOJW.js} +141 -64
  121. package/chunks/{chunk-ZFDTEDCF.js → chunk-PB3MBFKG.js} +6 -6
  122. package/chunks/{chunk-3RN6GBKS.js → chunk-PLDQBIO6.js} +1 -1
  123. package/chunks/{chunk-FNQ6T3CV.js → chunk-PONHVBRT.js} +10 -7
  124. package/chunks/{chunk-CIKQ7KKO.js → chunk-PT722TDT.js} +271 -376
  125. package/chunks/chunk-Q43KPN7X.js +2196 -0
  126. package/chunks/{chunk-VDDGDZMA.js → chunk-QHWCP53L.js} +14 -7
  127. package/chunks/{chunk-MVSUYZDT.js → chunk-QIZKCVM3.js} +4 -4
  128. package/chunks/{chunk-QAF7NMK7.js → chunk-RCUQIPTN.js} +1 -1
  129. package/chunks/{chunk-6FGBXPWM.js → chunk-RPLGZJV2.js} +38 -44
  130. package/chunks/{chunk-GSN55ZRI.js → chunk-S4WJVPZW.js} +19 -7
  131. package/chunks/{chunk-6AM5D4ME.js → chunk-S6LOFUVP.js} +0 -12
  132. package/chunks/{chunk-BULDBTYC.js → chunk-S7W2GKIO.js} +1 -28
  133. package/chunks/{chunk-MUP3T3AD.js → chunk-SGFT55XI.js} +1 -35
  134. package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
  135. package/chunks/chunk-T26EAKDL.js +13 -0
  136. package/chunks/{chunk-UDX5OBWR.js → chunk-T2QMKU3R.js} +80 -2
  137. package/chunks/{chunk-IKYJHJNF.js → chunk-T3O2B4XO.js} +3 -3
  138. package/chunks/{chunk-RF3EXIHJ.js → chunk-T4TXDL7G.js} +32 -21
  139. package/chunks/{chunk-J24WCGIN.js → chunk-TBBV36Y4.js} +4 -4
  140. package/chunks/{chunk-LKEJ26GS.js → chunk-TCIFAA7K.js} +16 -11
  141. package/chunks/{chunk-JXJFVC6E.js → chunk-TDL6LB4K.js} +46 -11
  142. package/chunks/{chunk-7ZCNENPP.js → chunk-TFRMVU6R.js} +1 -1
  143. package/chunks/{chunk-VULLI6WQ.js → chunk-TV64SXKD.js} +6 -6
  144. package/chunks/{chunk-FQK6JAFG.js → chunk-U3E3UQAA.js} +4 -4
  145. package/chunks/{chunk-LK7CHLVP.js → chunk-U4VTUMMK.js} +0 -60
  146. package/chunks/{chunk-ACY3A37B.js → chunk-UBEPNVDI.js} +23 -18
  147. package/chunks/{chunk-NL7LTRLR.js → chunk-UHUSJ6X7.js} +29 -68
  148. package/chunks/{chunk-ZOIFNCKL.js → chunk-UPUG4GXM.js} +3 -23
  149. package/chunks/{chunk-6GMVPFB2.js → chunk-UWMLWVCA.js} +19 -6
  150. package/chunks/{chunk-IKCX4CCL.js → chunk-VCPIZRYH.js} +118 -95
  151. package/chunks/{chunk-ZNAUOR2I.js → chunk-VWOOBLTY.js} +2 -2
  152. package/chunks/{chunk-YX324OPW.js → chunk-VYOXCEPJ.js} +1 -1
  153. package/chunks/{chunk-USTWD7QV.js → chunk-W4MIWP6M.js} +26 -16
  154. package/chunks/{chunk-HTR4WV6U.js → chunk-W4RQUHY3.js} +31 -1
  155. package/chunks/{chunk-DLWL3Z7A.js → chunk-WBSMNTSV.js} +3 -3
  156. package/chunks/{chunk-IO3IX5Q4.js → chunk-WUZ7H6DP.js} +1 -1
  157. package/chunks/{chunk-2JZBVYTU.js → chunk-WZRWHXFE.js} +1 -8
  158. package/chunks/{chunk-PHOF65IG.js → chunk-X5WNMMIA.js} +23553 -34321
  159. package/chunks/chunk-XBYYDKAZ.js +80 -0
  160. package/chunks/{chunk-COH43MRJ.js → chunk-XCGIMOLN.js} +27 -1
  161. package/chunks/{chunk-WCXCRJYB.js → chunk-XFZYFU3I.js} +1 -1
  162. package/chunks/{chunk-3QMGYBFN.js → chunk-XWWKIXVD.js} +1 -80
  163. package/chunks/{chunk-3SJ43L4W.js → chunk-XZC5VLBZ.js} +2 -0
  164. package/chunks/{chunk-UUUTRMI2.js → chunk-Y4IHBGBP.js} +1 -1
  165. package/chunks/{chunk-PR75REBZ.js → chunk-Y6AXW2OG.js} +12 -82
  166. package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
  167. package/chunks/{chunk-IJTOWOD7.js → chunk-YGF33UXG.js} +82 -8
  168. package/chunks/chunk-Z4X5MTRT.js +133 -0
  169. package/chunks/{chunk-UW5EOVUN.js → chunk-ZBVS26BY.js} +4 -4
  170. package/chunks/{chunk-ZD6UTE4A.js → chunk-ZHBO7WVX.js} +1 -1
  171. package/chunks/{chunk-HTO4JFDZ.js → chunk-ZPJWUGCS.js} +0 -1
  172. package/chunks/{chunk-KIM5GUMA.js → chunk-ZURDMIDR.js} +368 -156
  173. package/chunks/{computer-use-SOQ4E3VX.js → computer-use-ZTIDHMMA.js} +49 -50
  174. package/chunks/{config-utils-7V7GGIW6.js → config-utils-NYSXDMEQ.js} +4 -3
  175. package/chunks/contextCommand-2PIEU37Z.js +79 -0
  176. package/chunks/core-runtime-3XEYLQFK.js +133 -0
  177. package/chunks/{create-sub-session-QRJLW5BV.js → create-sub-session-R76FVXCI.js} +46 -47
  178. package/chunks/{create-sub-session-IWW2IZ2T.js → create-sub-session-SBYUMSSS.js} +3 -3
  179. package/chunks/{cron-create-YIID5XAW.js → cron-create-2QK6TCEC.js} +6 -6
  180. package/chunks/{cron-delete-ZVHYCEP2.js → cron-delete-FDCDFYMG.js} +5 -5
  181. package/chunks/{cron-list-XEGS463Q.js → cron-list-XN3WVBTP.js} +6 -6
  182. package/chunks/{daemon-YO6433NF.js → daemon-Q2AB5Z23.js} +356 -15
  183. package/chunks/daemon-status-provider-3XJI6CAL.js +89 -0
  184. package/chunks/daemon-trust-policy-ILUDTLHD.js +84 -0
  185. package/chunks/daemon-trust-policy-monitor-HS3PKKRO.js +171 -0
  186. package/chunks/{de-HGRCYDEJ.js → de-SY6O76BF.js} +6 -1
  187. package/chunks/deferred-core-runtime-X4QV662U.js +88 -0
  188. package/chunks/dist-BSTVRPMT.js +4227 -0
  189. package/chunks/{dist-46NQKLTW.js → dist-DOLYHMXE.js} +2 -2
  190. package/chunks/{dist-AIKFMUKK.js → dist-HVRQ2CFL.js} +271 -11
  191. package/chunks/{dist-WEAHOXDM.js → dist-IXQEQWRG.js} +2 -1
  192. package/chunks/{dist-BBLXMS3N.js → dist-SSU66DM4.js} +3 -3
  193. package/chunks/{dist-F6IBUDR4.js → dist-SV7Q3AWJ.js} +1 -1
  194. package/chunks/{dist-YFNEUWSE.js → dist-YGBBMK3Z.js} +1 -1
  195. package/chunks/earlyInputCapture-XKLZT7ZD.js +81 -0
  196. package/chunks/{edit-OBDSQURM.js → edit-HHGIOTQ2.js} +47 -48
  197. package/chunks/{en-MTWBNGDO.js → en-NBK3JKCE.js} +9 -1
  198. package/chunks/{enter-worktree-U6MRPQ2P.js → enter-worktree-ZN7PUQ46.js} +47 -48
  199. package/chunks/{enterPlanMode-BC5QUZZ2.js → enterPlanMode-EIFIDSIV.js} +47 -48
  200. package/chunks/{environment-W5UFC2CH.js → environment-XXQ75D2Q.js} +48 -49
  201. package/chunks/errors-4GMVU7CK.js +87 -0
  202. package/chunks/esm-K5FARBNI.js +5548 -0
  203. package/chunks/{exit-worktree-DGNYMECB.js → exit-worktree-GXMI4ATY.js} +47 -48
  204. package/chunks/exitPlanMode-34UVY7M6.js +72 -0
  205. package/chunks/{fast-path-JJZFJANL.js → fast-path-VPIVA7L6.js} +16 -6
  206. package/chunks/{fr-45RLL55O.js → fr-4KG5V7UT.js} +6 -1
  207. package/chunks/{gemini-QS36EBZV.js → gemini-4BWIK4WD.js} +102 -99
  208. package/chunks/{geminiContentGenerator-AG4KB6CV.js → geminiContentGenerator-3XVV5MSS.js} +40 -11
  209. package/chunks/{getMachineId-bsd-V7W3GODC.js → getMachineId-bsd-FG7IUY6U.js} +1 -1
  210. package/chunks/{getMachineId-darwin-TDO75DQP.js → getMachineId-darwin-GLCJI2RA.js} +1 -1
  211. package/chunks/{getMachineId-linux-TF43WQT2.js → getMachineId-linux-O6OPPAKO.js} +1 -1
  212. package/chunks/{getMachineId-unsupported-ZGUO3TXT.js → getMachineId-unsupported-S6CKYVGC.js} +1 -1
  213. package/chunks/{getMachineId-win-ECFYZZFQ.js → getMachineId-win-X5SRNEH7.js} +1 -1
  214. package/chunks/{glob-V7R3PSK3.js → glob-TZ2ABCJG.js} +47 -48
  215. package/chunks/{grep-QYPSK7OP.js → grep-BEF463NA.js} +49 -49
  216. package/chunks/handleAutoUpdate-L6ERF36Y.js +80 -0
  217. package/chunks/i18n-FMM5FDXR.js +96 -0
  218. package/chunks/{image-gen-Z3VPGKRC.js → image-gen-HHVLF7HS.js} +12 -12
  219. package/chunks/initializer-625TIAIO.js +85 -0
  220. package/chunks/installationInfo-6AM4I2Y3.js +79 -0
  221. package/chunks/{ja-B7DF7DFG.js → ja-F3GSQXMF.js} +6 -1
  222. package/chunks/{keychain-token-storage-MDTG3WRM.js → keychain-token-storage-72IYCAZV.js} +3 -3
  223. package/chunks/lib-RUF3WZA6.js +9 -0
  224. package/chunks/list-L2GA674Y.js +88 -0
  225. package/chunks/{list-agents-5KJJHR6I.js → list-agents-R6KDXQR3.js} +3 -3
  226. package/chunks/loadedSettingsAdapter-SPUTNKAV.js +82 -0
  227. package/chunks/{loggingContentGenerator-HS3S5H3Q.js → loggingContentGenerator-LKOF7XI7.js} +78 -113
  228. package/chunks/{loop-wakeup-FXKNNYSY.js → loop-wakeup-3IQKCYAH.js} +7 -7
  229. package/chunks/{ls-NTK6VOQJ.js → ls-DKZ37A7N.js} +5 -5
  230. package/chunks/{lsp-2JI24STP.js → lsp-QNWN7KN3.js} +3 -3
  231. package/chunks/{managed-npm-update-JYEMMXA3.js → managed-npm-update-ACQGGIN5.js} +47 -48
  232. package/chunks/mcp-SZLHKFJW.js +82 -0
  233. package/chunks/{monitor-R3ODH5U6.js → monitor-DF52UVHI.js} +47 -48
  234. package/chunks/nonInteractiveCli-5T7KYKLK.js +144 -0
  235. package/chunks/{notebook-edit-BNOK452R.js → notebook-edit-FCWS4XVN.js} +47 -48
  236. package/chunks/{openaiContentGenerator-WMCU3O2H.js → openaiContentGenerator-7LDK3DCJ.js} +26 -27
  237. package/chunks/pidfile-6ERW3DF4.js +85 -0
  238. package/chunks/process-registry-2CHQBXH5.js +157 -0
  239. package/chunks/{processUtils-RT7UNCC2.js → processUtils-COKZAMUP.js} +2 -2
  240. package/chunks/{pt-22Q3FP73.js → pt-EQ33KWEN.js} +6 -1
  241. package/chunks/{qwenContentGenerator-HHCRK4SX.js → qwenContentGenerator-TKWUMR7N.js} +52 -53
  242. package/chunks/{qwenOAuth2-OWLB5AKH.js → qwenOAuth2-7HMU47SF.js} +10 -10
  243. package/chunks/read-file-X6DRC574.js +29 -0
  244. package/chunks/{read-mcp-resource-4DKQWGHD.js → read-mcp-resource-GFTWYXMK.js} +4 -4
  245. package/chunks/{record-artifact-RQKFYO5B.js → record-artifact-XAMSFSW4.js} +3 -3
  246. package/chunks/resumeHistoryUtils-PFPM2GWM.js +90 -0
  247. package/chunks/ripGrep-OWV2IVJC.js +72 -0
  248. package/chunks/{ru-FZCNZHDC.js → ru-7OZAUKGG.js} +6 -1
  249. package/chunks/{run-qwen-serve-FU6HEM4J.js → run-qwen-serve-TSTCO4XE.js} +953 -249
  250. package/chunks/{runtime-XXRRTNP6.js → runtime-DAUPSUKI.js} +56 -56
  251. package/chunks/{scheduler-G2ZS2Z7E.js → scheduler-KMADMT26.js} +46 -47
  252. package/chunks/{sdk-exporters-grpc-AK3LGHNO.js → sdk-exporters-grpc-54L4LS5L.js} +4 -4
  253. package/chunks/{sdk-exporters-http-FYBSUCPD.js → sdk-exporters-http-WO556XNU.js} +7 -7
  254. package/chunks/{sdk-impl-GMVPB7NB.js → sdk-impl-LPAVACSF.js} +14 -14
  255. package/chunks/{send-message-Q6OOR6BR.js → send-message-SAWK4DZX.js} +6 -6
  256. package/chunks/serve-NNRWS6F4.js +88 -0
  257. package/chunks/{server-4UMH7OIZ.js → server-WEH7DVCH.js} +3691 -823
  258. package/chunks/{session-K3O3Q2SV.js → session-WXC56V2I.js} +98 -95
  259. package/chunks/{settings-CR2EWTBA.js → settings-DJDXFDZ3.js} +55 -56
  260. package/chunks/shell-JN5VRQXD.js +82 -0
  261. package/chunks/{skill-I3SDA4MB.js → skill-SGXPKJCS.js} +20 -21
  262. package/chunks/skill-settings-VJ5PDMZI.js +90 -0
  263. package/chunks/spawnChannel-ETMJW7YX.js +81 -0
  264. package/chunks/standalone-update-MK3Z7KBI.js +91 -0
  265. package/chunks/{startInteractiveUI-SLZGHRPH.js → startInteractiveUI-ZCGIXPGT.js} +724 -383
  266. package/chunks/{syntheticOutput-I3757IWH.js → syntheticOutput-355CB6CJ.js} +4 -4
  267. package/chunks/{task-create-N7WQSGYA.js → task-create-INGWNUG4.js} +10 -10
  268. package/chunks/{task-list-FOPULZEP.js → task-list-5XNNGTF4.js} +7 -7
  269. package/chunks/{task-stop-H6RHXFVQ.js → task-stop-4ROAOBXH.js} +3 -3
  270. package/chunks/{task-update-M57TFZJT.js → task-update-CRK5VWWZ.js} +10 -10
  271. package/chunks/{team-create-YJALH5D2.js → team-create-QQGAJG7P.js} +49 -50
  272. package/chunks/{team-delete-QE2UXJL7.js → team-delete-S2RCXA4P.js} +7 -7
  273. package/chunks/{team-plan-approval-34QFYKGN.js → team-plan-approval-RT7Q5R6O.js} +47 -48
  274. package/chunks/theme-manager-EEWIQJ7J.js +76 -0
  275. package/chunks/{todoWrite-VQ7FKOHL.js → todoWrite-7WM3VDMY.js} +7 -7
  276. package/chunks/{tool-search-NF7GB6LE.js → tool-search-Z3Z4AYKP.js} +19 -21
  277. package/chunks/total-session-admission-44JKRWQD.js +84 -0
  278. package/chunks/trustedFolders-X2JEIO57.js +94 -0
  279. package/chunks/{update-relaunch-WBUZJC5O.js → update-relaunch-VWNPYDIP.js} +5 -5
  280. package/chunks/updateCheck-KAQH67DV.js +91 -0
  281. package/chunks/useAutoAcceptIndicator-JH6BCF7S.js +92 -0
  282. package/chunks/{validateNonInterActiveAuth-3R223G3R.js → validateNonInterActiveAuth-GIUJ2UFS.js} +93 -90
  283. package/chunks/{version-HS7YSFHV.js → version-BGLYIJUY.js} +1 -1
  284. package/chunks/{web-fetch-NKCSG7ZE.js → web-fetch-OTDU4VQF.js} +19 -21
  285. package/chunks/{web-search-S62WAP4S.js → web-search-FP6SIHPR.js} +13 -13
  286. package/chunks/{workflow-QAGU5RU4.js → workflow-YCIVBYSB.js} +48 -49
  287. package/chunks/workspace-providers-status-S35YAIUS.js +85 -0
  288. package/chunks/{workspace-registration-store-24JMHDGF.js → workspace-registration-store-OTMS3H4C.js} +1 -1
  289. package/chunks/workspace-registry-O63R6IZ4.js +92 -0
  290. package/chunks/workspace-service-M6LLHKJ5.js +99 -0
  291. package/chunks/workspace-skills-status-C2V7BAIS.js +85 -0
  292. package/chunks/workspace-trust-reconciler-IBUPOUJN.js +345 -0
  293. package/chunks/write-file-3BZC3EAE.js +72 -0
  294. package/chunks/xterm-headless-NTYVIBT3.js +3475 -0
  295. package/chunks/{zh-LUIGBD55.js → zh-H3YDK5QW.js} +9 -1
  296. package/chunks/{zh-TW-F5KG2IYD.js → zh-TW-JYCP7XUA.js} +9 -1
  297. package/chunks/zoom-image-TZ6S2O57.js +351 -0
  298. package/cli.js +13 -13
  299. package/locales/ca.js +7 -2
  300. package/locales/de.js +7 -2
  301. package/locales/en.js +10 -2
  302. package/locales/fr.js +7 -2
  303. package/locales/ja.js +7 -2
  304. package/locales/pt.js +7 -2
  305. package/locales/ru.js +7 -2
  306. package/locales/zh-TW.js +10 -2
  307. package/locales/zh.js +10 -2
  308. package/package.json +5 -4
  309. package/web-shell/assets/{arc-DcbWnB9T.js → arc-75-Wdeo3.js} +1 -1
  310. package/web-shell/assets/{architectureDiagram-3BPJPVTR-kMMF5sud.js → architectureDiagram-3BPJPVTR-FKeXQbyP.js} +1 -1
  311. package/web-shell/assets/{blockDiagram-GPEHLZMM-Htl9vTJS.js → blockDiagram-GPEHLZMM-CY0vc-A3.js} +1 -1
  312. package/web-shell/assets/{c4Diagram-AAUBKEIU-BnZnm0mQ.js → c4Diagram-AAUBKEIU-CNP-A-8u.js} +1 -1
  313. package/web-shell/assets/channel-DPYMT76A.js +1 -0
  314. package/web-shell/assets/{chunk-2J33WTMH-DziB7kDG.js → chunk-2J33WTMH-GybS4Gii.js} +1 -1
  315. package/web-shell/assets/{chunk-4BX2VUAB-CmkD8daw.js → chunk-4BX2VUAB-02H91V8v.js} +1 -1
  316. package/web-shell/assets/{chunk-55IACEB6-CHAd9A_U.js → chunk-55IACEB6-D3M-2VT6.js} +1 -1
  317. package/web-shell/assets/{chunk-727SXJPM-Dqaam3fE.js → chunk-727SXJPM-CCu29u4H.js} +1 -1
  318. package/web-shell/assets/{chunk-AQP2D5EJ-D_-saBYM.js → chunk-AQP2D5EJ-CaFKWgrn.js} +1 -1
  319. package/web-shell/assets/{chunk-FMBD7UC4-B9r_veWD.js → chunk-FMBD7UC4-ZZpPqIwQ.js} +1 -1
  320. package/web-shell/assets/{chunk-ND2GUHAM-B3EaCSpL.js → chunk-ND2GUHAM-D22DqGs8.js} +1 -1
  321. package/web-shell/assets/{chunk-QZHKN3VN-CYq8x9mn.js → chunk-QZHKN3VN-Bu85S0fw.js} +1 -1
  322. package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +1 -0
  323. package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +1 -0
  324. package/web-shell/assets/{cose-bilkent-S5V4N54A-D0ng4uiB.js → cose-bilkent-S5V4N54A-f1CK1Gwe.js} +1 -1
  325. package/web-shell/assets/{dagre-BM42HDAG-DCZollQv.js → dagre-BM42HDAG-D0Ow8F_n.js} +1 -1
  326. package/web-shell/assets/{diagram-2AECGRRQ-Dfk2pWS0.js → diagram-2AECGRRQ-BPrmTWp8.js} +1 -1
  327. package/web-shell/assets/{diagram-5GNKFQAL-kX38ltWR.js → diagram-5GNKFQAL-HccuFAzy.js} +1 -1
  328. package/web-shell/assets/{diagram-KO2AKTUF-CJz2vsXh.js → diagram-KO2AKTUF-BrS76mbA.js} +1 -1
  329. package/web-shell/assets/{diagram-LMA3HP47-BvMLZm_7.js → diagram-LMA3HP47-V7T9lU-5.js} +1 -1
  330. package/web-shell/assets/{diagram-OG6HWLK6-l7kfStkO.js → diagram-OG6HWLK6-DKidyJMR.js} +1 -1
  331. package/web-shell/assets/{erDiagram-TEJ5UH35-BSVa8GGT.js → erDiagram-TEJ5UH35-DBadZIkp.js} +1 -1
  332. package/web-shell/assets/{flowDiagram-I6XJVG4X-CoawKIXH.js → flowDiagram-I6XJVG4X-BymfqdNJ.js} +1 -1
  333. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFUDH0zF.js → ganttDiagram-6RSMTGT7-DOw340jf.js} +1 -1
  334. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Y2pvpT4e.js → gitGraphDiagram-PVQCEYII-_8EiD8sl.js} +1 -1
  335. package/web-shell/assets/{index-D0GX0zZf.js → index-CKIadvET.js} +1 -1
  336. package/web-shell/assets/index-D1eXNRHe.js +1389 -0
  337. package/web-shell/assets/index-DVLD4CQq.css +5 -0
  338. package/web-shell/assets/{infoDiagram-5YYISTIA-CU8_zLiX.js → infoDiagram-5YYISTIA-D61KYQBu.js} +1 -1
  339. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AVQiV0DU.js → ishikawaDiagram-YF4QCWOH-CsiXSpNx.js} +1 -1
  340. package/web-shell/assets/{journeyDiagram-JHISSGLW-DQ0VSKa3.js → journeyDiagram-JHISSGLW-Sdfionyh.js} +1 -1
  341. package/web-shell/assets/{kanban-definition-UN3LZRKU-BqnWqsE_.js → kanban-definition-UN3LZRKU-C3WI3Cnl.js} +1 -1
  342. package/web-shell/assets/{linear-BkoihsaA.js → linear-Dpigcc62.js} +1 -1
  343. package/web-shell/assets/{mermaid.core-5RJs-31j.js → mermaid.core-Ct97pqgW.js} +5 -5
  344. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D33Bxnpd.js → mindmap-definition-RKZ34NQL-BzeaN0rB.js} +1 -1
  345. package/web-shell/assets/{pieDiagram-4H26LBE5-BuEAw3BH.js → pieDiagram-4H26LBE5-CvjgcbVD.js} +1 -1
  346. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Kox_usEq.js → quadrantDiagram-W4KKPZXB-BUzgTNdH.js} +1 -1
  347. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CNjeUif0.js → requirementDiagram-4Y6WPE33-B7zKlgUQ.js} +1 -1
  348. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BCd2OL_U.js → sankeyDiagram-5OEKKPKP-Bb9CQgrT.js} +1 -1
  349. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CF2ZTsz0.js → sequenceDiagram-3UESZ5HK-DJ6V7itG.js} +1 -1
  350. package/web-shell/assets/{stateDiagram-AJRCARHV-qenSzHtm.js → stateDiagram-AJRCARHV-IImflERY.js} +1 -1
  351. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +1 -0
  352. package/web-shell/assets/{timeline-definition-PNZ67QCA-B5DyWdgs.js → timeline-definition-PNZ67QCA-6Q_uWHKh.js} +1 -1
  353. package/web-shell/assets/{vennDiagram-CIIHVFJN-DqP4I_o_.js → vennDiagram-CIIHVFJN-TmyKyjwv.js} +1 -1
  354. package/web-shell/assets/{wardley-L42UT6IY-CJe2e4mg.js → wardley-L42UT6IY-CRh9uiPv.js} +1 -1
  355. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BMDSw-Rr.js → wardleyDiagram-YWT4CUSO-59TKAW8w.js} +1 -1
  356. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BTVZYkxD.js → xychartDiagram-2RQKCTM6-GCSUIK2L.js} +1 -1
  357. package/web-shell/index.html +2 -2
  358. package/chunks/MaxSizedBox-5DPPWPGT.js +0 -85
  359. package/chunks/agent-6ODUANDO.js +0 -81
  360. package/chunks/agent-headless-7BYQTMHW.js +0 -75
  361. package/chunks/bridge-ZUB64FAE.js +0 -90
  362. package/chunks/chunk-LEH5C7FV.js +0 -232
  363. package/chunks/chunk-SZRN75WQ.js +0 -29
  364. package/chunks/chunk-UGYMA4EI.js +0 -219
  365. package/chunks/chunk-Z2BC6UJ5.js +0 -8575
  366. package/chunks/contextCommand-JLHYA34Z.js +0 -80
  367. package/chunks/daemon-status-provider-2233Q37D.js +0 -89
  368. package/chunks/earlyInputCapture-A7NDU3PF.js +0 -82
  369. package/chunks/errors-M7CLORXH.js +0 -88
  370. package/chunks/exitPlanMode-GXTBWQAR.js +0 -403
  371. package/chunks/handleAutoUpdate-6DBEZYPV.js +0 -81
  372. package/chunks/i18n-VUJJZIMU.js +0 -97
  373. package/chunks/initializer-UWAK5U5O.js +0 -86
  374. package/chunks/installationInfo-6O2YAA52.js +0 -80
  375. package/chunks/list-GB4ESM3T.js +0 -89
  376. package/chunks/loadedSettingsAdapter-OT6JVQ7U.js +0 -83
  377. package/chunks/mcp-6DBDJPFU.js +0 -83
  378. package/chunks/nonInteractiveCli-MOYCYBBU.js +0 -141
  379. package/chunks/pidfile-TFRZZZIO.js +0 -86
  380. package/chunks/read-file-APMO3PSX.js +0 -31
  381. package/chunks/resumeHistoryUtils-6KRYEAWZ.js +0 -91
  382. package/chunks/ripGrep-BEJDEDXW.js +0 -73
  383. package/chunks/serve-7BSTXJ4T.js +0 -89
  384. package/chunks/shell-HH3PF3A2.js +0 -83
  385. package/chunks/spawnChannel-RWNDBXGA.js +0 -82
  386. package/chunks/src-GE4TTTML.js +0 -3147
  387. package/chunks/standalone-update-Q6WFRZZQ.js +0 -92
  388. package/chunks/theme-manager-SWRILQHI.js +0 -77
  389. package/chunks/total-session-admission-DLHHHLD3.js +0 -84
  390. package/chunks/trustedFolders-KHXHY6PY.js +0 -93
  391. package/chunks/updateCheck-RKL6M5XN.js +0 -92
  392. package/chunks/useAutoAcceptIndicator-CFQ5BUJL.js +0 -93
  393. package/chunks/workspace-providers-status-QSVZUETE.js +0 -86
  394. package/chunks/workspace-registry-UT4RBNBM.js +0 -88
  395. package/chunks/workspace-service-JFWRUS4V.js +0 -98
  396. package/chunks/workspace-skills-status-ZBBKJOI2.js +0 -85
  397. package/chunks/write-file-VHIXW5M7.js +0 -73
  398. package/web-shell/assets/channel-Cq7YKtfC.js +0 -1
  399. package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +0 -1
  400. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +0 -1
  401. package/web-shell/assets/index-D9haPt0X.css +0 -5
  402. package/web-shell/assets/index-ckX9Pq5k.js +0 -1230
  403. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +0 -1
  404. package/chunks/{chunk-TARRHLLG.js → chunk-QUGAUQGJ.js} +25 -25
  405. package/chunks/{chunk-U7ZFW55U.js → chunk-VOQXFAY5.js} +977 -977
  406. /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
@@ -0,0 +1,403 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ resolveChannelCwd
5
+ } from "./chunk-TFRMVU6R.js";
6
+ import {
7
+ getPlugin
8
+ } from "./chunk-XBYYDKAZ.js";
9
+ import {
10
+ canonicalizeWorkspace
11
+ } from "./chunk-2RFKHEXL.js";
12
+ import {
13
+ normalizeWorkerDiagnostic
14
+ } from "./chunk-GZ3RCT54.js";
15
+ import {
16
+ isAllChannelSelectionName
17
+ } from "./chunk-ALMR3E6Q.js";
18
+ import {
19
+ redactLogCredentials
20
+ } from "./chunk-M5GB774H.js";
21
+ import {
22
+ PairingStore,
23
+ sanitizeLogText
24
+ } from "./chunk-7I5GTCT4.js";
25
+ import "./chunk-UDXSXLER.js";
26
+ import "./chunk-TWPJO254.js";
27
+ import "./chunk-H6XPXXMH.js";
28
+ import {
29
+ init_esbuild_shims
30
+ } from "./chunk-5O2XNYP6.js";
31
+ import {
32
+ __name
33
+ } from "./chunk-J2S4EL5Y.js";
34
+
35
+ // packages/cli/src/serve/channel-management-service.ts
36
+ init_esbuild_shims();
37
+ var ChannelManagementError = class extends Error {
38
+ constructor(code, message) {
39
+ super(message);
40
+ this.code = code;
41
+ this.name = "ChannelManagementError";
42
+ }
43
+ static {
44
+ __name(this, "ChannelManagementError");
45
+ }
46
+ };
47
+ function diagnostic(error) {
48
+ const message = error instanceof Error ? error.message : String(error);
49
+ return sanitizeLogText(
50
+ redactLogCredentials(normalizeWorkerDiagnostic(message)),
51
+ 512
52
+ );
53
+ }
54
+ __name(diagnostic, "diagnostic");
55
+ function usesEnvironment(value) {
56
+ return typeof value === "string" && /^\$[A-Za-z_][A-Za-z0-9_]*$/.test(value);
57
+ }
58
+ __name(usesEnvironment, "usesEnvironment");
59
+ function createChannelManagementService(opts) {
60
+ const diagnostics = /* @__PURE__ */ new Map();
61
+ let mutationTail = Promise.resolve();
62
+ const inMutationLane = /* @__PURE__ */ __name((mutation) => {
63
+ const result = mutationTail.then(mutation, mutation);
64
+ mutationTail = result.then(
65
+ () => void 0,
66
+ () => void 0
67
+ );
68
+ return result;
69
+ }, "inMutationLane");
70
+ const assertExpectedRevision = /* @__PURE__ */ __name((snapshot, expectedRevision) => {
71
+ if (snapshot.revision !== expectedRevision) {
72
+ throw new ChannelManagementError(
73
+ "channel_settings_conflict",
74
+ "Channel settings changed; reload before trying again."
75
+ );
76
+ }
77
+ }, "assertExpectedRevision");
78
+ const workerFor = /* @__PURE__ */ __name((name) => {
79
+ const matches = opts.manager.state().workers.filter(
80
+ (worker) => worker.adapters?.some((adapter) => adapter.name === name) || worker.requestedChannels?.includes(name) || worker.channels.includes(name)
81
+ );
82
+ return matches;
83
+ }, "workerFor");
84
+ const workspaceCommittedNames = /* @__PURE__ */ __name(() => opts.manager.committedChannelNames().filter(
85
+ (name) => workerFor(name).some((w) => w.workspaceCwd === opts.workspaceCwd)
86
+ ), "workspaceCommittedNames");
87
+ const assertOwnedRuntime = /* @__PURE__ */ __name((name) => {
88
+ if (!workspaceCommittedNames().includes(name)) return;
89
+ const workers = workerFor(name).filter(
90
+ (worker) => worker.workspaceCwd === opts.workspaceCwd
91
+ );
92
+ if (workers.length !== 1) {
93
+ throw new ChannelManagementError(
94
+ "channel_runtime_owner_mismatch",
95
+ `Channel "${name}" does not have one confirmed runtime owner in this workspace.`
96
+ );
97
+ }
98
+ }, "assertOwnedRuntime");
99
+ const runtimeFor = /* @__PURE__ */ __name((name) => {
100
+ const retainedError = diagnostics.get(name);
101
+ if (retainedError) return { state: "error", lastError: retainedError };
102
+ if (!workspaceCommittedNames().includes(name)) {
103
+ return { state: "stopped" };
104
+ }
105
+ const state = opts.manager.state();
106
+ const workers = workerFor(name).filter(
107
+ (worker2) => worker2.workspaceCwd === opts.workspaceCwd
108
+ );
109
+ if (workers.length !== 1) {
110
+ return {
111
+ state: "error",
112
+ lastError: "Channel runtime owner is unknown or ambiguous."
113
+ };
114
+ }
115
+ const worker = workers[0];
116
+ const adapter = worker.adapters?.find((item) => item.name === name);
117
+ if (adapter?.state === "connected") return { state: "connected" };
118
+ if (adapter?.state === "error") {
119
+ return {
120
+ state: "error",
121
+ ...adapter.error ? { lastError: diagnostic(adapter.error) } : {}
122
+ };
123
+ }
124
+ if (adapter?.state === "starting" || state.transition === "starting" || state.transition === "reconciling") {
125
+ return { state: "starting" };
126
+ }
127
+ if (worker.state === "running") return { state: "partial" };
128
+ return {
129
+ state: "error",
130
+ ...worker.error ? { lastError: diagnostic(worker.error) } : {}
131
+ };
132
+ }, "runtimeFor");
133
+ const instanceFrom = /* @__PURE__ */ __name(async (name, rawConfig, startupNames) => {
134
+ const type = typeof rawConfig["type"] === "string" ? rawConfig["type"] : "";
135
+ const plugin = type ? await getPlugin(type) : void 0;
136
+ if (!plugin?.management) {
137
+ return {
138
+ name,
139
+ config: type ? { type } : {},
140
+ secrets: {},
141
+ startsWithServe: startupNames.some(isAllChannelSelectionName) || startupNames.includes(name),
142
+ runtime: runtimeFor(name)
143
+ };
144
+ }
145
+ const secretKeys = new Set(
146
+ plugin.management.fields.filter((field) => field.kind === "secret").map((field) => field.key)
147
+ );
148
+ const config = {};
149
+ const secrets = {};
150
+ for (const [key, value] of Object.entries(rawConfig)) {
151
+ if (!secretKeys.has(key)) {
152
+ config[key] = value;
153
+ continue;
154
+ }
155
+ secrets[key] = {
156
+ present: value !== void 0,
157
+ ...value !== void 0 ? { source: usesEnvironment(value) ? "environment" : "literal" } : {}
158
+ };
159
+ }
160
+ for (const key of secretKeys) {
161
+ secrets[key] ??= { present: false };
162
+ }
163
+ return {
164
+ name,
165
+ config,
166
+ secrets,
167
+ startsWithServe: startupNames.some(isAllChannelSelectionName) || startupNames.includes(name),
168
+ runtime: runtimeFor(name)
169
+ };
170
+ }, "instanceFrom");
171
+ const listFrom = /* @__PURE__ */ __name(async (persisted) => {
172
+ const entries = await Promise.all(
173
+ Object.entries(persisted.channels).map(
174
+ async ([name, config]) => [
175
+ name,
176
+ await instanceFrom(name, config, persisted.startupNames)
177
+ ]
178
+ )
179
+ );
180
+ return {
181
+ revision: persisted.revision,
182
+ instances: Object.fromEntries(entries)
183
+ };
184
+ }, "listFrom");
185
+ const resultFor = /* @__PURE__ */ __name(async (name, persisted = opts.store.snapshot()) => {
186
+ const snapshot = await listFrom(persisted);
187
+ const instance = Object.hasOwn(snapshot.instances, name) ? snapshot.instances[name] : {
188
+ name,
189
+ config: {},
190
+ secrets: {},
191
+ startsWithServe: false,
192
+ runtime: runtimeFor(name)
193
+ };
194
+ return { snapshot, instance };
195
+ }, "resultFor");
196
+ const stopChannel = /* @__PURE__ */ __name((name) => opts.manager.setChannelEnabled(
197
+ { name, workspaceCwd: opts.workspaceCwd },
198
+ false
199
+ ), "stopChannel");
200
+ const assertManageableInstanceName = /* @__PURE__ */ __name((name) => {
201
+ if (isAllChannelSelectionName(name)) {
202
+ throw new ChannelManagementError(
203
+ "invalid_channel_instance_name",
204
+ 'Channel instance name "all" is reserved for startup selection.'
205
+ );
206
+ }
207
+ }, "assertManageableInstanceName");
208
+ const assertWorkspaceConfig = /* @__PURE__ */ __name((config) => {
209
+ const rawCwd = config["cwd"];
210
+ if (typeof rawCwd !== "string") return;
211
+ const workspaceCwd = canonicalizeWorkspace(opts.workspaceCwd);
212
+ const channelCwd = canonicalizeWorkspace(
213
+ resolveChannelCwd(rawCwd, workspaceCwd)
214
+ );
215
+ if (channelCwd !== workspaceCwd) {
216
+ throw new ChannelManagementError(
217
+ "channel_workspace_mismatch",
218
+ "Channel workspace must match the selected workspace."
219
+ );
220
+ }
221
+ }, "assertWorkspaceConfig");
222
+ const pairingStoreFor = /* @__PURE__ */ __name((name) => {
223
+ assertManageableInstanceName(name);
224
+ const channels = opts.store.snapshot().channels;
225
+ if (!Object.hasOwn(channels, name)) {
226
+ throw new ChannelManagementError(
227
+ "channel_instance_not_found",
228
+ `Channel "${name}" is not configured in this workspace.`
229
+ );
230
+ }
231
+ const config = channels[name];
232
+ assertWorkspaceConfig(config);
233
+ if (config["senderPolicy"] !== "pairing") {
234
+ throw new ChannelManagementError(
235
+ "channel_pairing_not_enabled",
236
+ `Channel "${name}" does not use pairing mode.`
237
+ );
238
+ }
239
+ return new PairingStore(name, opts.workspaceCwd);
240
+ }, "pairingStoreFor");
241
+ const service = {
242
+ async list() {
243
+ return listFrom(opts.store.snapshot());
244
+ },
245
+ async upsert(name, request) {
246
+ assertManageableInstanceName(name);
247
+ assertWorkspaceConfig(request.config);
248
+ const active = workspaceCommittedNames().includes(name);
249
+ if (active) assertOwnedRuntime(name);
250
+ const persisted = await opts.store.upsert(name, request);
251
+ diagnostics.delete(name);
252
+ if (active) {
253
+ try {
254
+ await opts.manager.reloadWorkspace(opts.workspaceCwd, name);
255
+ } catch (error) {
256
+ diagnostics.set(name, diagnostic(error));
257
+ try {
258
+ await stopChannel(name);
259
+ } catch {
260
+ }
261
+ }
262
+ }
263
+ return resultFor(name, persisted);
264
+ },
265
+ async remove(name, request) {
266
+ assertManageableInstanceName(name);
267
+ const current = opts.store.snapshot();
268
+ if (!Object.hasOwn(current.channels, name)) {
269
+ throw new ChannelManagementError(
270
+ "channel_instance_not_found",
271
+ `Channel "${name}" is not configured in this workspace.`
272
+ );
273
+ }
274
+ assertWorkspaceConfig(current.channels[name]);
275
+ assertExpectedRevision(current, request.expectedRevision);
276
+ if (workspaceCommittedNames().includes(name)) {
277
+ assertOwnedRuntime(name);
278
+ await stopChannel(name);
279
+ }
280
+ const persisted = await opts.store.remove(name, request);
281
+ diagnostics.delete(name);
282
+ return resultFor(name, persisted);
283
+ },
284
+ async setStartup(name, request) {
285
+ assertManageableInstanceName(name);
286
+ const current = opts.store.snapshot();
287
+ if (!Object.hasOwn(current.channels, name)) {
288
+ throw new ChannelManagementError(
289
+ "channel_instance_not_found",
290
+ `Channel "${name}" is not configured in this workspace.`
291
+ );
292
+ }
293
+ assertWorkspaceConfig(current.channels[name]);
294
+ const startsAll = current.startupNames.some(isAllChannelSelectionName);
295
+ if (startsAll && request.enabled) {
296
+ assertExpectedRevision(current, request.expectedRevision);
297
+ return resultFor(name, current);
298
+ }
299
+ const startupNames = startsAll ? Object.keys(current.channels).filter(
300
+ (item) => !isAllChannelSelectionName(item) && item !== name
301
+ ) : request.enabled ? current.startupNames.includes(name) ? current.startupNames : [...current.startupNames, name] : current.startupNames.filter((item) => item !== name);
302
+ const persisted = await opts.store.setStartupNames(startupNames, {
303
+ expectedRevision: request.expectedRevision
304
+ });
305
+ return resultFor(name, persisted);
306
+ },
307
+ async start(name) {
308
+ assertManageableInstanceName(name);
309
+ const persisted = opts.store.snapshot();
310
+ if (!Object.hasOwn(persisted.channels, name)) {
311
+ throw new ChannelManagementError(
312
+ "channel_instance_not_found",
313
+ `Channel "${name}" is not configured in this workspace.`
314
+ );
315
+ }
316
+ assertWorkspaceConfig(persisted.channels[name]);
317
+ await opts.manager.setChannelEnabled(
318
+ { name, workspaceCwd: opts.workspaceCwd },
319
+ true
320
+ );
321
+ diagnostics.delete(name);
322
+ return resultFor(name, persisted);
323
+ },
324
+ async stop(name) {
325
+ assertManageableInstanceName(name);
326
+ const persisted = opts.store.snapshot();
327
+ if (!Object.hasOwn(persisted.channels, name)) {
328
+ throw new ChannelManagementError(
329
+ "channel_instance_not_found",
330
+ `Channel "${name}" is not configured in this workspace.`
331
+ );
332
+ }
333
+ assertWorkspaceConfig(persisted.channels[name]);
334
+ await opts.manager.setChannelEnabled(
335
+ { name, workspaceCwd: opts.workspaceCwd },
336
+ false
337
+ );
338
+ diagnostics.delete(name);
339
+ return resultFor(name, persisted);
340
+ },
341
+ async restart(name) {
342
+ assertManageableInstanceName(name);
343
+ const persisted = opts.store.snapshot();
344
+ if (!Object.hasOwn(persisted.channels, name)) {
345
+ throw new ChannelManagementError(
346
+ "channel_instance_not_found",
347
+ `Channel "${name}" is not configured in this workspace.`
348
+ );
349
+ }
350
+ assertWorkspaceConfig(persisted.channels[name]);
351
+ if (!workspaceCommittedNames().includes(name)) {
352
+ throw new ChannelManagementError(
353
+ "channel_worker_not_enabled",
354
+ `Channel "${name}" is not running.`
355
+ );
356
+ }
357
+ assertOwnedRuntime(name);
358
+ try {
359
+ await opts.manager.reloadWorkspace(opts.workspaceCwd, name);
360
+ diagnostics.delete(name);
361
+ } catch (error) {
362
+ diagnostics.set(name, diagnostic(error));
363
+ throw error;
364
+ }
365
+ return resultFor(name, persisted);
366
+ },
367
+ async pairingRequests(name) {
368
+ return { requests: pairingStoreFor(name).listPending() };
369
+ },
370
+ async approvePairing(name, code) {
371
+ const store = pairingStoreFor(name);
372
+ const approved = store.approve(code);
373
+ if (!approved) {
374
+ throw new ChannelManagementError(
375
+ "channel_pairing_request_not_found",
376
+ "Pairing request was not found or has expired."
377
+ );
378
+ }
379
+ return { approved, requests: store.listPending() };
380
+ }
381
+ };
382
+ return {
383
+ list: /* @__PURE__ */ __name(() => service.list(), "list"),
384
+ upsert: /* @__PURE__ */ __name((name, request) => inMutationLane(() => service.upsert(name, request)), "upsert"),
385
+ remove: /* @__PURE__ */ __name((name, request) => inMutationLane(() => service.remove(name, request)), "remove"),
386
+ setStartup: /* @__PURE__ */ __name((name, request) => inMutationLane(() => service.setStartup(name, request)), "setStartup"),
387
+ start: /* @__PURE__ */ __name((name) => inMutationLane(() => service.start(name)), "start"),
388
+ stop: /* @__PURE__ */ __name((name) => inMutationLane(() => service.stop(name)), "stop"),
389
+ restart: /* @__PURE__ */ __name((name) => inMutationLane(() => service.restart(name)), "restart"),
390
+ pairingRequests: /* @__PURE__ */ __name((name) => service.pairingRequests(name), "pairingRequests"),
391
+ approvePairing: /* @__PURE__ */ __name((name, code) => inMutationLane(() => service.approvePairing(name, code)), "approvePairing")
392
+ };
393
+ }
394
+ __name(createChannelManagementService, "createChannelManagementService");
395
+ export {
396
+ ChannelManagementError,
397
+ createChannelManagementService
398
+ };
399
+ /**
400
+ * @license
401
+ * Copyright 2026 Qwen Team
402
+ * SPDX-License-Identifier: Apache-2.0
403
+ */
@@ -0,0 +1,87 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ ChannelSettingsError,
5
+ WorkspaceChannelSettingsStore,
6
+ assertValidChannelSecretUpdates
7
+ } from "./chunk-5ZF5XXTS.js";
8
+ import "./chunk-XBYYDKAZ.js";
9
+ import "./chunk-EIF3FXTB.js";
10
+ import "./chunk-RKUWKYED.js";
11
+ import "./chunk-TCIFAA7K.js";
12
+ import "./chunk-2N7CODY5.js";
13
+ import "./chunk-GOXKNSDZ.js";
14
+ import "./chunk-IDS7MSUP.js";
15
+ import "./chunk-6PEXNQTX.js";
16
+ import "./chunk-Q43KPN7X.js";
17
+ import "./chunk-ALGGS7UH.js";
18
+ import "./chunk-MR3PXB6E.js";
19
+ import "./chunk-OWAK7LMW.js";
20
+ import "./chunk-X5WNMMIA.js";
21
+ import "./chunk-TWPJO254.js";
22
+ import "./chunk-H6XPXXMH.js";
23
+ import "./chunk-5M6IDOMF.js";
24
+ import "./chunk-UPUG4GXM.js";
25
+ import "./chunk-64LQLPL7.js";
26
+ import "./chunk-2LQTH543.js";
27
+ import "./chunk-KRXPRVGL.js";
28
+ import "./chunk-BMFALVGQ.js";
29
+ import "./chunk-CVHIL5IG.js";
30
+ import "./chunk-IRH27ZC2.js";
31
+ import "./chunk-QHWCP53L.js";
32
+ import "./chunk-PONHVBRT.js";
33
+ import "./chunk-T26EAKDL.js";
34
+ import "./chunk-6PVPNMXU.js";
35
+ import "./chunk-CPBF7KYF.js";
36
+ import "./chunk-6QIGFD5W.js";
37
+ import "./chunk-XWWKIXVD.js";
38
+ import "./chunk-75GFAX4R.js";
39
+ import "./chunk-OKF7JF3R.js";
40
+ import "./chunk-JSD33JG6.js";
41
+ import "./chunk-S6LOFUVP.js";
42
+ import "./chunk-JCW2R7WC.js";
43
+ import "./chunk-2DN4J57Y.js";
44
+ import "./chunk-ZPJWUGCS.js";
45
+ import "./chunk-2LKVPASC.js";
46
+ import "./chunk-NAVJD2PQ.js";
47
+ import "./chunk-LW3RFMG7.js";
48
+ import "./chunk-W4MIWP6M.js";
49
+ import "./chunk-DGEIYUC3.js";
50
+ import "./chunk-MPHPFVKK.js";
51
+ import "./chunk-GLNBDYUX.js";
52
+ import "./chunk-DJ2GSRLV.js";
53
+ import "./chunk-5KTQXHPY.js";
54
+ import "./chunk-75MIQ3LV.js";
55
+ import "./chunk-2J3OJGTL.js";
56
+ import "./chunk-P3QQPMQA.js";
57
+ import "./chunk-RPLGZJV2.js";
58
+ import "./chunk-GLCZKT5V.js";
59
+ import "./chunk-DZLYR4U3.js";
60
+ import "./chunk-PT722TDT.js";
61
+ import "./chunk-VGC4I5JJ.js";
62
+ import "./chunk-SGFT55XI.js";
63
+ import "./chunk-Y4IHBGBP.js";
64
+ import "./chunk-Y6AXW2OG.js";
65
+ import "./chunk-VCPIZRYH.js";
66
+ import "./chunk-46UV252V.js";
67
+ import "./chunk-ZBVS26BY.js";
68
+ import "./chunk-WZRWHXFE.js";
69
+ import "./chunk-A3NDJ5SB.js";
70
+ import "./chunk-7XATOOE7.js";
71
+ import "./chunk-BGTQCTQW.js";
72
+ import "./chunk-W4RQUHY3.js";
73
+ import "./chunk-S7W2GKIO.js";
74
+ import "./chunk-UHUSJ6X7.js";
75
+ import "./chunk-VOQXFAY5.js";
76
+ import "./chunk-75DOP5OR.js";
77
+ import "./chunk-DMTGGOSA.js";
78
+ import "./chunk-YQ3U5MUC.js";
79
+ import "./chunk-AMDSOFFV.js";
80
+ import "./chunk-QUGAUQGJ.js";
81
+ import "./chunk-5O2XNYP6.js";
82
+ import "./chunk-J2S4EL5Y.js";
83
+ export {
84
+ ChannelSettingsError,
85
+ WorkspaceChannelSettingsStore,
86
+ assertValidChannelSecretUpdates
87
+ };
@@ -3,15 +3,20 @@
3
3
  import {
4
4
  ChannelWorkerReconcileError,
5
5
  createChannelWorkerGroup
6
- } from "./chunk-UDX5OBWR.js";
7
- import "./chunk-5NBDS5S6.js";
8
- import "./chunk-LK7CHLVP.js";
9
- import "./chunk-JLU636DO.js";
6
+ } from "./chunk-T2QMKU3R.js";
7
+ import "./chunk-XZC5VLBZ.js";
8
+ import "./chunk-B4AJNNOL.js";
9
+ import "./chunk-2RFKHEXL.js";
10
+ import "./chunk-GNR2RNMP.js";
11
+ import "./chunk-FYJ7W2PI.js";
12
+ import "./chunk-U4VTUMMK.js";
13
+ import "./chunk-GZ3RCT54.js";
14
+ import "./chunk-ALMR3E6Q.js";
10
15
  import "./chunk-BK2UNYWD.js";
11
16
  import "./chunk-M5GB774H.js";
12
- import "./chunk-RWTEFFPU.js";
13
- import "./chunk-UDXSXLER.js";
14
17
  import "./chunk-5HBA2Z7V.js";
18
+ import "./chunk-7I5GTCT4.js";
19
+ import "./chunk-UDXSXLER.js";
15
20
  import "./chunk-TWPJO254.js";
16
21
  import "./chunk-H6XPXXMH.js";
17
22
  import "./chunk-5O2XNYP6.js";
@@ -2,21 +2,26 @@
2
2
  "use strict";
3
3
  import {
4
4
  ChannelWorkerReconcileError
5
- } from "./chunk-UDX5OBWR.js";
5
+ } from "./chunk-T2QMKU3R.js";
6
+ import "./chunk-XZC5VLBZ.js";
7
+ import "./chunk-B4AJNNOL.js";
8
+ import "./chunk-2RFKHEXL.js";
6
9
  import {
7
10
  ChannelWorkerStartupError,
8
11
  ChannelWorkerStopError
9
- } from "./chunk-5NBDS5S6.js";
12
+ } from "./chunk-GNR2RNMP.js";
13
+ import "./chunk-FYJ7W2PI.js";
10
14
  import {
11
15
  ChannelDeliveryError,
12
16
  ChannelWebhookEnqueueError
13
- } from "./chunk-LK7CHLVP.js";
14
- import "./chunk-JLU636DO.js";
17
+ } from "./chunk-U4VTUMMK.js";
18
+ import "./chunk-GZ3RCT54.js";
19
+ import "./chunk-ALMR3E6Q.js";
15
20
  import "./chunk-BK2UNYWD.js";
16
21
  import "./chunk-M5GB774H.js";
17
- import "./chunk-RWTEFFPU.js";
18
- import "./chunk-UDXSXLER.js";
19
22
  import "./chunk-5HBA2Z7V.js";
23
+ import "./chunk-7I5GTCT4.js";
24
+ import "./chunk-UDXSXLER.js";
20
25
  import "./chunk-TWPJO254.js";
21
26
  import "./chunk-H6XPXXMH.js";
22
27
  import {
@@ -4,14 +4,16 @@ import {
4
4
  ChannelWorkerStartupError,
5
5
  ChannelWorkerStopError,
6
6
  createChannelWorkerSupervisor
7
- } from "./chunk-5NBDS5S6.js";
8
- import "./chunk-LK7CHLVP.js";
9
- import "./chunk-JLU636DO.js";
7
+ } from "./chunk-GNR2RNMP.js";
8
+ import "./chunk-FYJ7W2PI.js";
9
+ import "./chunk-U4VTUMMK.js";
10
+ import "./chunk-GZ3RCT54.js";
11
+ import "./chunk-ALMR3E6Q.js";
10
12
  import "./chunk-BK2UNYWD.js";
11
13
  import "./chunk-M5GB774H.js";
12
- import "./chunk-RWTEFFPU.js";
13
- import "./chunk-UDXSXLER.js";
14
14
  import "./chunk-5HBA2Z7V.js";
15
+ import "./chunk-7I5GTCT4.js";
16
+ import "./chunk-UDXSXLER.js";
15
17
  import "./chunk-TWPJO254.js";
16
18
  import "./chunk-H6XPXXMH.js";
17
19
  import "./chunk-5O2XNYP6.js";
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  createDebugLogger,
5
5
  isNodeError
6
- } from "./chunk-NL7LTRLR.js";
6
+ } from "./chunk-UHUSJ6X7.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-5O2XNYP6.js";
@@ -818,7 +818,7 @@ var QwenIgnoreParser = class {
818
818
  }
819
819
  continue;
820
820
  }
821
- const patterns = (content ?? "").split("\n").map((p) => p.trim()).filter((p) => p !== "" && !p.startsWith("#"));
821
+ const patterns = (content ?? "").split("\n").map((p) => p.endsWith("\r") ? p.slice(0, -1) : p).filter((p) => p.trim() !== "" && !p.startsWith("#"));
822
822
  if (patterns.length > 0) {
823
823
  const sourceIgnorer = (0, import_ignore.default)();
824
824
  sourceIgnorer.add(patterns);
@@ -902,7 +902,6 @@ export {
902
902
  getQwenIgnoreFileNames,
903
903
  formatQwenIgnoreFileNames,
904
904
  QwenIgnoreParser,
905
- DEFAULT_MEMORY_FILE_FILTERING_OPTIONS,
906
905
  DEFAULT_FILE_FILTERING_OPTIONS
907
906
  };
908
907
  /**
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  STATUS_SCHEMA_VERSION
5
- } from "./chunk-VIA5XA4U.js";
5
+ } from "./chunk-FTD6DP4T.js";
6
6
  import {
7
7
  detectRuntime,
8
8
  redactProxyCredentials
9
- } from "./chunk-2JZBVYTU.js";
9
+ } from "./chunk-WZRWHXFE.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -83,8 +83,6 @@ var InvalidStreamError = class extends Error {
83
83
 
84
84
  export {
85
85
  createOpenAIReasoningThoughtPart,
86
- isOpenAIReasoningThoughtPart,
87
- parseThought,
88
86
  getThoughtSummary,
89
87
  InvalidStreamError
90
88
  };
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  openBrowserSecurely
5
- } from "./chunk-JESCGQM3.js";
5
+ } from "./chunk-NAVJD2PQ.js";
6
6
  import {
7
7
  formatFetchErrorForUser
8
- } from "./chunk-NH6KE4JX.js";
8
+ } from "./chunk-LW3RFMG7.js";
9
9
  import {
10
10
  combineAbortSignals
11
11
  } from "./chunk-DJ2GSRLV.js";
12
12
  import {
13
13
  atomicWriteFile
14
- } from "./chunk-A5L3JMUA.js";
14
+ } from "./chunk-7XATOOE7.js";
15
15
  import {
16
16
  Storage,
17
17
  createDebugLogger
18
- } from "./chunk-NL7LTRLR.js";
18
+ } from "./chunk-UHUSJ6X7.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -145,29 +145,6 @@ function supportsHyperlinks(stream = process.stdout) {
145
145
  return false;
146
146
  }
147
147
  __name(supportsHyperlinks, "supportsHyperlinks");
148
- var HYPERLINK_ENV_KEYS = [
149
- "NO_COLOR",
150
- "FORCE_COLOR",
151
- "CI",
152
- "TMUX",
153
- "STY",
154
- "TERM_PROGRAM",
155
- "TERM_PROGRAM_VERSION",
156
- "WT_SESSION",
157
- "KITTY_WINDOW_ID",
158
- "VTE_VERSION",
159
- "DOMTERM",
160
- "GHOSTTY_RESOURCES_DIR",
161
- "KONSOLE_VERSION",
162
- "TERMINAL_EMULATOR",
163
- "ALACRITTY_LOG",
164
- "ALACRITTY_WINDOW_ID",
165
- "ALACRITTY_SOCKET",
166
- "TERM",
167
- "TEAMCITY_VERSION",
168
- "FORCE_HYPERLINK",
169
- "QWEN_DISABLE_HYPERLINKS"
170
- ];
171
148
 
172
149
  // packages/core/src/qwen/sharedTokenManager.ts
173
150
  init_esbuild_shims();
@@ -1466,7 +1443,6 @@ export {
1466
1443
  sanitizeForOsc,
1467
1444
  osc8Hyperlink,
1468
1445
  supportsHyperlinks,
1469
- HYPERLINK_ENV_KEYS,
1470
1446
  SharedTokenManager,
1471
1447
  generateCodeVerifier,
1472
1448
  generateCodeChallenge,