@qwen-code/qwen-code 0.21.6 → 0.21.7-nightly.20260808.4ec0371e6

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 (323) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +50 -31
  2. package/bundled/qc-helper/docs/features/channels/dingtalk.md +41 -3
  3. package/bundled/qc-helper/docs/features/channels/feishu.md +13 -2
  4. package/bundled/qc-helper/docs/features/channels/github.md +13 -11
  5. package/bundled/qc-helper/docs/features/channels/gitlab.md +13 -11
  6. package/bundled/qc-helper/docs/features/channels/overview.md +49 -31
  7. package/bundled/qc-helper/docs/features/channels/plugins.md +2 -2
  8. package/bundled/qc-helper/docs/features/channels/qqbot.md +4 -2
  9. package/bundled/qc-helper/docs/features/channels/telegram.md +4 -2
  10. package/bundled/qc-helper/docs/features/channels/wecom.md +1 -1
  11. package/bundled/qc-helper/docs/features/code-review.md +31 -0
  12. package/bundled/qc-helper/docs/features/hooks.md +2 -0
  13. package/bundled/qc-helper/docs/qwen-serve.md +4 -1
  14. package/bundled/review/SKILL.md +52 -16
  15. package/chunks/{MaxSizedBox-2HFKP4LI.js → MaxSizedBox-COZBVNCI.js} +42 -41
  16. package/chunks/{StandaloneSessionPicker-RBV72M5N.js → StandaloneSessionPicker-3OF2FS6S.js} +59 -57
  17. package/chunks/{acpAgent-WO6JFCVQ.js → acpAgent-3JCJ6KWG.js} +236 -185
  18. package/chunks/{agent-AHGLYNZ4.js → agent-DBSC47CD.js} +39 -38
  19. package/chunks/{agent-headless-NTXKKGRO.js → agent-headless-ZJHZ7I3S.js} +39 -38
  20. package/chunks/{anthropicContentGenerator-3CAHEZBM.js → anthropicContentGenerator-SSFE2753.js} +15 -15
  21. package/chunks/{artifact-tool-RROCCJDA.js → artifact-tool-N652YE4L.js} +2 -2
  22. package/chunks/{askUserQuestion-2EPPBPUZ.js → askUserQuestion-ONW74PKJ.js} +2 -2
  23. package/chunks/{bridge-RPAU64CA.js → bridge-NFBYT4ZI.js} +43 -42
  24. package/chunks/{channel-management-service-IGEUOVRT.js → channel-management-service-LXSJXQGM.js} +19 -10
  25. package/chunks/{channel-settings-store-ON64MF7G.js → channel-settings-store-LABKDKSI.js} +46 -45
  26. package/chunks/{channel-worker-group-JWQK224X.js → channel-worker-group-MTW2AGT3.js} +4 -4
  27. package/chunks/{channel-worker-manager-77E3OXRQ.js → channel-worker-manager-UU6PTQSI.js} +4 -4
  28. package/chunks/{channel-worker-supervisor-62YWUGP2.js → channel-worker-supervisor-5SRD24FG.js} +3 -3
  29. package/chunks/{chunk-XC656O42.js → chunk-22NBYCPD.js} +3 -3
  30. package/chunks/{chunk-K2B3X3E7.js → chunk-26ISE5EG.js} +4 -4
  31. package/chunks/{chunk-Z7JILXGX.js → chunk-2UUMVNYT.js} +3 -3
  32. package/chunks/{chunk-ACZRB7AD.js → chunk-3ARO4N5G.js} +3 -3
  33. package/chunks/{chunk-CJ5WLD5Y.js → chunk-3HS6Y4UA.js} +96 -22
  34. package/chunks/{chunk-MBEMTXQT.js → chunk-3K7FH2KQ.js} +1 -32
  35. package/chunks/{chunk-QYPT3QUD.js → chunk-3ULCB3NE.js} +3 -3
  36. package/chunks/{chunk-IMOQO6YL.js → chunk-4Q6N3SNL.js} +1 -1
  37. package/chunks/{chunk-3UOLYNTF.js → chunk-4QJJHIZ5.js} +23 -14
  38. package/chunks/{chunk-VGFPFM4U.js → chunk-5PGKKSO6.js} +42 -16
  39. package/chunks/{chunk-NGJOAKJY.js → chunk-5YT3Y33M.js} +3 -3
  40. package/chunks/{chunk-T4JSA7KU.js → chunk-64YLXLMY.js} +3 -3
  41. package/chunks/{chunk-5L6CQ4ZU.js → chunk-6M26GBKX.js} +2 -2
  42. package/chunks/{chunk-ZPPP6VCL.js → chunk-6ZRFAKXK.js} +1 -1
  43. package/chunks/{chunk-OP2OHZ7K.js → chunk-764F335K.js} +18 -9
  44. package/chunks/{chunk-PPUOYL77.js → chunk-77WOUGCA.js} +53 -22
  45. package/chunks/{chunk-33FNCQSY.js → chunk-7MH4J33A.js} +2 -2
  46. package/chunks/{chunk-S7CV4KO6.js → chunk-AB4A73VL.js} +2 -2
  47. package/chunks/{chunk-O7V7N4G7.js → chunk-ACHMWGC5.js} +198 -35
  48. package/chunks/{chunk-NKSF7HYF.js → chunk-AG3P2RES.js} +1 -1
  49. package/chunks/{chunk-6PEXNQTX.js → chunk-ALFTV7GA.js} +26 -2
  50. package/chunks/{chunk-JELIWHXD.js → chunk-AOHJKPKL.js} +1 -1
  51. package/chunks/{chunk-XA4TMLFN.js → chunk-APMRLB2H.js} +580 -394
  52. package/chunks/{chunk-75QMRMO7.js → chunk-APNNM3JC.js} +3 -3
  53. package/chunks/{chunk-GLNBDYUX.js → chunk-AXMWHKXA.js} +6 -2
  54. package/chunks/{chunk-VNQCPBC2.js → chunk-B23P3YWE.js} +3 -3
  55. package/chunks/{chunk-H36SETQS.js → chunk-B2GJNDTV.js} +1 -1
  56. package/chunks/{chunk-Q5RM32DR.js → chunk-BCMJPTXV.js} +1 -1
  57. package/chunks/{chunk-A4VTILZT.js → chunk-BFSQBXHV.js} +714 -398
  58. package/chunks/{chunk-QMBEW7EW.js → chunk-BGG4MBYD.js} +2 -2
  59. package/chunks/{chunk-SLSWFHDF.js → chunk-BJKFFPX2.js} +4 -4
  60. package/chunks/{chunk-N2GJU6KI.js → chunk-BN3OROB3.js} +12 -12
  61. package/chunks/chunk-CE5UCTKO.js +3508 -0
  62. package/chunks/{chunk-2UISUFHQ.js → chunk-CJXIIILK.js} +3 -3
  63. package/chunks/{chunk-WK4TJUEA.js → chunk-CKASRHZI.js} +1 -1
  64. package/chunks/chunk-CPG6P4GG.js +82 -0
  65. package/chunks/{chunk-KKN2IE7Q.js → chunk-CTJLZLB5.js} +1 -1
  66. package/chunks/{chunk-DIEFUBV6.js → chunk-DIWZNWZT.js} +205 -35
  67. package/chunks/{chunk-CA4UIDFU.js → chunk-DPH3MUAP.js} +1 -1
  68. package/chunks/{chunk-4LKVQFHM.js → chunk-DREZZAZM.js} +2 -2
  69. package/chunks/{chunk-2DNKEBXY.js → chunk-EI3HZX6C.js} +1 -1
  70. package/chunks/{chunk-U25CMJYY.js → chunk-EKPKKXY2.js} +1 -1
  71. package/chunks/{chunk-432XCUHF.js → chunk-EQL65XGA.js} +1 -1
  72. package/chunks/{chunk-TYERNYH4.js → chunk-EUNWC2VS.js} +2 -2
  73. package/chunks/{chunk-4JH77A2U.js → chunk-EZ53KMUN.js} +1 -1
  74. package/chunks/{chunk-HY25ULVN.js → chunk-F3LPXDJP.js} +157 -56
  75. package/chunks/{chunk-D3UEZIQH.js → chunk-FJ6YHWHZ.js} +2 -2
  76. package/chunks/{chunk-UH7Z7Y45.js → chunk-FOGU3LJX.js} +1 -1
  77. package/chunks/{chunk-E4WHKETF.js → chunk-FVKHVJZQ.js} +2 -49
  78. package/chunks/{chunk-YZQTA3ID.js → chunk-GDXET5XU.js} +31 -3396
  79. package/chunks/{chunk-A5YZ3FA2.js → chunk-GM463R2B.js} +1 -1
  80. package/chunks/{chunk-MOHAWIAW.js → chunk-GNPNYXJB.js} +2 -2
  81. package/chunks/{chunk-SUKEUUAA.js → chunk-GUFY6D3E.js} +1 -1
  82. package/chunks/{chunk-FZFP7RZI.js → chunk-H2352CX2.js} +3 -3
  83. package/chunks/{chunk-GWRHVJY2.js → chunk-HKCYGZZ4.js} +22 -22
  84. package/chunks/{chunk-3PRJYMXC.js → chunk-HUWENAHO.js} +1 -1
  85. package/chunks/{chunk-G5NNWEYE.js → chunk-HY2INPTA.js} +4 -4
  86. package/chunks/{chunk-WVAESIM6.js → chunk-IA7TGCN2.js} +4 -4
  87. package/chunks/{chunk-HU5TUALO.js → chunk-IIJEYBNH.js} +3 -3
  88. package/chunks/{chunk-XM2O73NC.js → chunk-IMK3SJ43.js} +5703 -4343
  89. package/chunks/{chunk-4S4OEQ6U.js → chunk-J6SZID63.js} +2 -2
  90. package/chunks/{chunk-OWSW7EYP.js → chunk-JACAHYEN.js} +7 -7
  91. package/chunks/{chunk-R5RBXLNC.js → chunk-JRIJOZXO.js} +5 -5
  92. package/chunks/{chunk-SQOMTWQT.js → chunk-JSJTZ6GO.js} +4 -4
  93. package/chunks/{chunk-VWOVHOTT.js → chunk-KJZ26VBX.js} +1 -1
  94. package/chunks/{chunk-BFHXDAR7.js → chunk-KKBPOU75.js} +1 -1
  95. package/chunks/{chunk-TGGEZINK.js → chunk-KKRGVSHC.js} +7 -7
  96. package/chunks/{chunk-RK2EE3T7.js → chunk-KPMB4JEZ.js} +4 -4
  97. package/chunks/{chunk-MKVZE4ZJ.js → chunk-KTJFU7RT.js} +3 -2
  98. package/chunks/{chunk-MGSSJT27.js → chunk-L4N6TIP7.js} +5 -3
  99. package/chunks/{chunk-U4AF3QLU.js → chunk-L4OW63GW.js} +8 -8
  100. package/chunks/{chunk-C4CBJQKY.js → chunk-LDUGDB5H.js} +1 -1
  101. package/chunks/{chunk-W5DXUTXD.js → chunk-LDY4J4G6.js} +8 -8
  102. package/chunks/{chunk-GK2H5GRC.js → chunk-LMEIS6WW.js} +16 -6
  103. package/chunks/{chunk-6O5DVH27.js → chunk-M6HMMKVG.js} +1 -1
  104. package/chunks/{chunk-TOGZTG4X.js → chunk-MIA37QO3.js} +2 -2
  105. package/chunks/{chunk-536SWZTA.js → chunk-MV7VUCIG.js} +4 -4
  106. package/chunks/{chunk-T5U6IM4C.js → chunk-MVUQRLOH.js} +3 -3
  107. package/chunks/{chunk-GLWP3FDB.js → chunk-MZSJ43WV.js} +31 -2
  108. package/chunks/{chunk-UGTWD35F.js → chunk-NLREQJFK.js} +1 -1
  109. package/chunks/{chunk-RFUHDCNF.js → chunk-O7VQ3F22.js} +1 -1
  110. package/chunks/{chunk-3RXUYQJI.js → chunk-OIVKILPI.js} +49 -0
  111. package/chunks/{chunk-LBWNSLJK.js → chunk-ONSZH6VM.js} +2 -2
  112. package/chunks/{chunk-4WTAQEHV.js → chunk-OQTXYMKW.js} +3 -3
  113. package/chunks/{chunk-DYA25Y7U.js → chunk-OWMAZHIX.js} +1 -1
  114. package/chunks/{chunk-LAAFLUQV.js → chunk-P74TZRXD.js} +2 -2
  115. package/chunks/{chunk-BOGOR4HB.js → chunk-P7HUJDBZ.js} +7 -7
  116. package/chunks/chunk-PJRW65JO.js +107 -0
  117. package/chunks/{chunk-D7D7RXIJ.js → chunk-PYQADEFD.js} +6 -1
  118. package/chunks/{chunk-WO2B5E5B.js → chunk-Q3JQ7OSU.js} +1 -1
  119. package/chunks/{chunk-3LZKY4V4.js → chunk-QKJT5K4Q.js} +5 -5
  120. package/chunks/{chunk-OXX3FG2N.js → chunk-R2KZWK5Z.js} +3 -3
  121. package/chunks/{chunk-QZKYZCN3.js → chunk-REHWPCG2.js} +3 -3
  122. package/chunks/{chunk-2POQWYM6.js → chunk-RFA6VDCR.js} +3 -3
  123. package/chunks/{chunk-DIT4V3XH.js → chunk-RGTB44BO.js} +1 -1
  124. package/chunks/{chunk-SQC6K5HI.js → chunk-RPWVIXDB.js} +19 -2
  125. package/chunks/{chunk-ODPXHGLL.js → chunk-RZMGG3HP.js} +2 -2
  126. package/chunks/{chunk-2AGOQ7QO.js → chunk-S6HYI3MF.js} +118 -6
  127. package/chunks/chunk-SAH4BD2J.js +92 -0
  128. package/chunks/{chunk-JE44IPH6.js → chunk-SDUDZNF4.js} +2 -2
  129. package/chunks/{chunk-YAVY33G4.js → chunk-SEZ556DZ.js} +1 -1
  130. package/chunks/chunk-SOORFWKY.js +155 -0
  131. package/chunks/{chunk-KHUA3NQV.js → chunk-TAOSTUHI.js} +2 -2
  132. package/chunks/{chunk-VSALQLT7.js → chunk-TSYIQDG7.js} +1 -1
  133. package/chunks/{chunk-ULPQQSDN.js → chunk-TX3KSSDN.js} +3 -3
  134. package/chunks/{chunk-KVUBYJDM.js → chunk-TZEZYNYD.js} +1 -1
  135. package/chunks/{chunk-24ER7UV4.js → chunk-UFALT4LK.js} +1 -1
  136. package/chunks/{chunk-GESMMPAK.js → chunk-UKAYEQDU.js} +91 -63
  137. package/chunks/{chunk-XC2VAFVZ.js → chunk-UVX4Y6IN.js} +1 -1
  138. package/chunks/chunk-VDS2WYM5.js +244 -0
  139. package/chunks/{chunk-DVBEGGLG.js → chunk-VLFX3L3X.js} +10 -9
  140. package/chunks/{chunk-WNU7TZTO.js → chunk-VT3VNFVW.js} +3 -3
  141. package/chunks/{chunk-6WBWIPBF.js → chunk-WAUGQKUU.js} +4 -64
  142. package/chunks/{chunk-URN76TKR.js → chunk-WCG5O7IP.js} +2 -2
  143. package/chunks/{chunk-PX5DNLSA.js → chunk-XCG76UE6.js} +18 -10
  144. package/chunks/{chunk-TSERKWCX.js → chunk-XCWO3SMQ.js} +3 -3
  145. package/chunks/{chunk-5MJGUQU5.js → chunk-XIDHBXUI.js} +3 -3
  146. package/chunks/{chunk-3LGZEYOF.js → chunk-YHEEE624.js} +2 -2
  147. package/chunks/{chunk-SKNE3KQC.js → chunk-Z5ZAWED3.js} +19 -10
  148. package/chunks/{chunk-YMBOEAF4.js → chunk-Z6W3XDLN.js} +1 -1
  149. package/chunks/{chunk-EXCEQD22.js → chunk-ZKUJ4AO7.js} +4 -4
  150. package/chunks/{chunk-RHTTKJTP.js → chunk-ZQGHESAS.js} +1 -1
  151. package/chunks/{chunk-WUC6ZFXO.js → chunk-ZWBUH5UP.js} +1 -1
  152. package/chunks/{computer-use-5HXJ2P4X.js → computer-use-QLJ27OCZ.js} +39 -38
  153. package/chunks/{config-utils-VXD4SPVR.js → config-utils-KIEXWA4F.js} +4 -4
  154. package/chunks/{contextCommand-7BEHRX2H.js → contextCommand-JDTOJRBO.js} +41 -40
  155. package/chunks/{core-runtime-U4VJ5TIV.js → core-runtime-MZIAVYQC.js} +43 -42
  156. package/chunks/{create-sub-session-6EWLAZD5.js → create-sub-session-QIDZUOPU.js} +2 -2
  157. package/chunks/{create-sub-session-QZNQY332.js → create-sub-session-YBBCNSHE.js} +39 -38
  158. package/chunks/{cron-create-CCRIULJE.js → cron-create-VONA5JYY.js} +4 -4
  159. package/chunks/{cron-delete-FCFW6BGP.js → cron-delete-5JXSP2MI.js} +4 -4
  160. package/chunks/{cron-list-QDBVCHRF.js → cron-list-KE4F2CIR.js} +4 -4
  161. package/chunks/{daemon-YI5RY62O.js → daemon-SCTQMM7Z.js} +50 -2
  162. package/chunks/{daemon-status-provider-UJUGTDTL.js → daemon-status-provider-BZ7RD4ZJ.js} +47 -46
  163. package/chunks/{daemon-trust-policy-ZHDD5VYQ.js → daemon-trust-policy-2E4C3M7S.js} +45 -44
  164. package/chunks/{daemon-trust-policy-monitor-5SHYBDGA.js → daemon-trust-policy-monitor-UYLFH6RW.js} +45 -44
  165. package/chunks/{deferred-core-runtime-QWAEBTR5.js → deferred-core-runtime-6XZYMJZB.js} +39 -38
  166. package/chunks/{display-image-GUJA352B.js → display-image-NQRSIBXM.js} +4 -4
  167. package/chunks/{dist-SFQ34F4M.js → dist-26RK5XZO.js} +1 -1
  168. package/chunks/{dist-DPPHJAVL.js → dist-BATY7GI4.js} +187 -6
  169. package/chunks/{dist-A7H2KKUC.js → dist-HIACTZEK.js} +332 -113
  170. package/chunks/{dist-3BMEUGTG.js → dist-IRL7WA5Z.js} +1 -1
  171. package/chunks/{dist-HVBMEYWK.js → dist-KVISB2O2.js} +1 -1
  172. package/chunks/{dist-KS4O2NKE.js → dist-MBF3I5MX.js} +14 -8
  173. package/chunks/{dist-7JGAAQSC.js → dist-RCH3I7SS.js} +2 -2
  174. package/chunks/{dist-C5U4LJKW.js → dist-TUSWNE2I.js} +5 -4
  175. package/chunks/{earlyInputCapture-5BMSGKOI.js → earlyInputCapture-LATQCGDC.js} +40 -39
  176. package/chunks/{edit-IVQQVYYK.js → edit-72DP57CD.js} +39 -38
  177. package/chunks/{enter-worktree-P3DF2N6O.js → enter-worktree-B4FY2ZPP.js} +39 -38
  178. package/chunks/{enterPlanMode-KKTDVLAD.js → enterPlanMode-TQBWGCPL.js} +39 -38
  179. package/chunks/{environment-W5TRDM3G.js → environment-MOGZGZDS.js} +42 -41
  180. package/chunks/{errors-GJJB36IG.js → errors-PGON5GH7.js} +41 -40
  181. package/chunks/{exit-worktree-LV5RLOCU.js → exit-worktree-EYUD4YP2.js} +39 -38
  182. package/chunks/{exitPlanMode-TUGOB2LL.js → exitPlanMode-4Q7BSQXR.js} +39 -38
  183. package/chunks/{fast-path-2FU23PAQ.js → fast-path-WI7D5MER.js} +23 -3
  184. package/chunks/{fast-path-settings-WQJU2LAT.js → fast-path-settings-YBRL24DB.js} +2 -2
  185. package/chunks/{gemini-KDULDQPP.js → gemini-ZXURGM6Y.js} +87 -82
  186. package/chunks/{geminiContentGenerator-LOCFHNVA.js → geminiContentGenerator-EOODO75Y.js} +6 -6
  187. package/chunks/{glob-Z4NQFKWS.js → glob-QNRIUOS6.js} +39 -38
  188. package/chunks/{goal-tools-3AZKX5WQ.js → goal-tools-QSYW65HV.js} +3 -3
  189. package/chunks/{grep-Z67Z7EN6.js → grep-56MTW67B.js} +39 -38
  190. package/chunks/{handleAutoUpdate-DFUZE6I6.js → handleAutoUpdate-XGFIPVT4.js} +43 -42
  191. package/chunks/{i18n-R4FMZ7N2.js → i18n-RZB35L4B.js} +40 -39
  192. package/chunks/{image-gen-4CQJPQP5.js → image-gen-OE2EEKN3.js} +9 -9
  193. package/chunks/{initializer-DK672ZVE.js → initializer-YPVMTMKD.js} +46 -45
  194. package/chunks/{installationInfo-PO4Z3ES7.js → installationInfo-ZTMTMYNW.js} +40 -39
  195. package/chunks/{keychain-token-storage-7BT4TQ2A.js → keychain-token-storage-TVAMTNP7.js} +2 -2
  196. package/chunks/{list-QXQF6C53.js → list-NIW3WID5.js} +48 -47
  197. package/chunks/{list-agents-GC4BRET7.js → list-agents-Z4WABFDZ.js} +2 -2
  198. package/chunks/{loadedSettingsAdapter-4D7GUGW6.js → loadedSettingsAdapter-VSLILTOZ.js} +45 -44
  199. package/chunks/{loggingContentGenerator-2P3MNACM.js → loggingContentGenerator-KFZYVAGV.js} +17 -17
  200. package/chunks/{loop-wakeup-SQQSBMEY.js → loop-wakeup-UZ5RL5Y2.js} +5 -5
  201. package/chunks/{ls-63CC3NNX.js → ls-TVHDGIES.js} +4 -4
  202. package/chunks/{lsp-P6NVJVNT.js → lsp-CVN6OQPI.js} +2 -2
  203. package/chunks/{managed-npm-update-LWVJQTWO.js → managed-npm-update-WHTA2K5V.js} +40 -39
  204. package/chunks/{mcp-GHETAR6V.js → mcp-7KGK3CS3.js} +45 -44
  205. package/chunks/{monitor-4T7W4M6Q.js → monitor-FDWEJQWP.js} +39 -38
  206. package/chunks/nonInteractiveCli-2MVJ6TCS.js +155 -0
  207. package/chunks/{notebook-edit-OC2V7U5D.js → notebook-edit-ZUVK2XWE.js} +47 -38
  208. package/chunks/{openaiContentGenerator-RAJUFWQY.js → openaiContentGenerator-TNLWOPH5.js} +28 -21
  209. package/chunks/{pidfile-HVPYVRLS.js → pidfile-BB6SKPH2.js} +40 -39
  210. package/chunks/{process-registry-2CHQBXH5.js → process-registry-PMJOA5CO.js} +15 -0
  211. package/chunks/{processUtils-VIQ4JHVX.js → processUtils-WKHJOPDH.js} +2 -2
  212. package/chunks/{qwenContentGenerator-2QLCUFNZ.js → qwenContentGenerator-FZS2DYF7.js} +48 -46
  213. package/chunks/{qwenOAuth2-J2X3EN43.js → qwenOAuth2-UYMYRXBB.js} +9 -9
  214. package/chunks/{read-file-ZNAN2B26.js → read-file-FMTE6LPA.js} +10 -10
  215. package/chunks/{read-mcp-resource-RTSSEER5.js → read-mcp-resource-PZ4ZF6YL.js} +2 -2
  216. package/chunks/{record-artifact-E6AWQU2Z.js → record-artifact-P4HFMS7X.js} +3 -3
  217. package/chunks/{resumeHistoryUtils-RCY7AL5Y.js → resumeHistoryUtils-Z34RCZFF.js} +45 -43
  218. package/chunks/{ripGrep-C3KMLZM5.js → ripGrep-DUIYUZGM.js} +39 -38
  219. package/chunks/{run-qwen-serve-3JN75CIQ.js → run-qwen-serve-KOHHR3F4.js} +145 -62
  220. package/chunks/{runtime-VUA4WQYD.js → runtime-K4NTZSAU.js} +50 -49
  221. package/chunks/{scheduler-Z4IBXCOY.js → scheduler-6G6AMURS.js} +39 -38
  222. package/chunks/{sdk-exporters-http-IL2346MJ.js → sdk-exporters-http-KHAB5JSD.js} +2 -2
  223. package/chunks/{sdk-impl-SYKGVWOZ.js → sdk-impl-KD7FSTC3.js} +2 -2
  224. package/chunks/{send-message-TL6FIMMN.js → send-message-CAMSLG2L.js} +6 -5
  225. package/chunks/{serve-67T3P7XI.js → serve-NMG2TM5K.js} +46 -45
  226. package/chunks/{server-46ZO2CLV.js → server-FS7KDELS.js} +679 -360
  227. package/chunks/{session-B4IFAFC4.js → session-XZADUVKJ.js} +82 -81
  228. package/chunks/{settings-AI2BTBOZ.js → settings-G75R6FOA.js} +44 -43
  229. package/chunks/{shell-BKII3B6E.js → shell-3D3PMQHE.js} +39 -38
  230. package/chunks/{skill-6CFOWVGA.js → skill-TSEYMVQ2.js} +14 -14
  231. package/chunks/{skill-settings-6BFQWMW4.js → skill-settings-HJC2CPBJ.js} +44 -43
  232. package/chunks/{spawnChannel-FJXW35U7.js → spawnChannel-YWCN74G5.js} +41 -40
  233. package/chunks/{standalone-update-WVINHRNS.js → standalone-update-HLYOLX6V.js} +41 -40
  234. package/chunks/{startInteractiveUI-YE57CJ57.js → startInteractiveUI-ROUIQ5KU.js} +486 -187
  235. package/chunks/{syntheticOutput-BN7E626U.js → syntheticOutput-PEBJQYJV.js} +3 -3
  236. package/chunks/{task-create-Q727MXHJ.js → task-create-5NWCQSJF.js} +10 -9
  237. package/chunks/{task-list-G6KPQ5JT.js → task-list-53265TRZ.js} +5 -5
  238. package/chunks/{task-stop-TNXRNAL2.js → task-stop-FPCOIRYX.js} +2 -2
  239. package/chunks/{task-update-YB7PXO4R.js → task-update-5HN577LS.js} +10 -9
  240. package/chunks/{team-create-GNC7NFY6.js → team-create-OTP5SSB2.js} +39 -38
  241. package/chunks/{team-delete-GDO7H2T4.js → team-delete-MMQB4OSC.js} +5 -5
  242. package/chunks/{team-plan-approval-ECALJLIO.js → team-plan-approval-TQX5TMXU.js} +39 -38
  243. package/chunks/{terminal-image-renderer-II74TFVW.js → terminal-image-renderer-KF3GKNWW.js} +45 -39
  244. package/chunks/{theme-manager-2MGEDD22.js → theme-manager-XVWAAGAM.js} +40 -39
  245. package/chunks/{todoWrite-MHWHO5UO.js → todoWrite-JGV6VLOX.js} +4 -4
  246. package/chunks/{tool-search-S6LRRACA.js → tool-search-7N4D4O56.js} +14 -13
  247. package/chunks/{total-session-admission-7WVAWQPU.js → total-session-admission-ZQ4VKIRW.js} +43 -42
  248. package/chunks/{trustedFolders-NFS4KHO4.js → trustedFolders-4XYFPWVV.js} +40 -39
  249. package/chunks/{update-relaunch-Q5HLZ6UW.js → update-relaunch-L4GSBLUU.js} +5 -5
  250. package/chunks/{updateCheck-UOVZSTP7.js → updateCheck-PCUTVRFE.js} +42 -41
  251. package/chunks/{useAutoAcceptIndicator-PC6MOJCO.js → useAutoAcceptIndicator-WMXY7MND.js} +47 -46
  252. package/chunks/{validateNonInterActiveAuth-YMQP3ZM7.js → validateNonInterActiveAuth-5S3U2D56.js} +78 -77
  253. package/chunks/{version-T4AQFZJH.js → version-P57IQU2T.js} +1 -1
  254. package/chunks/{web-fetch-JQCJHEEX.js → web-fetch-5ZLLLCDD.js} +13 -13
  255. package/chunks/{web-search-QGZ2KY4G.js → web-search-NELKANTW.js} +10 -10
  256. package/chunks/web-shell-static-O73YPVVC.js +33 -0
  257. package/chunks/{workflow-YIT27YWZ.js → workflow-RXKBF3LO.js} +42 -40
  258. package/chunks/{workspace-providers-status-FIDZQ2PL.js → workspace-providers-status-HAEMNAWC.js} +48 -47
  259. package/chunks/{workspace-registration-store-RCSPE4DU.js → workspace-registration-store-U3U3YM6V.js} +1 -1
  260. package/chunks/{workspace-registry-5PEUCY6E.js → workspace-registry-ZFP33GVB.js} +43 -42
  261. package/chunks/{workspace-service-LANDVPL7.js → workspace-service-QMISJBMA.js} +50 -49
  262. package/chunks/{workspace-skills-status-2IQVJNIN.js → workspace-skills-status-K7EOUGXL.js} +46 -45
  263. package/chunks/{workspace-trust-reconciler-CZPZZCZC.js → workspace-trust-reconciler-BFPKULDZ.js} +50 -49
  264. package/chunks/{write-file-G5VNGCOG.js → write-file-2F76RRFE.js} +39 -38
  265. package/chunks/{zoom-image-6RBLD7X6.js → zoom-image-DPR22XWY.js} +10 -10
  266. package/cli.js +12 -12
  267. package/package.json +3 -3
  268. package/web-shell/assets/{arc-B-Vtkp1W.js → arc-CunFPPcQ.js} +1 -1
  269. package/web-shell/assets/{architectureDiagram-3BPJPVTR-qmTXIj64.js → architectureDiagram-3BPJPVTR-D3SqCgeM.js} +1 -1
  270. package/web-shell/assets/{blockDiagram-GPEHLZMM-ZlnXEtdP.js → blockDiagram-GPEHLZMM-CPRx90S_.js} +1 -1
  271. package/web-shell/assets/{c4Diagram-AAUBKEIU-Wyoirf6Z.js → c4Diagram-AAUBKEIU-CahP9Ue4.js} +1 -1
  272. package/web-shell/assets/channel-zbv7GWAw.js +1 -0
  273. package/web-shell/assets/{chunk-2J33WTMH-WQwbq9d8.js → chunk-2J33WTMH-DckIWZ12.js} +1 -1
  274. package/web-shell/assets/{chunk-4BX2VUAB-DQKnAXC4.js → chunk-4BX2VUAB-D2Kfctyn.js} +1 -1
  275. package/web-shell/assets/{chunk-55IACEB6-DIdgXNcO.js → chunk-55IACEB6-DkI11FTX.js} +1 -1
  276. package/web-shell/assets/{chunk-727SXJPM-CUwGOLEd.js → chunk-727SXJPM-rR-TSCIi.js} +1 -1
  277. package/web-shell/assets/{chunk-AQP2D5EJ-CCBGZFZ4.js → chunk-AQP2D5EJ-DFGKcGRO.js} +1 -1
  278. package/web-shell/assets/{chunk-FMBD7UC4-DMGXProk.js → chunk-FMBD7UC4-CjWqcTPE.js} +1 -1
  279. package/web-shell/assets/{chunk-ND2GUHAM-yejcFqsh.js → chunk-ND2GUHAM-RXe-87UV.js} +1 -1
  280. package/web-shell/assets/{chunk-QZHKN3VN-DxCyqTf7.js → chunk-QZHKN3VN-Dz0c_Yrn.js} +1 -1
  281. package/web-shell/assets/classDiagram-4FO5ZUOK-DSjLkJJZ.js +1 -0
  282. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DSjLkJJZ.js +1 -0
  283. package/web-shell/assets/{cose-bilkent-S5V4N54A-DOrF3cg_.js → cose-bilkent-S5V4N54A-ZHF0-jvV.js} +1 -1
  284. package/web-shell/assets/{dagre-BM42HDAG-Be6CdYQ_.js → dagre-BM42HDAG-7Umz_ygJ.js} +1 -1
  285. package/web-shell/assets/{diagram-2AECGRRQ-B_Rjsft2.js → diagram-2AECGRRQ-DomN8nxq.js} +1 -1
  286. package/web-shell/assets/{diagram-5GNKFQAL-BvQbKSm1.js → diagram-5GNKFQAL-eebvj2OL.js} +1 -1
  287. package/web-shell/assets/{diagram-KO2AKTUF-BsdmMdpS.js → diagram-KO2AKTUF-IR1mmn9d.js} +1 -1
  288. package/web-shell/assets/{diagram-LMA3HP47-CrQlBaNr.js → diagram-LMA3HP47-CKysx5KF.js} +1 -1
  289. package/web-shell/assets/{diagram-OG6HWLK6-aB1MD_DL.js → diagram-OG6HWLK6-cBy5puHn.js} +1 -1
  290. package/web-shell/assets/{erDiagram-TEJ5UH35-F-eUUn9n.js → erDiagram-TEJ5UH35-B5RJagPG.js} +1 -1
  291. package/web-shell/assets/{flowDiagram-I6XJVG4X-DY_d8lUK.js → flowDiagram-I6XJVG4X-CfHgDmPg.js} +1 -1
  292. package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dqu7KBPg.js → ganttDiagram-6RSMTGT7-DUfFF5nb.js} +1 -1
  293. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-2IkU_VEj.js → gitGraphDiagram-PVQCEYII-M9dt57k5.js} +1 -1
  294. package/web-shell/assets/{index-QQlUCJGg.css → index-B8e-CkuC.css} +2 -2
  295. package/web-shell/assets/{index-BuSbqggh.js → index-CKjO4myk.js} +1 -1
  296. package/web-shell/assets/index-Dc-fTO0V.js +1768 -0
  297. package/web-shell/assets/{infoDiagram-5YYISTIA-C4orwzPw.js → infoDiagram-5YYISTIA-CTKMmIro.js} +1 -1
  298. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-fXUEfef_.js → ishikawaDiagram-YF4QCWOH-DJIJDP4s.js} +1 -1
  299. package/web-shell/assets/{journeyDiagram-JHISSGLW-Bs0I1_J5.js → journeyDiagram-JHISSGLW-DgRnvn6S.js} +1 -1
  300. package/web-shell/assets/{kanban-definition-UN3LZRKU-BPRj1dw_.js → kanban-definition-UN3LZRKU-VUwO8yrg.js} +1 -1
  301. package/web-shell/assets/{linear-DFS6ZDpW.js → linear-BCvgV5I_.js} +1 -1
  302. package/web-shell/assets/{mermaid.core-CZxjWMaO.js → mermaid.core-mv_kVV6q.js} +5 -5
  303. package/web-shell/assets/{mindmap-definition-RKZ34NQL-Dsr3PmNs.js → mindmap-definition-RKZ34NQL-sfnjMlOd.js} +1 -1
  304. package/web-shell/assets/{pieDiagram-4H26LBE5-D5Ngpz5Y.js → pieDiagram-4H26LBE5-BlhICse4.js} +1 -1
  305. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-WJK9I25z.js → quadrantDiagram-W4KKPZXB-BgTQzwen.js} +1 -1
  306. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CmrYcwOH.js → requirementDiagram-4Y6WPE33-CZ-FTrrN.js} +1 -1
  307. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-7SjCc4Mv.js → sankeyDiagram-5OEKKPKP-G5Wp_jn3.js} +1 -1
  308. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Dl9E0IRM.js → sequenceDiagram-3UESZ5HK-C8MKZ3i1.js} +1 -1
  309. package/web-shell/assets/{stateDiagram-AJRCARHV-CRRio7yV.js → stateDiagram-AJRCARHV-Bo0ZDm7y.js} +1 -1
  310. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-31TSCPcH.js +1 -0
  311. package/web-shell/assets/{timeline-definition-PNZ67QCA-DVyXjjfq.js → timeline-definition-PNZ67QCA-M3L9E01f.js} +1 -1
  312. package/web-shell/assets/{vennDiagram-CIIHVFJN-Nb2Lckzq.js → vennDiagram-CIIHVFJN-DD4eHCrm.js} +1 -1
  313. package/web-shell/assets/{wardley-L42UT6IY-DuL_otIP.js → wardley-L42UT6IY-DNEL_3g4.js} +1 -1
  314. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DVI9Q4Aa.js → wardleyDiagram-YWT4CUSO-q484OoqI.js} +1 -1
  315. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BNjAm7KD.js → xychartDiagram-2RQKCTM6-4mcNt1Yg.js} +1 -1
  316. package/web-shell/index.html +2 -2
  317. package/chunks/chunk-EMYZIABH.js +0 -81
  318. package/chunks/nonInteractiveCli-P4UKCJFM.js +0 -154
  319. package/web-shell/assets/channel-DXaHnfjS.js +0 -1
  320. package/web-shell/assets/classDiagram-4FO5ZUOK-BigU82A0.js +0 -1
  321. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BigU82A0.js +0 -1
  322. package/web-shell/assets/index-DrfC2e9s.js +0 -1768
  323. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-1atT7XaU.js +0 -1
@@ -3,20 +3,20 @@
3
3
  import {
4
4
  ChannelWorkerReconcileError,
5
5
  createChannelWorkerGroup
6
- } from "./chunk-S7CV4KO6.js";
6
+ } from "./chunk-AB4A73VL.js";
7
7
  import "./chunk-R574ATRM.js";
8
8
  import "./chunk-J26HHFI5.js";
9
9
  import "./chunk-6PLDPT2C.js";
10
- import "./chunk-MKVZE4ZJ.js";
10
+ import "./chunk-KTJFU7RT.js";
11
11
  import "./chunk-FYJ7W2PI.js";
12
12
  import "./chunk-YP5KH5Y7.js";
13
- import "./chunk-24ER7UV4.js";
13
+ import "./chunk-UFALT4LK.js";
14
14
  import "./chunk-ALMR3E6Q.js";
15
15
  import "./chunk-HIBNSEJE.js";
16
16
  import "./chunk-BKHCW2BI.js";
17
17
  import "./chunk-M5GB774H.js";
18
18
  import "./chunk-5HBA2Z7V.js";
19
- import "./chunk-DIEFUBV6.js";
19
+ import "./chunk-DIWZNWZT.js";
20
20
  import "./chunk-UDXSXLER.js";
21
21
  import "./chunk-TWPJO254.js";
22
22
  import "./chunk-H6XPXXMH.js";
@@ -2,26 +2,26 @@
2
2
  "use strict";
3
3
  import {
4
4
  ChannelWorkerReconcileError
5
- } from "./chunk-S7CV4KO6.js";
5
+ } from "./chunk-AB4A73VL.js";
6
6
  import "./chunk-R574ATRM.js";
7
7
  import "./chunk-J26HHFI5.js";
8
8
  import "./chunk-6PLDPT2C.js";
9
9
  import {
10
10
  ChannelWorkerStartupError,
11
11
  ChannelWorkerStopError
12
- } from "./chunk-MKVZE4ZJ.js";
12
+ } from "./chunk-KTJFU7RT.js";
13
13
  import "./chunk-FYJ7W2PI.js";
14
14
  import {
15
15
  ChannelDeliveryError,
16
16
  ChannelWebhookEnqueueError
17
17
  } from "./chunk-YP5KH5Y7.js";
18
- import "./chunk-24ER7UV4.js";
18
+ import "./chunk-UFALT4LK.js";
19
19
  import "./chunk-ALMR3E6Q.js";
20
20
  import "./chunk-HIBNSEJE.js";
21
21
  import "./chunk-BKHCW2BI.js";
22
22
  import "./chunk-M5GB774H.js";
23
23
  import "./chunk-5HBA2Z7V.js";
24
- import "./chunk-DIEFUBV6.js";
24
+ import "./chunk-DIWZNWZT.js";
25
25
  import "./chunk-UDXSXLER.js";
26
26
  import "./chunk-TWPJO254.js";
27
27
  import "./chunk-H6XPXXMH.js";
@@ -4,16 +4,16 @@ import {
4
4
  ChannelWorkerStartupError,
5
5
  ChannelWorkerStopError,
6
6
  createChannelWorkerSupervisor
7
- } from "./chunk-MKVZE4ZJ.js";
7
+ } from "./chunk-KTJFU7RT.js";
8
8
  import "./chunk-FYJ7W2PI.js";
9
9
  import "./chunk-YP5KH5Y7.js";
10
- import "./chunk-24ER7UV4.js";
10
+ import "./chunk-UFALT4LK.js";
11
11
  import "./chunk-ALMR3E6Q.js";
12
12
  import "./chunk-HIBNSEJE.js";
13
13
  import "./chunk-BKHCW2BI.js";
14
14
  import "./chunk-M5GB774H.js";
15
15
  import "./chunk-5HBA2Z7V.js";
16
- import "./chunk-DIEFUBV6.js";
16
+ import "./chunk-DIWZNWZT.js";
17
17
  import "./chunk-UDXSXLER.js";
18
18
  import "./chunk-TWPJO254.js";
19
19
  import "./chunk-H6XPXXMH.js";
@@ -5,17 +5,17 @@ import {
5
5
  } from "./chunk-NAVJD2PQ.js";
6
6
  import {
7
7
  formatFetchErrorForUser
8
- } from "./chunk-QYPT3QUD.js";
8
+ } from "./chunk-3ULCB3NE.js";
9
9
  import {
10
10
  combineAbortSignals
11
11
  } from "./chunk-DJ2GSRLV.js";
12
12
  import {
13
13
  atomicWriteFile
14
- } from "./chunk-UH7Z7Y45.js";
14
+ } from "./chunk-FOGU3LJX.js";
15
15
  import {
16
16
  Storage,
17
17
  createDebugLogger
18
- } from "./chunk-3RXUYQJI.js";
18
+ } from "./chunk-OIVKILPI.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  getCliVersion
5
- } from "./chunk-YMBOEAF4.js";
5
+ } from "./chunk-Z6W3XDLN.js";
6
6
  import {
7
7
  IdeClient,
8
8
  formatMemoryUsage
9
- } from "./chunk-A4VTILZT.js";
9
+ } from "./chunk-BFSQBXHV.js";
10
10
  import {
11
11
  createDebugLogger
12
- } from "./chunk-3RXUYQJI.js";
12
+ } from "./chunk-OIVKILPI.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";
@@ -25,7 +25,7 @@ import { execFile } from "node:child_process";
25
25
 
26
26
  // packages/cli/src/generated/git-commit.ts
27
27
  init_esbuild_shims();
28
- var GIT_COMMIT_INFO = "ed1ae7d12";
28
+ var GIT_COMMIT_INFO = "b127bd632";
29
29
 
30
30
  // packages/cli/src/utils/systemInfo.ts
31
31
  var debugLogger = createDebugLogger("STATUS");
@@ -19,15 +19,15 @@ import {
19
19
  taskHasLegacyCondition,
20
20
  taskHasLegacyRunMode,
21
21
  updateCronTasks
22
- } from "./chunk-MOHAWIAW.js";
22
+ } from "./chunk-GNPNYXJB.js";
23
23
  import {
24
24
  ToolNames
25
- } from "./chunk-D7D7RXIJ.js";
25
+ } from "./chunk-PYQADEFD.js";
26
26
  import {
27
27
  Storage,
28
28
  createDebugLogger,
29
29
  getProjectHash
30
- } from "./chunk-3RXUYQJI.js";
30
+ } from "./chunk-OIVKILPI.js";
31
31
  import {
32
32
  init_esbuild_shims
33
33
  } from "./chunk-5O2XNYP6.js";
@@ -10,19 +10,19 @@ import {
10
10
  } from "./chunk-MR3PXB6E.js";
11
11
  import {
12
12
  ideContextStore
13
- } from "./chunk-A4VTILZT.js";
13
+ } from "./chunk-BFSQBXHV.js";
14
14
  import {
15
15
  require_proper_lockfile
16
16
  } from "./chunk-KRXPRVGL.js";
17
17
  import {
18
18
  atomicWriteFileSync
19
- } from "./chunk-UH7Z7Y45.js";
19
+ } from "./chunk-FOGU3LJX.js";
20
20
  import {
21
21
  FatalConfigError,
22
22
  Storage,
23
23
  createDebugLogger,
24
24
  getErrorMessage
25
- } from "./chunk-3RXUYQJI.js";
25
+ } from "./chunk-OIVKILPI.js";
26
26
  import {
27
27
  writeStderrLine
28
28
  } from "./chunk-KGJGEEVR.js";
@@ -1,12 +1,13 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
+ UNSAFE_OBJECT_KEYS,
4
5
  getPlugin
5
- } from "./chunk-EMYZIABH.js";
6
+ } from "./chunk-VDS2WYM5.js";
6
7
  import {
7
8
  loadSettings,
8
9
  saveSettings
9
- } from "./chunk-PPUOYL77.js";
10
+ } from "./chunk-77WOUGCA.js";
10
11
  import {
11
12
  init_esbuild_shims
12
13
  } from "./chunk-5O2XNYP6.js";
@@ -50,7 +51,6 @@ function invalidConfig(message) {
50
51
  return new ChannelSettingsError("channel_settings_invalid_config", message);
51
52
  }
52
53
  __name(invalidConfig, "invalidConfig");
53
- var UNSAFE_OBJECT_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
54
54
  function assertSafeChannelName(name) {
55
55
  if (UNSAFE_OBJECT_KEYS.has(name)) {
56
56
  throw new ChannelSettingsError(
@@ -108,7 +108,7 @@ function assertSharedField(key, value) {
108
108
  const enumValues = {
109
109
  senderPolicy: /* @__PURE__ */ new Set(["allowlist", "pairing", "open"]),
110
110
  dmPolicy: /* @__PURE__ */ new Set(["open", "disabled"]),
111
- groupPolicy: /* @__PURE__ */ new Set(["disabled", "allowlist", "open"]),
111
+ groupPolicy: /* @__PURE__ */ new Set(["disabled", "allowlist", "pairing", "open"]),
112
112
  sessionScope: /* @__PURE__ */ new Set(["user", "thread", "single"]),
113
113
  dispatchMode: /* @__PURE__ */ new Set(["steer", "followup", "collect"]),
114
114
  blockStreaming: /* @__PURE__ */ new Set(["on", "off"])
@@ -168,40 +168,101 @@ function assertSharedField(key, value) {
168
168
  return false;
169
169
  }
170
170
  __name(assertSharedField, "assertSharedField");
171
- function assertDescriptorValue(field, value) {
172
- const invalidEnvironment = typeof value === "string" && isEnvironmentReference(value) && field.envResolvable !== true;
171
+ function containsUnsafeObjectKey(value) {
172
+ if (Array.isArray(value)) {
173
+ return value.some((item) => containsUnsafeObjectKey(item));
174
+ }
175
+ if (!isRecord(value)) return false;
176
+ return Object.entries(value).some(
177
+ ([key, nested]) => UNSAFE_OBJECT_KEYS.has(key) || containsUnsafeObjectKey(nested)
178
+ );
179
+ }
180
+ __name(containsUnsafeObjectKey, "containsUnsafeObjectKey");
181
+ function assertDescriptorValue(field, value, path = field.key, previous) {
182
+ if (field.kind === "object") {
183
+ if (isDeepStrictEqual(previous, value) && !containsUnsafeObjectKey(value)) {
184
+ return;
185
+ }
186
+ if (!isRecord(value)) {
187
+ throw invalidConfig(`Channel field "${path}" has an invalid value.`);
188
+ }
189
+ const previousRecord = isRecord(previous) ? previous : {};
190
+ const properties = new Map(
191
+ field.properties.map((property) => [property.key, property])
192
+ );
193
+ for (const [key, nestedValue] of Object.entries(value)) {
194
+ const property = properties.get(key);
195
+ if (!property) {
196
+ assertPreservedUnknownField(path, key, nestedValue, previousRecord);
197
+ continue;
198
+ }
199
+ assertDescriptorValue(
200
+ property,
201
+ nestedValue,
202
+ `${path}.${key}`,
203
+ Object.hasOwn(previousRecord, key) ? previousRecord[key] : void 0
204
+ );
205
+ }
206
+ assertRequiredFields(field.properties, value, path);
207
+ return;
208
+ }
209
+ const invalidEnvironment = typeof value === "string" && isEnvironmentReference(value) && !field.envResolvable;
173
210
  if (invalidEnvironment) {
174
211
  throw invalidConfig(
175
- `Channel field "${field.key}" does not support environment references.`
212
+ `Channel field "${path}" does not support environment references.`
176
213
  );
177
214
  }
178
- const valid = (field.kind === "string" || field.kind === "secret") && typeof value === "string" && value.length > 0 || field.kind === "boolean" && typeof value === "boolean" || field.kind === "number" && typeof value === "number" && Number.isFinite(value) || field.kind === "enum" && typeof value === "string" && field.options?.some((option) => option.value === value) === true || field.kind === "string-list" && Array.isArray(value) && value.every((item) => typeof item === "string") || field.kind === "record" && isRecord(value) && Object.values(value).every((v) => typeof v === "string");
215
+ const valid = (field.kind === "string" || field.kind === "secret") && typeof value === "string" && value.length > 0 || field.kind === "boolean" && typeof value === "boolean" || field.kind === "number" && typeof value === "number" && Number.isFinite(value) && (field.exclusiveMinimum === void 0 || value > field.exclusiveMinimum) || field.kind === "enum" && typeof value === "string" && field.options?.some((option) => option.value === value) === true || field.kind === "string-list" && Array.isArray(value) && value.every((item) => typeof item === "string") || field.kind === "record" && isRecord(value) && Object.values(value).every((v) => typeof v === "string") && !containsUnsafeObjectKey(value);
179
216
  if (!valid) {
180
- throw invalidConfig(`Channel field "${field.key}" has an invalid value.`);
217
+ throw invalidConfig(`Channel field "${path}" has an invalid value.`);
181
218
  }
182
219
  }
183
220
  __name(assertDescriptorValue, "assertDescriptorValue");
221
+ function assertRequiredFields(fields, values, path) {
222
+ for (const field of fields) {
223
+ if (!field.required) continue;
224
+ const value = Object.hasOwn(values, field.key) ? values[field.key] : void 0;
225
+ if (value === void 0 || value === null || value === "") {
226
+ const fieldPath = path ? `${path}.${field.key}` : field.key;
227
+ throw invalidConfig(`Channel field "${fieldPath}" is required.`);
228
+ }
229
+ }
230
+ }
231
+ __name(assertRequiredFields, "assertRequiredFields");
232
+ function assertPreservedUnknownField(path, key, value, previous) {
233
+ const fieldPath = path ? `${path}.${key}` : key;
234
+ if (UNSAFE_OBJECT_KEYS.has(key)) {
235
+ throw invalidConfig(`Channel field "${fieldPath}" is not manageable.`);
236
+ }
237
+ if (containsUnsafeObjectKey(value)) {
238
+ throw invalidConfig(
239
+ `Channel field "${fieldPath}" cannot use a reserved key.`
240
+ );
241
+ }
242
+ if (Object.hasOwn(previous, key) && isDeepStrictEqual(previous[key], value)) {
243
+ return;
244
+ }
245
+ throw invalidConfig(`Channel field "${fieldPath}" is not manageable.`);
246
+ }
247
+ __name(assertPreservedUnknownField, "assertPreservedUnknownField");
184
248
  function assertManagedConfig(config, previous, fields) {
185
249
  const descriptorFields = new Map(fields.map((field) => [field.key, field]));
186
250
  for (const [key, value] of Object.entries(config)) {
187
251
  if (key === "type") continue;
188
252
  const field = descriptorFields.get(key);
189
253
  if (field) {
190
- assertDescriptorValue(field, value);
254
+ assertDescriptorValue(
255
+ field,
256
+ value,
257
+ field.key,
258
+ Object.hasOwn(previous, key) ? previous[key] : void 0
259
+ );
191
260
  continue;
192
261
  }
193
262
  if (assertSharedField(key, value)) continue;
194
- if (!Object.hasOwn(previous, key) || !isDeepStrictEqual(previous[key], value)) {
195
- throw invalidConfig(`Channel field "${key}" is not manageable.`);
196
- }
197
- }
198
- for (const field of fields) {
199
- if (!field.required) continue;
200
- const value = config[field.key];
201
- if (value === void 0 || value === null || value === "") {
202
- throw invalidConfig(`Channel field "${field.key}" is required.`);
203
- }
263
+ assertPreservedUnknownField(void 0, key, value, previous);
204
264
  }
265
+ assertRequiredFields(fields, config);
205
266
  }
206
267
  __name(assertManagedConfig, "assertManagedConfig");
207
268
  function validateSecretUpdate(update) {
@@ -294,9 +355,22 @@ var WorkspaceChannelSettingsStore = class {
294
355
  if (value !== void 0) nextConfig[key] = value;
295
356
  }
296
357
  assertManagedConfig(nextConfig, previous, plugin.management.fields);
297
- const crossFieldError = plugin.management.validateConfig?.(nextConfig);
358
+ let crossFieldError;
359
+ try {
360
+ crossFieldError = plugin.management.validateConfig?.(nextConfig);
361
+ if (crossFieldError instanceof Promise) {
362
+ void crossFieldError.catch(() => {
363
+ });
364
+ }
365
+ } catch (error) {
366
+ throw invalidConfig(
367
+ `Channel validateConfig failed: ${error instanceof Error ? error.message : String(error)}`
368
+ );
369
+ }
298
370
  if (crossFieldError !== void 0) {
299
- throw invalidConfig(crossFieldError);
371
+ throw invalidConfig(
372
+ typeof crossFieldError === "string" ? crossFieldError : "Channel validateConfig must return a string error message."
373
+ );
300
374
  }
301
375
  const channels = { ...current.channels, [name]: nextConfig };
302
376
  const workspaceFile = loadSettings(this.workspaceCwd, {
@@ -593,8 +593,7 @@ function reduceGoalControl(current, transition) {
593
593
  return assertNever(request, snapshotOf(current));
594
594
  }
595
595
  return transitionGoal(current, transition.now, {
596
- status: "active",
597
- turnCount: 0
596
+ status: "active"
598
597
  });
599
598
  }
600
599
  __name(reduceGoalControl, "reduceGoalControl");
@@ -864,7 +863,6 @@ __name(createMigratedGoalState, "createMigratedGoalState");
864
863
  // packages/core/src/goals/goal-runtime.ts
865
864
  var GOAL_RUNTIME_DISPOSED_MESSAGE = "Goal runtime has been disposed";
866
865
  var STALE_GOAL_TURN_MESSAGE = "Goal turn permit is no longer valid";
867
- var MAX_GOAL_CONTINUATION_TURNS = 50;
868
866
  var GoalPersistenceUnavailableError = class extends Error {
869
867
  static {
870
868
  __name(this, "GoalPersistenceUnavailableError");
@@ -1002,35 +1000,6 @@ function createGoalRuntime(options) {
1002
1000
  if (snapshot.goal?.status !== "active" || currentPermit || pendingProposal || verificationAttempt) {
1003
1001
  return;
1004
1002
  }
1005
- if (snapshot.goal.turnCount >= MAX_GOAL_CONTINUATION_TURNS) {
1006
- const budgetGoalId = snapshot.goal.goalId;
1007
- const budgetRevision = snapshot.goal.revision;
1008
- void enqueue(async () => {
1009
- if (snapshot.goal?.status !== "active" || snapshot.goal.goalId !== budgetGoalId || snapshot.goal.revision !== budgetRevision)
1010
- return;
1011
- const now = Date.now();
1012
- const reason = `Goal exceeded the ${MAX_GOAL_CONTINUATION_TURNS}-turn continuation budget`;
1013
- const limitedSnapshot = {
1014
- v: GOAL_STATE_VERSION,
1015
- goal: {
1016
- ...snapshot.goal,
1017
- status: "usage_limited",
1018
- activeTimeMs: elapsedActiveTime(snapshot.goal, now),
1019
- updatedAt: now,
1020
- lastReason: reason
1021
- },
1022
- activity: "idle"
1023
- };
1024
- await options.journal.recordGoalState(randomUUID(), {
1025
- v: GOAL_STATE_VERSION,
1026
- cause: "usage_limited",
1027
- snapshot: limitedSnapshot
1028
- });
1029
- snapshot = structuredClone(limitedSnapshot);
1030
- broadcast("usage_limited");
1031
- });
1032
- return;
1033
- }
1034
1003
  continuationQueued = true;
1035
1004
  flushContinuation(cause);
1036
1005
  }, "queueContinuation");
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  delay
5
- } from "./chunk-QMBEW7EW.js";
5
+ } from "./chunk-BGG4MBYD.js";
6
6
  import {
7
7
  isTlsVerificationDisabled
8
- } from "./chunk-BFHXDAR7.js";
8
+ } from "./chunk-KKBPOU75.js";
9
9
  import {
10
10
  getErrorMessage
11
- } from "./chunk-3RXUYQJI.js";
11
+ } from "./chunk-OIVKILPI.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getEffectiveSupportedModes
5
- } from "./chunk-TOGZTG4X.js";
5
+ } from "./chunk-MIA37QO3.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  loadSettings
5
- } from "./chunk-PPUOYL77.js";
5
+ } from "./chunk-77WOUGCA.js";
6
6
  import {
7
7
  getCurrentLanguage
8
- } from "./chunk-KHUA3NQV.js";
8
+ } from "./chunk-TAOSTUHI.js";
9
9
  import {
10
10
  isWorkspaceTrusted
11
- } from "./chunk-ACZRB7AD.js";
11
+ } from "./chunk-3ARO4N5G.js";
12
12
  import {
13
13
  require_strip_json_comments
14
14
  } from "./chunk-ALGGS7UH.js";
@@ -21,15 +21,16 @@ import {
21
21
  createTransport,
22
22
  hashMcpServerConfig,
23
23
  isGatedMcpScope,
24
- normalizeClaudeMcpServer
25
- } from "./chunk-A4VTILZT.js";
24
+ normalizeClaudeMcpServer,
25
+ runWithTimeout
26
+ } from "./chunk-BFSQBXHV.js";
26
27
  import {
27
28
  atomicWriteFile
28
- } from "./chunk-UH7Z7Y45.js";
29
+ } from "./chunk-FOGU3LJX.js";
29
30
  import {
30
31
  Storage,
31
32
  getErrorMessage
32
- } from "./chunk-3RXUYQJI.js";
33
+ } from "./chunk-OIVKILPI.js";
33
34
  import {
34
35
  writeStderrLine,
35
36
  writeStdoutLine
@@ -556,6 +557,7 @@ var COLOR_GREEN = "\x1B[32m";
556
557
  var COLOR_YELLOW = "\x1B[33m";
557
558
  var COLOR_RED = "\x1B[31m";
558
559
  var RESET_COLOR = "\x1B[0m";
560
+ var MCP_CONNECT_TIMEOUT_MS = 5e3;
559
561
  async function getMcpServersFromConfig() {
560
562
  const settings = loadSettings();
561
563
  const extensionManager = new ExtensionManager({
@@ -597,16 +599,23 @@ async function testMCPConnection(serverName, config) {
597
599
  transport = await createTransport(serverName, config, false);
598
600
  } catch (_error) {
599
601
  await client.close();
600
- return "disconnected" /* DISCONNECTED */;
602
+ return { status: "disconnected" /* DISCONNECTED */, timedOut: false };
601
603
  }
602
604
  try {
603
- await client.connect(transport, { timeout: 5e3 });
605
+ await runWithTimeout(
606
+ client.connect(transport, { timeout: MCP_CONNECT_TIMEOUT_MS }),
607
+ MCP_CONNECT_TIMEOUT_MS,
608
+ `MCP connection for ${serverName}`
609
+ );
604
610
  await client.ping();
605
611
  await client.close();
606
- return "connected" /* CONNECTED */;
607
- } catch (_error) {
612
+ return { status: "connected" /* CONNECTED */, timedOut: false };
613
+ } catch (error) {
608
614
  await transport.close();
609
- return "disconnected" /* DISCONNECTED */;
615
+ return {
616
+ status: "disconnected" /* DISCONNECTED */,
617
+ timedOut: error instanceof Error && error.message.startsWith("Timed out after ")
618
+ };
610
619
  }
611
620
  }
612
621
  __name(testMCPConnection, "testMCPConnection");
@@ -645,7 +654,7 @@ async function listMcpServers() {
645
654
  continue;
646
655
  }
647
656
  }
648
- const status = await getServerStatus(serverName, server);
657
+ const { status, timedOut } = await getServerStatus(serverName, server);
649
658
  let statusIndicator = "";
650
659
  let statusText = "";
651
660
  switch (status) {
@@ -660,7 +669,7 @@ async function listMcpServers() {
660
669
  case "disconnected" /* DISCONNECTED */:
661
670
  default:
662
671
  statusIndicator = COLOR_RED + "\u2717" + RESET_COLOR;
663
- statusText = "Disconnected";
672
+ statusText = timedOut ? `Disconnected (timed out after ${MCP_CONNECT_TIMEOUT_MS}ms)` : "Disconnected";
664
673
  break;
665
674
  }
666
675
  writeStdoutLine(`${statusIndicator} ${serverInfo} - ${statusText}`);
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  theme
5
- } from "./chunk-U25CMJYY.js";
5
+ } from "./chunk-EKPKKXY2.js";
6
6
  import {
7
7
  require_jsx_runtime
8
8
  } from "./chunk-SV5PQVQE.js";
@@ -14,10 +14,14 @@ import {
14
14
  import {
15
15
  require_react
16
16
  } from "./chunk-5QWWOFGG.js";
17
+ import {
18
+ collectInlineImages,
19
+ extractInlineContentRuns
20
+ } from "./chunk-PJRW65JO.js";
17
21
  import {
18
22
  formatHistoryGapNotice,
19
23
  indexGapsByChild
20
- } from "./chunk-RFUHDCNF.js";
24
+ } from "./chunk-O7VQ3F22.js";
21
25
  import {
22
26
  stringWidth
23
27
  } from "./chunk-2MIN6GRR.js";
@@ -29,21 +33,21 @@ import {
29
33
  } from "./chunk-3SH53ANB.js";
30
34
  import {
31
35
  t
32
- } from "./chunk-KHUA3NQV.js";
36
+ } from "./chunk-TAOSTUHI.js";
33
37
  import {
34
38
  getToolResponseDisplayText,
35
39
  stripTrailingUserPromptSubmitContextPart
36
- } from "./chunk-A4VTILZT.js";
40
+ } from "./chunk-BFSQBXHV.js";
37
41
  import {
38
42
  stripAnsi
39
43
  } from "./chunk-TWPJO254.js";
40
44
  import {
41
45
  GoalPersistenceUnavailableError,
42
46
  parseGoalStateRecordPayloadV2
43
- } from "./chunk-MBEMTXQT.js";
47
+ } from "./chunk-3K7FH2KQ.js";
44
48
  import {
45
49
  ToolDisplayNames
46
- } from "./chunk-D7D7RXIJ.js";
50
+ } from "./chunk-PYQADEFD.js";
47
51
  import {
48
52
  init_esbuild_shims
49
53
  } from "./chunk-5O2XNYP6.js";
@@ -3183,7 +3187,7 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3183
3187
  case "assistant": {
3184
3188
  const parts = record.message?.parts;
3185
3189
  const thoughtText = !config ? extractThoughtTextFromParts(parts) : "";
3186
- const text = extractTextFromParts(parts);
3190
+ const displayRuns = extractInlineContentRuns(parts, "\n");
3187
3191
  const functionCalls = extractFunctionCalls(parts);
3188
3192
  if (thoughtText) {
3189
3193
  if (currentToolGroup.length > 0) {
@@ -3195,7 +3199,7 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3195
3199
  }
3196
3200
  items.push({ type: "gemini_thought", text: thoughtText });
3197
3201
  }
3198
- if (text) {
3202
+ if (displayRuns.length > 0) {
3199
3203
  if (currentToolGroup.length > 0) {
3200
3204
  items.push({
3201
3205
  type: "tool_group",
@@ -3203,11 +3207,27 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3203
3207
  });
3204
3208
  currentToolGroup = [];
3205
3209
  }
3206
- items.push({
3207
- type: "gemini",
3208
- text,
3209
- timestamp: new Date(record.timestamp).getTime()
3210
- });
3210
+ for (const [index, run] of displayRuns.entries()) {
3211
+ const type = index === 0 ? "gemini" : "gemini_content";
3212
+ const timestamp = index === 0 ? { timestamp: new Date(record.timestamp).getTime() } : {};
3213
+ if (run.kind === "text") {
3214
+ items.push({ type, text: run.text, ...timestamp });
3215
+ } else if (run.kind === "image") {
3216
+ items.push({
3217
+ type,
3218
+ text: "",
3219
+ images: [run.image],
3220
+ ...timestamp
3221
+ });
3222
+ } else {
3223
+ items.push({
3224
+ type,
3225
+ text: "",
3226
+ omittedImageCount: run.count,
3227
+ ...timestamp
3228
+ });
3229
+ }
3230
+ }
3211
3231
  }
3212
3232
  for (const fc of functionCalls) {
3213
3233
  const tool = getTool(config, fc.name);
@@ -3229,6 +3249,7 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3229
3249
  const callId = record.toolCallResult.callId;
3230
3250
  const toolCall = currentToolGroup.find((t2) => t2.callId === callId);
3231
3251
  if (toolCall) {
3252
+ const responseParts = record.toolCallResult.responseParts ?? record.message?.parts;
3232
3253
  const rawDisplay = record.toolCallResult.resultDisplay;
3233
3254
  toolCall.resultDisplay = rawDisplay;
3234
3255
  if (record.toolCallResult.visionBridgeNotice !== void 0) {
@@ -3236,10 +3257,15 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3236
3257
  }
3237
3258
  const rawStatus = record.toolCallResult["status"];
3238
3259
  toolCall.status = rawStatus === "error" ? "Error" /* Error */ : "Success" /* Success */;
3260
+ const { images, omittedImageCount } = collectInlineImages(responseParts);
3261
+ if (images.length > 0) {
3262
+ toolCall.images = images;
3263
+ }
3264
+ if (omittedImageCount > 0) {
3265
+ toolCall.omittedImageCount = omittedImageCount;
3266
+ }
3239
3267
  if (toolCall.status === "Success" /* Success */ && isCollapsibleTool(toolCall.name)) {
3240
- toolCall.detailedDisplay = getToolResponseDisplayText(
3241
- record.toolCallResult.responseParts ?? record.message?.parts
3242
- );
3268
+ toolCall.detailedDisplay = getToolResponseDisplayText(responseParts);
3243
3269
  }
3244
3270
  }
3245
3271
  pendingToolCalls.delete(callId || "");
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  functionResponsePartsToString
5
- } from "./chunk-GESMMPAK.js";
5
+ } from "./chunk-UKAYEQDU.js";
6
6
  import {
7
7
  parseAndFormatApiError
8
- } from "./chunk-A4VTILZT.js";
8
+ } from "./chunk-BFSQBXHV.js";
9
9
  import {
10
10
  formatVisionBridgeNoticeDisplay,
11
11
  isVisionBridgeNoticeDisplay
12
- } from "./chunk-PX5DNLSA.js";
12
+ } from "./chunk-XCG76UE6.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";