@qwen-code/qwen-code 0.20.2-jobbench-no-todo-write.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +5 -0
  2. package/bundled/qc-helper/docs/features/sub-agents.md +23 -5
  3. package/bundled/qc-helper/docs/integration-github-action.md +9 -9
  4. package/bundled/review/SKILL.md +7 -3
  5. package/chunks/MaxSizedBox-5DPPWPGT.js +85 -0
  6. package/chunks/{StandaloneSessionPicker-WBRBHD2M.js → StandaloneSessionPicker-BIRMPLRD.js} +66 -58
  7. package/chunks/{acp-startup-profiler-N3RHHXJ3.js → acp-startup-profiler-RV3IV562.js} +2 -2
  8. package/chunks/{acpAgent-BBQZ33CA.js → acpAgent-6J2U72PQ.js} +706 -182
  9. package/chunks/agent-6ODUANDO.js +81 -0
  10. package/chunks/agent-headless-7BYQTMHW.js +75 -0
  11. package/chunks/{anthropicContentGenerator-HGWAHO24.js → anthropicContentGenerator-75BKLTSP.js} +117 -43
  12. package/chunks/{artifact-tool-56T5IMBP.js → artifact-tool-Y5T7GG7F.js} +3 -3
  13. package/chunks/{askUserQuestion-E25OBIC2.js → askUserQuestion-2H6747FR.js} +3 -3
  14. package/chunks/bridge-ZUB64FAE.js +90 -0
  15. package/chunks/{build-SSCNEHZZ.js → build-RV63TIRH.js} +2 -3
  16. package/chunks/{ca-N6VVUFVB.js → ca-25EDXPFZ.js} +2 -0
  17. package/chunks/{channel-worker-group-LFBT7K64.js → channel-worker-group-2ZD7TVAT.js} +7 -6
  18. package/chunks/{channel-worker-manager-3RUPERG2.js → channel-worker-manager-4OA4BCGB.js} +189 -29
  19. package/chunks/{channel-worker-supervisor-A3KVATD3.js → channel-worker-supervisor-V7KCFJTS.js} +6 -5
  20. package/chunks/{chunk-TYQMGACW.js → chunk-22C7BQ6D.js} +508 -10967
  21. package/chunks/chunk-2JZBVYTU.js +452 -0
  22. package/chunks/{chunk-H2XVO6NE.js → chunk-2MIN6GRR.js} +1 -1
  23. package/chunks/{chunk-B2HSPMD4.js → chunk-2NH6DYI4.js} +12 -12
  24. package/chunks/chunk-2SCDWPXI.js +246 -0
  25. package/chunks/{chunk-JK26TQON.js → chunk-2X55UKQE.js} +3 -3
  26. package/chunks/{chunk-7VUQQBR7.js → chunk-3QMGYBFN.js} +2 -65
  27. package/chunks/{chunk-UMCULC5M.js → chunk-3RN6GBKS.js} +1 -1
  28. package/chunks/{chunk-QR6U5QPP.js → chunk-3SJ43L4W.js} +4 -0
  29. package/chunks/chunk-46UV252V.js +128 -0
  30. package/chunks/{chunk-GPMVHZP4.js → chunk-4WIZGAH3.js} +7 -7
  31. package/chunks/{chunk-CI3GWKGJ.js → chunk-55DJUCI2.js} +87 -29
  32. package/chunks/{chunk-QNLNLENL.js → chunk-5I2IWRSH.js} +2 -2
  33. package/chunks/{chunk-D7WXIW7H.js → chunk-5NBDS5S6.js} +145 -5
  34. package/chunks/{chunk-E4IMU4Y5.js → chunk-63P4EL5V.js} +1 -1
  35. package/chunks/chunk-6FGBXPWM.js +293 -0
  36. package/chunks/{chunk-NEEB7UEN.js → chunk-6GMVPFB2.js} +153 -72
  37. package/chunks/{chunk-KWK7UE6L.js → chunk-6OUGMXDC.js} +6 -6
  38. package/chunks/{chunk-QRUIS3DN.js → chunk-6PEXNQTX.js} +22 -1
  39. package/chunks/{chunk-77OZOGPT.js → chunk-7JURR4JT.js} +1 -1
  40. package/chunks/{chunk-4MWNZNJ4.js → chunk-7MVVZO4N.js} +4 -4
  41. package/chunks/{chunk-6ZBPS62S.js → chunk-7ZCNENPP.js} +1 -1
  42. package/chunks/{chunk-6X4GWOPW.js → chunk-A5L3JMUA.js} +1 -1
  43. package/chunks/{chunk-B3I77W5J.js → chunk-ACY3A37B.js} +3 -3
  44. package/chunks/chunk-AMDSOFFV.js +10860 -0
  45. package/chunks/{chunk-RV4C2ZFG.js → chunk-BIQWWWJN.js} +1 -1
  46. package/chunks/{chunk-ZHERRXZJ.js → chunk-BJX6ZSUK.js} +4 -4
  47. package/chunks/chunk-BK2UNYWD.js +29 -0
  48. package/chunks/{chunk-7TLUW4ZE.js → chunk-BKHWX6I2.js} +3 -3
  49. package/chunks/chunk-BPJSQIJX.js +100 -0
  50. package/chunks/{chunk-M7WBGLYP.js → chunk-BULDBTYC.js} +2 -0
  51. package/chunks/{chunk-H4A4A2SY.js → chunk-CIKQ7KKO.js} +4625 -8645
  52. package/chunks/{chunk-QZJY47IE.js → chunk-D3UEZIQH.js} +7 -5
  53. package/chunks/chunk-DHHOYAPR.js +1462 -0
  54. package/chunks/{chunk-LESHKUWF.js → chunk-DLWL3Z7A.js} +5 -3
  55. package/chunks/{chunk-XHATNRQA.js → chunk-DP3IHZGG.js} +0 -2
  56. package/chunks/chunk-E5TUC6CA.js +479 -0
  57. package/chunks/{chunk-6NRFYMKG.js → chunk-EBJQ6AXW.js} +11 -10
  58. package/chunks/{chunk-HABKX6LY.js → chunk-EPDRMGT4.js} +164 -17
  59. package/chunks/{chunk-P2BQZ7H7.js → chunk-ETSW4KLJ.js} +2 -2
  60. package/chunks/{chunk-KHOVYUHX.js → chunk-FNQ6T3CV.js} +20 -3
  61. package/chunks/{chunk-64EG42HV.js → chunk-FQK6JAFG.js} +72 -23
  62. package/chunks/{chunk-L6U47G5P.js → chunk-FSITMZJH.js} +8 -8
  63. package/chunks/{chunk-6RLROE6G.js → chunk-GLWP3FDB.js} +80 -15
  64. package/chunks/{chunk-CXIOPXRR.js → chunk-GSN55ZRI.js} +5 -5
  65. package/chunks/{chunk-LVA5OHQO.js → chunk-H4SBPHSA.js} +3 -3
  66. package/chunks/chunk-H5FFA6TH.js +902 -0
  67. package/chunks/{chunk-TDKQP3M6.js → chunk-HIJQF5B5.js} +1 -1
  68. package/chunks/{chunk-NXE6SQIV.js → chunk-IJTOWOD7.js} +14 -3
  69. package/chunks/chunk-IKCX4CCL.js +469 -0
  70. package/chunks/{chunk-7SSWNGEJ.js → chunk-IKYJHJNF.js} +3 -3
  71. package/chunks/{chunk-64XKYOXK.js → chunk-IO3IX5Q4.js} +1 -1
  72. package/chunks/{chunk-RS7MT2QG.js → chunk-IPUUTYMV.js} +2 -4
  73. package/chunks/{chunk-XU457J4V.js → chunk-IRH27ZC2.js} +2 -2
  74. package/chunks/{chunk-SVIMKSEI.js → chunk-J24WCGIN.js} +4 -4
  75. package/chunks/{chunk-4LVZNIDO.js → chunk-J56UI34H.js} +4 -13
  76. package/chunks/{chunk-TJTKSVIV.js → chunk-JLU636DO.js} +5 -1
  77. package/chunks/{chunk-7PIL2BYF.js → chunk-JVPM2ULZ.js} +6 -6
  78. package/chunks/{chunk-KBB5O3JO.js → chunk-JXJFVC6E.js} +37 -18
  79. package/chunks/chunk-JZA3JUDJ.js +82 -0
  80. package/chunks/{chunk-45PO6ZIS.js → chunk-K36B6G2O.js} +5 -5
  81. package/chunks/{chunk-GPSKDNEE.js → chunk-K4XWPEWB.js} +4 -4
  82. package/chunks/{chunk-K7EUPLIP.js → chunk-KIM5GUMA.js} +654 -117
  83. package/chunks/{chunk-42W5BDEY.js → chunk-KMQ33DO4.js} +7 -5
  84. package/chunks/{chunk-E2UVIFI2.js → chunk-KRXPRVGL.js} +0 -1
  85. package/chunks/{chunk-WHGVTP7Q.js → chunk-L26JL52R.js} +3 -3
  86. package/chunks/{chunk-7Z6JQEL6.js → chunk-L5UHQJTJ.js} +1 -1
  87. package/chunks/{chunk-26CBI4DC.js → chunk-LB6DUZ26.js} +259 -67
  88. package/chunks/chunk-LEH5C7FV.js +232 -0
  89. package/chunks/{chunk-UTGFTJ2H.js → chunk-LH2BYDQ5.js} +6 -4
  90. package/chunks/{chunk-QKTHJXCS.js → chunk-LK7CHLVP.js} +79 -2
  91. package/chunks/{chunk-V7WNRZL7.js → chunk-LKEJ26GS.js} +11 -11
  92. package/chunks/{chunk-6VPLV3L3.js → chunk-LQIW3YFY.js} +227 -41
  93. package/chunks/chunk-LS77BEZP.js +405 -0
  94. package/chunks/{chunk-5WDRI7US.js → chunk-M4FMGVY4.js} +3 -3
  95. package/chunks/{chunk-57FIIFJN.js → chunk-M5JM7OSF.js} +1 -1
  96. package/chunks/{chunk-7362QS5B.js → chunk-MB4MZHMJ.js} +80 -37
  97. package/chunks/{chunk-4K56OJFJ.js → chunk-MUP3T3AD.js} +1 -1
  98. package/chunks/{chunk-CJQ3FZ2G.js → chunk-MVSUYZDT.js} +4 -4
  99. package/chunks/{chunk-6FZYKBKV.js → chunk-MZAXJAUM.js} +1 -1
  100. package/chunks/{chunk-32L4D2O2.js → chunk-NH6KE4JX.js} +3 -3
  101. package/chunks/chunk-NIBLUX3Y.js +934 -0
  102. package/chunks/{chunk-OQB4EXO4.js → chunk-NL7LTRLR.js} +1 -1
  103. package/chunks/{chunk-6S5HSCOI.js → chunk-OFDOK3VM.js} +5 -5
  104. package/chunks/{chunk-LIZRAKPB.js → chunk-OHNBB4XR.js} +1 -1
  105. package/chunks/{chunk-MDZTPSXO.js → chunk-OKY7HXPG.js} +2 -2
  106. package/chunks/{chunk-NHDKSOEY.js → chunk-P3QQPMQA.js} +5 -5
  107. package/chunks/{chunk-4SCOLXTD.js → chunk-PC6JANNU.js} +5 -5
  108. package/chunks/{chunk-IWALV67J.js → chunk-PHOF65IG.js} +4300 -1284
  109. package/chunks/{chunk-OQ5SYCPE.js → chunk-PJIZUQVC.js} +2 -2
  110. package/chunks/{chunk-5DTTYNB7.js → chunk-PQNHRFJC.js} +16 -3
  111. package/chunks/{chunk-YM3SZTH4.js → chunk-PR75REBZ.js} +18 -1
  112. package/chunks/{chunk-5XORMWA2.js → chunk-PSOO6YXD.js} +18 -15
  113. package/chunks/{chunk-X6N25LXS.js → chunk-PWTZEM3C.js} +2 -2
  114. package/chunks/{chunk-GSX6P2JW.js → chunk-PWVFN2LF.js} +1 -1
  115. package/chunks/{chunk-AHX6AKPD.js → chunk-Q4M4MDQ4.js} +2 -2
  116. package/chunks/{chunk-3EHJ44GG.js → chunk-QAF7NMK7.js} +1 -1
  117. package/chunks/{chunk-WSYKDFYR.js → chunk-R5AFZNQW.js} +5 -5
  118. package/chunks/{chunk-63DJBU32.js → chunk-RF3EXIHJ.js} +39 -18
  119. package/chunks/{chunk-4K7VDKAD.js → chunk-RHLZR4E5.js} +1 -1
  120. package/chunks/{chunk-SXPSOMQ4.js → chunk-RIBKPMRP.js} +220 -141
  121. package/chunks/{chunk-RVLZCXEE.js → chunk-RWTEFFPU.js} +82 -3
  122. package/chunks/{chunk-ZUTM4LHM.js → chunk-RZIX2G32.js} +1 -1
  123. package/chunks/{chunk-ZKBNRL6O.js → chunk-SQCQ4KO2.js} +336 -404
  124. package/chunks/{chunk-THJNPLI4.js → chunk-TARRHLLG.js} +1 -0
  125. package/chunks/{chunk-RHYFF54J.js → chunk-TEHGS6UP.js} +50 -21
  126. package/chunks/{chunk-ACQJPDDS.js → chunk-TGILQ3YH.js} +8 -8
  127. package/chunks/{chunk-Q2YKNMLS.js → chunk-TOFQCPDC.js} +43 -10
  128. package/chunks/{chunk-ACZIBDYD.js → chunk-TPRQ7RZH.js} +587 -176
  129. package/chunks/{chunk-T4TZQJ7W.js → chunk-TWPJO254.js} +5 -16
  130. package/chunks/{chunk-7MWABCXU.js → chunk-U7M2DMGW.js} +3 -3
  131. package/chunks/{chunk-KQQ757OQ.js → chunk-UDX5OBWR.js} +41 -9
  132. package/chunks/{chunk-SRPZG4ER.js → chunk-USTWD7QV.js} +6 -4
  133. package/chunks/{chunk-NPQDJGKU.js → chunk-UUUTRMI2.js} +1 -1
  134. package/chunks/chunk-UW5EOVUN.js +249 -0
  135. package/chunks/{chunk-6IL7KRLE.js → chunk-VAK25FTU.js} +1 -1
  136. package/chunks/{chunk-TDDFEPBX.js → chunk-VIA5XA4U.js} +5 -2
  137. package/chunks/{chunk-3BJDQVE6.js → chunk-VRYUBFMC.js} +1 -1
  138. package/chunks/{chunk-PLQODS7F.js → chunk-VULLI6WQ.js} +172 -6
  139. package/chunks/{chunk-GN45XAAU.js → chunk-WCXCRJYB.js} +1 -1
  140. package/chunks/{chunk-2LI23QA6.js → chunk-X5XDDSSH.js} +1 -1
  141. package/chunks/{chunk-O32RMIMO.js → chunk-Y34KJKDC.js} +1 -1
  142. package/chunks/{chunk-7ZD5EKXE.js → chunk-YBL3QUDD.js} +2 -2
  143. package/chunks/{chunk-H4AR2JQF.js → chunk-YH6G52F2.js} +3 -3
  144. package/chunks/{chunk-3G3UUMRS.js → chunk-YPE6A4GC.js} +2 -2
  145. package/chunks/{chunk-3F2JUWCH.js → chunk-YX324OPW.js} +1 -1
  146. package/chunks/{chunk-CGIDQG6J.js → chunk-Z2BC6UJ5.js} +3 -3
  147. package/chunks/{chunk-QLJUC7TG.js → chunk-ZD6UTE4A.js} +1 -1
  148. package/chunks/{chunk-ZPWJZHJ2.js → chunk-ZFDTEDCF.js} +6 -6
  149. package/chunks/chunk-ZJHVAS7M.js +289 -0
  150. package/chunks/{chunk-XAGLQITN.js → chunk-ZNAUOR2I.js} +15 -12
  151. package/chunks/{chunk-T2L47JJK.js → chunk-ZOIFNCKL.js} +4 -4
  152. package/chunks/{computer-use-RZ3UUWYW.js → computer-use-SOQ4E3VX.js} +43 -34
  153. package/chunks/{config-utils-SQUBZEQM.js → config-utils-7V7GGIW6.js} +3 -3
  154. package/chunks/contextCommand-JLHYA34Z.js +80 -0
  155. package/chunks/{create-sub-session-AZ77LBL3.js → create-sub-session-IWW2IZ2T.js} +3 -3
  156. package/chunks/{create-sub-session-EQG73FT6.js → create-sub-session-QRJLW5BV.js} +43 -34
  157. package/chunks/{cron-create-KTWJM7QT.js → cron-create-YIID5XAW.js} +6 -6
  158. package/chunks/{cron-delete-2P3I5ULL.js → cron-delete-ZVHYCEP2.js} +5 -5
  159. package/chunks/{cron-list-PXDPGEDQ.js → cron-list-XEGS463Q.js} +5 -5
  160. package/chunks/{daemon-RAPSDJH7.js → daemon-YO6433NF.js} +350 -53
  161. package/chunks/daemon-status-provider-2233Q37D.js +89 -0
  162. package/chunks/{de-4IBXM7CN.js → de-HGRCYDEJ.js} +1 -0
  163. package/chunks/{dist-UIFWIFRO.js → dist-46NQKLTW.js} +2 -2
  164. package/chunks/{dist-XRYV6TJP.js → dist-AIKFMUKK.js} +50 -4
  165. package/chunks/{dist-XBJVSWS2.js → dist-BBLXMS3N.js} +14 -2
  166. package/chunks/{dist-OMW6WDEO.js → dist-F6IBUDR4.js} +40 -9
  167. package/chunks/{dist-PJLG2XYX.js → dist-WEAHOXDM.js} +1 -1
  168. package/chunks/{dist-OAV7LJGJ.js → dist-YFNEUWSE.js} +26 -2
  169. package/chunks/earlyInputCapture-A7NDU3PF.js +82 -0
  170. package/chunks/{edit-XRSKQPHQ.js → edit-OBDSQURM.js} +43 -34
  171. package/chunks/{en-USMCCJAJ.js → en-MTWBNGDO.js} +15 -0
  172. package/chunks/{enter-worktree-WAHCWE6I.js → enter-worktree-U6MRPQ2P.js} +43 -34
  173. package/chunks/{enterPlanMode-QIOYLDCF.js → enterPlanMode-BC5QUZZ2.js} +43 -34
  174. package/chunks/{environment-T3FXCDJI.js → environment-W5UFC2CH.js} +46 -37
  175. package/chunks/errors-M7CLORXH.js +88 -0
  176. package/chunks/{exit-worktree-RHVTLX6T.js → exit-worktree-DGNYMECB.js} +43 -34
  177. package/chunks/{exitPlanMode-UATOE2GQ.js → exitPlanMode-GXTBWQAR.js} +43 -34
  178. package/chunks/{fast-path-J3RHOYSZ.js → fast-path-JJZFJANL.js} +6 -6
  179. package/chunks/{fast-path-settings-XB3CPUJT.js → fast-path-settings-WQJU2LAT.js} +2 -2
  180. package/chunks/{fr-WVHEBDDB.js → fr-45RLL55O.js} +1 -0
  181. package/chunks/{gemini-P72OGOH6.js → gemini-QS36EBZV.js} +133 -102
  182. package/chunks/{geminiContentGenerator-F6EG5FXF.js → geminiContentGenerator-AG4KB6CV.js} +14 -8
  183. package/chunks/{getMachineId-bsd-QFVLPUPT.js → getMachineId-bsd-V7W3GODC.js} +1 -1
  184. package/chunks/{getMachineId-darwin-DGMQQE2E.js → getMachineId-darwin-TDO75DQP.js} +1 -1
  185. package/chunks/{getMachineId-linux-R4Z6CSWC.js → getMachineId-linux-TF43WQT2.js} +1 -1
  186. package/chunks/{getMachineId-unsupported-Z3SBVBUV.js → getMachineId-unsupported-ZGUO3TXT.js} +1 -1
  187. package/chunks/{getMachineId-win-SCK5UFDT.js → getMachineId-win-ECFYZZFQ.js} +1 -1
  188. package/chunks/{glob-WHASQZRX.js → glob-V7R3PSK3.js} +43 -34
  189. package/chunks/{grep-LS7AADJ3.js → grep-QYPSK7OP.js} +43 -34
  190. package/chunks/handleAutoUpdate-6DBEZYPV.js +81 -0
  191. package/chunks/{i18n-IMVASWIF.js → i18n-VUJJZIMU.js} +44 -35
  192. package/chunks/image-gen-Z3VPGKRC.js +240 -0
  193. package/chunks/initializer-UWAK5U5O.js +86 -0
  194. package/chunks/installationInfo-6O2YAA52.js +80 -0
  195. package/chunks/{ja-KY4ROZTE.js → ja-B7DF7DFG.js} +1 -0
  196. package/chunks/{keychain-token-storage-6ACJDYIB.js → keychain-token-storage-MDTG3WRM.js} +3 -3
  197. package/chunks/{kittyProtocolDetector-HCNNKJTI.js → kittyProtocolDetector-MBRTDRBK.js} +5 -3
  198. package/chunks/list-GB4ESM3T.js +89 -0
  199. package/chunks/list-agents-5KJJHR6I.js +80 -0
  200. package/chunks/loadedSettingsAdapter-OT6JVQ7U.js +83 -0
  201. package/chunks/loggingContentGenerator-HS3S5H3Q.js +1077 -0
  202. package/chunks/{loop-wakeup-RNMRVA66.js → loop-wakeup-FXKNNYSY.js} +7 -7
  203. package/chunks/{ls-J2ZI5XYK.js → ls-NTK6VOQJ.js} +5 -5
  204. package/chunks/{lsp-UMS3NUB5.js → lsp-2JI24STP.js} +3 -3
  205. package/chunks/{managed-npm-update-L6UY7OM7.js → managed-npm-update-JYEMMXA3.js} +94 -37
  206. package/chunks/mcp-6DBDJPFU.js +83 -0
  207. package/chunks/{monitor-DXYFB5QD.js → monitor-R3ODH5U6.js} +45 -35
  208. package/chunks/node-UUDY34IG.js +305 -0
  209. package/chunks/nonInteractiveCli-MOYCYBBU.js +141 -0
  210. package/chunks/{notebook-edit-KGD7YJEA.js → notebook-edit-BNOK452R.js} +43 -34
  211. package/chunks/{openaiContentGenerator-C74A2XAU.js → openaiContentGenerator-WMCU3O2H.js} +27 -17
  212. package/chunks/pidfile-TFRZZZIO.js +86 -0
  213. package/chunks/{processUtils-GUT5B4R6.js → processUtils-RT7UNCC2.js} +2 -2
  214. package/chunks/{pt-OK455PLH.js → pt-22Q3FP73.js} +1 -0
  215. package/chunks/{qwenContentGenerator-PT46FQPA.js → qwenContentGenerator-HHCRK4SX.js} +56 -41
  216. package/chunks/{qwenOAuth2-S7DZHUUU.js → qwenOAuth2-OWLB5AKH.js} +14 -27
  217. package/chunks/read-file-APMO3PSX.js +31 -0
  218. package/chunks/{read-mcp-resource-F6HYMDUY.js → read-mcp-resource-4DKQWGHD.js} +3 -3
  219. package/chunks/{record-artifact-7GCFLDD7.js → record-artifact-RQKFYO5B.js} +3 -3
  220. package/chunks/resumeHistoryUtils-6KRYEAWZ.js +91 -0
  221. package/chunks/ripGrep-BEJDEDXW.js +73 -0
  222. package/chunks/{ru-7SPDGMGD.js → ru-FZCNZHDC.js} +1 -0
  223. package/chunks/{run-qwen-serve-QO4PT5NV.js → run-qwen-serve-FU6HEM4J.js} +276 -62
  224. package/chunks/{runtime-EOTXBUM6.js → runtime-XXRRTNP6.js} +55 -44
  225. package/chunks/{scheduler-MAIQ2PHR.js → scheduler-G2ZS2Z7E.js} +43 -34
  226. package/chunks/{sdk-exporters-grpc-ETLH47EP.js → sdk-exporters-grpc-AK3LGHNO.js} +3 -3
  227. package/chunks/{sdk-exporters-http-T3POX73F.js → sdk-exporters-http-FYBSUCPD.js} +6 -6
  228. package/chunks/{sdk-impl-NSLPDH6I.js → sdk-impl-GMVPB7NB.js} +6 -6
  229. package/chunks/{send-message-PYIJ2PZL.js → send-message-Q6OOR6BR.js} +46 -9
  230. package/chunks/serve-7BSTXJ4T.js +89 -0
  231. package/chunks/{server-CBCC3XQC.js → server-4UMH7OIZ.js} +2348 -396
  232. package/chunks/{session-RQUEFQDL.js → session-K3O3Q2SV.js} +107 -88
  233. package/chunks/{settings-QHXCJDSR.js → settings-CR2EWTBA.js} +53 -44
  234. package/chunks/shell-HH3PF3A2.js +83 -0
  235. package/chunks/{skill-WHSGTGKP.js → skill-I3SDA4MB.js} +17 -15
  236. package/chunks/spawnChannel-RWNDBXGA.js +82 -0
  237. package/chunks/{src-F3HKX47D.js → src-GE4TTTML.js} +290 -171
  238. package/chunks/{standalone-update-BKLONSVI.js → standalone-update-Q6WFRZZQ.js} +45 -36
  239. package/chunks/{startInteractiveUI-TNJ37X5W.js → startInteractiveUI-SLZGHRPH.js} +736 -298
  240. package/chunks/{syntheticOutput-H7RTI5KL.js → syntheticOutput-I3757IWH.js} +4 -4
  241. package/chunks/{task-create-7474AJJD.js → task-create-N7WQSGYA.js} +10 -10
  242. package/chunks/{task-list-633HGOIB.js → task-list-FOPULZEP.js} +7 -7
  243. package/chunks/{task-stop-MNUGHPIA.js → task-stop-H6RHXFVQ.js} +4 -4
  244. package/chunks/{task-update-66GQB5LI.js → task-update-M57TFZJT.js} +10 -10
  245. package/chunks/{team-create-LUHJ7ZCC.js → team-create-YJALH5D2.js} +44 -35
  246. package/chunks/{team-delete-BB3CG3QF.js → team-delete-QE2UXJL7.js} +7 -7
  247. package/chunks/{team-plan-approval-X3DYRL6L.js → team-plan-approval-34QFYKGN.js} +43 -34
  248. package/chunks/theme-manager-SWRILQHI.js +77 -0
  249. package/chunks/todoWrite-VQ7FKOHL.js +358 -0
  250. package/chunks/{tool-search-BAWOETUY.js → tool-search-NF7GB6LE.js} +16 -16
  251. package/chunks/total-session-admission-DLHHHLD3.js +84 -0
  252. package/chunks/{tree-sitter-FS4VPMZA.js → tree-sitter-4D7QS7F6.js} +1 -1
  253. package/chunks/{tree-sitter-bash-6B46JJCV.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
  254. package/chunks/{trustedFolders-4UEOIKOF.js → trustedFolders-KHXHY6PY.js} +44 -35
  255. package/chunks/{update-relaunch-WDWABT5P.js → update-relaunch-WBUZJC5O.js} +5 -5
  256. package/chunks/updateCheck-RKL6M5XN.js +92 -0
  257. package/chunks/useAutoAcceptIndicator-CFQ5BUJL.js +93 -0
  258. package/chunks/{validateNonInterActiveAuth-OKUE3JLF.js → validateNonInterActiveAuth-3R223G3R.js} +91 -81
  259. package/chunks/{version-GMUULLWB.js → version-HS7YSFHV.js} +1 -1
  260. package/chunks/{web-fetch-JBWTMPFN.js → web-fetch-NKCSG7ZE.js} +18 -16
  261. package/chunks/{web-search-27COJHJT.js → web-search-S62WAP4S.js} +13 -27
  262. package/chunks/{workflow-5L37J7YF.js → workflow-QAGU5RU4.js} +44 -35
  263. package/chunks/workspace-providers-status-QSVZUETE.js +86 -0
  264. package/chunks/{workspace-registration-store-TYPYXIP6.js → workspace-registration-store-24JMHDGF.js} +2 -2
  265. package/chunks/workspace-registry-UT4RBNBM.js +88 -0
  266. package/chunks/workspace-service-JFWRUS4V.js +98 -0
  267. package/chunks/workspace-skills-status-ZBBKJOI2.js +85 -0
  268. package/chunks/write-file-VHIXW5M7.js +73 -0
  269. package/chunks/{zh-WY5DWYZD.js → zh-LUIGBD55.js} +15 -0
  270. package/chunks/{zh-TW-BM47YBFH.js → zh-TW-F5KG2IYD.js} +15 -0
  271. package/cli-entry.js +10 -1
  272. package/cli.js +13 -13
  273. package/locales/ca.js +2 -0
  274. package/locales/de.js +1 -0
  275. package/locales/en.js +25 -0
  276. package/locales/fr.js +1 -0
  277. package/locales/ja.js +1 -0
  278. package/locales/pt.js +1 -0
  279. package/locales/ru.js +1 -0
  280. package/locales/zh-TW.js +23 -0
  281. package/locales/zh.js +23 -0
  282. package/package.json +3 -3
  283. package/web-shell/assets/{arc-BWFm0SI0.js → arc-DcbWnB9T.js} +1 -1
  284. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CZ_yL-DQ.js → architectureDiagram-3BPJPVTR-kMMF5sud.js} +1 -1
  285. package/web-shell/assets/{blockDiagram-GPEHLZMM-B9F9mJvG.js → blockDiagram-GPEHLZMM-Htl9vTJS.js} +1 -1
  286. package/web-shell/assets/{c4Diagram-AAUBKEIU-BUdwJW5f.js → c4Diagram-AAUBKEIU-BnZnm0mQ.js} +1 -1
  287. package/web-shell/assets/channel-Cq7YKtfC.js +1 -0
  288. package/web-shell/assets/{chunk-2J33WTMH-w4cF-qlF.js → chunk-2J33WTMH-DziB7kDG.js} +1 -1
  289. package/web-shell/assets/{chunk-4BX2VUAB-BXwURxHJ.js → chunk-4BX2VUAB-CmkD8daw.js} +1 -1
  290. package/web-shell/assets/{chunk-55IACEB6-Gem3LalC.js → chunk-55IACEB6-CHAd9A_U.js} +1 -1
  291. package/web-shell/assets/{chunk-727SXJPM-A3ddVojI.js → chunk-727SXJPM-Dqaam3fE.js} +1 -1
  292. package/web-shell/assets/{chunk-AQP2D5EJ-CjHZ5L_R.js → chunk-AQP2D5EJ-D_-saBYM.js} +1 -1
  293. package/web-shell/assets/{chunk-FMBD7UC4-CKgdgcpv.js → chunk-FMBD7UC4-B9r_veWD.js} +1 -1
  294. package/web-shell/assets/{chunk-ND2GUHAM-Cn2Dykjb.js → chunk-ND2GUHAM-B3EaCSpL.js} +1 -1
  295. package/web-shell/assets/{chunk-QZHKN3VN--0SyraC5.js → chunk-QZHKN3VN-CYq8x9mn.js} +1 -1
  296. package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +1 -0
  297. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +1 -0
  298. package/web-shell/assets/{cose-bilkent-S5V4N54A-CphhAity.js → cose-bilkent-S5V4N54A-D0ng4uiB.js} +1 -1
  299. package/web-shell/assets/{dagre-BM42HDAG-DU--jiKp.js → dagre-BM42HDAG-DCZollQv.js} +1 -1
  300. package/web-shell/assets/{diagram-2AECGRRQ-BzvuZw1Y.js → diagram-2AECGRRQ-Dfk2pWS0.js} +1 -1
  301. package/web-shell/assets/{diagram-5GNKFQAL-D84-49Y0.js → diagram-5GNKFQAL-kX38ltWR.js} +1 -1
  302. package/web-shell/assets/{diagram-KO2AKTUF-DQTq-3_3.js → diagram-KO2AKTUF-CJz2vsXh.js} +1 -1
  303. package/web-shell/assets/{diagram-LMA3HP47-8FTrshzN.js → diagram-LMA3HP47-BvMLZm_7.js} +1 -1
  304. package/web-shell/assets/{diagram-OG6HWLK6-BCjpDBCm.js → diagram-OG6HWLK6-l7kfStkO.js} +1 -1
  305. package/web-shell/assets/{erDiagram-TEJ5UH35-BtRObkmg.js → erDiagram-TEJ5UH35-BSVa8GGT.js} +1 -1
  306. package/web-shell/assets/{flowDiagram-I6XJVG4X-DTrW6oxy.js → flowDiagram-I6XJVG4X-CoawKIXH.js} +1 -1
  307. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BgPNSW6j.js → ganttDiagram-6RSMTGT7-DFUDH0zF.js} +1 -1
  308. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BTclNgGV.js → gitGraphDiagram-PVQCEYII-Y2pvpT4e.js} +1 -1
  309. package/web-shell/assets/{index-CxA7AqY6.js → index-D0GX0zZf.js} +1 -1
  310. package/web-shell/assets/index-D9haPt0X.css +5 -0
  311. package/web-shell/assets/index-ckX9Pq5k.js +1230 -0
  312. package/web-shell/assets/{infoDiagram-5YYISTIA-DCE4AJt2.js → infoDiagram-5YYISTIA-CU8_zLiX.js} +1 -1
  313. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-C8iE6q4Y.js → ishikawaDiagram-YF4QCWOH-AVQiV0DU.js} +1 -1
  314. package/web-shell/assets/{journeyDiagram-JHISSGLW-C_dxdyEc.js → journeyDiagram-JHISSGLW-DQ0VSKa3.js} +1 -1
  315. package/web-shell/assets/{kanban-definition-UN3LZRKU-Dw3n1u3w.js → kanban-definition-UN3LZRKU-BqnWqsE_.js} +1 -1
  316. package/web-shell/assets/{linear-C2BF2zJ9.js → linear-BkoihsaA.js} +1 -1
  317. package/web-shell/assets/{mermaid.core-CGTQU3MA.js → mermaid.core-5RJs-31j.js} +5 -5
  318. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BVFZm9ZC.js → mindmap-definition-RKZ34NQL-D33Bxnpd.js} +1 -1
  319. package/web-shell/assets/{pieDiagram-4H26LBE5-Cc-TNN3n.js → pieDiagram-4H26LBE5-BuEAw3BH.js} +1 -1
  320. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CgW3Rzsi.js → quadrantDiagram-W4KKPZXB-Kox_usEq.js} +1 -1
  321. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BAaj0Y3B.js → requirementDiagram-4Y6WPE33-CNjeUif0.js} +1 -1
  322. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-XJWmekxS.js → sankeyDiagram-5OEKKPKP-BCd2OL_U.js} +1 -1
  323. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CtRc_0wf.js → sequenceDiagram-3UESZ5HK-CF2ZTsz0.js} +1 -1
  324. package/web-shell/assets/{stateDiagram-AJRCARHV-WCnvMGy5.js → stateDiagram-AJRCARHV-qenSzHtm.js} +1 -1
  325. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +1 -0
  326. package/web-shell/assets/{timeline-definition-PNZ67QCA-C9cRx49L.js → timeline-definition-PNZ67QCA-B5DyWdgs.js} +1 -1
  327. package/web-shell/assets/{vennDiagram-CIIHVFJN-BvXOCEt-.js → vennDiagram-CIIHVFJN-DqP4I_o_.js} +1 -1
  328. package/web-shell/assets/{wardley-L42UT6IY-ByafGtzu.js → wardley-L42UT6IY-CJe2e4mg.js} +1 -1
  329. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-CozAnw8x.js → wardleyDiagram-YWT4CUSO-BMDSw-Rr.js} +1 -1
  330. package/web-shell/assets/{xychartDiagram-2RQKCTM6-Camu9Qvq.js → xychartDiagram-2RQKCTM6-BTVZYkxD.js} +1 -1
  331. package/web-shell/index.html +17 -13
  332. package/chunks/MaxSizedBox-HNWBEL5H.js +0 -77
  333. package/chunks/agent-KTMY6SF3.js +0 -72
  334. package/chunks/agent-headless-HJ56ZZOW.js +0 -66
  335. package/chunks/bridge-AMC5AD7W.js +0 -80
  336. package/chunks/chunk-CBOQ3HY7.js +0 -2019
  337. package/chunks/chunk-UHGNAWHK.js +0 -6928
  338. package/chunks/contextCommand-PW4GINQU.js +0 -71
  339. package/chunks/daemon-status-provider-3IWTBWQ3.js +0 -79
  340. package/chunks/earlyInputCapture-TYNI3B6E.js +0 -73
  341. package/chunks/errors-QAWTJTAW.js +0 -79
  342. package/chunks/handleAutoUpdate-V5A3JHOG.js +0 -72
  343. package/chunks/initializer-JJLF5JCJ.js +0 -77
  344. package/chunks/installationInfo-LAWMHQAG.js +0 -71
  345. package/chunks/list-L2ECB6UM.js +0 -80
  346. package/chunks/loadedSettingsAdapter-RLMZ4Z3E.js +0 -74
  347. package/chunks/mcp-E4O7Z6FO.js +0 -74
  348. package/chunks/nonInteractiveCli-GU2UKULE.js +0 -131
  349. package/chunks/pidfile-IWQWZNZV.js +0 -77
  350. package/chunks/read-file-ZOCXW4AD.js +0 -31
  351. package/chunks/resumeHistoryUtils-TJWRDE2L.js +0 -83
  352. package/chunks/ripGrep-OFKAW2VE.js +0 -64
  353. package/chunks/serve-UB4CF67Q.js +0 -80
  354. package/chunks/shell-RPK7EAOC.js +0 -74
  355. package/chunks/spawnChannel-IUP3ZNMT.js +0 -73
  356. package/chunks/theme-manager-ALL7F4CJ.js +0 -68
  357. package/chunks/total-session-admission-PLONPNXI.js +0 -74
  358. package/chunks/updateCheck-PVROE4GR.js +0 -87
  359. package/chunks/useAutoAcceptIndicator-6BNLNN5S.js +0 -85
  360. package/chunks/workspace-providers-status-2U3IF4TX.js +0 -77
  361. package/chunks/workspace-registry-DLQDDDIF.js +0 -78
  362. package/chunks/workspace-service-7K3LF4QX.js +0 -89
  363. package/chunks/workspace-skills-status-4DOZ3DBS.js +0 -76
  364. package/chunks/write-file-PTPXDKZ3.js +0 -64
  365. package/web-shell/assets/channel-DiLlxxIf.js +0 -1
  366. package/web-shell/assets/classDiagram-4FO5ZUOK-CkylTdM4.js +0 -1
  367. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CkylTdM4.js +0 -1
  368. package/web-shell/assets/index-CGtQqOIa.css +0 -5
  369. package/web-shell/assets/index-TtM0hVjU.js +0 -1207
  370. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-D1gzH2Ue.js +0 -1
@@ -2,13 +2,21 @@
2
2
  "use strict";
3
3
  import {
4
4
  HistoryReplayer
5
- } from "./chunk-6NRFYMKG.js";
5
+ } from "./chunk-EBJQ6AXW.js";
6
+ import {
7
+ ChannelDeliveryError,
8
+ MAX_CHANNEL_DELIVERY_TEXT_LENGTH
9
+ } from "./chunk-LK7CHLVP.js";
6
10
  import {
7
11
  redactLogCredentials
8
12
  } from "./chunk-M5GB774H.js";
9
13
  import {
10
14
  getResponseText
11
- } from "./chunk-IWALV67J.js";
15
+ } from "./chunk-PHOF65IG.js";
16
+ import {
17
+ MAX_CHANNEL_DELIVERY_NAME_LENGTH,
18
+ MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH
19
+ } from "./chunk-FNQ6T3CV.js";
12
20
  import {
13
21
  init_esbuild_shims
14
22
  } from "./chunk-5O2XNYP6.js";
@@ -267,6 +275,89 @@ function formatWorkspaceMemoryDreamSummary(touchedTopicCount) {
267
275
  }
268
276
  __name(formatWorkspaceMemoryDreamSummary, "formatWorkspaceMemoryDreamSummary");
269
277
 
278
+ // packages/cli/src/config/mcp-server-secrets.ts
279
+ init_esbuild_shims();
280
+ var REDACTED_MCP_SECRET = "__redacted__";
281
+ function recordOf(value) {
282
+ return value && typeof value === "object" && !Array.isArray(value) ? value : {};
283
+ }
284
+ __name(recordOf, "recordOf");
285
+ function redactRecord(record) {
286
+ return record ? Object.fromEntries(
287
+ Object.keys(record).map((key) => [key, REDACTED_MCP_SECRET])
288
+ ) : record;
289
+ }
290
+ __name(redactRecord, "redactRecord");
291
+ function restoreRecord(incoming, prior) {
292
+ if (!incoming) return incoming;
293
+ const priorRecord = recordOf(prior);
294
+ const result = {};
295
+ for (const [key, value] of Object.entries(incoming)) {
296
+ if (value !== REDACTED_MCP_SECRET) {
297
+ result[key] = value;
298
+ } else if (typeof priorRecord[key] === "string") {
299
+ result[key] = priorRecord[key];
300
+ }
301
+ }
302
+ return result;
303
+ }
304
+ __name(restoreRecord, "restoreRecord");
305
+ function redactMcpServerSecrets(server) {
306
+ return {
307
+ ...server,
308
+ env: redactRecord(server.env),
309
+ headers: redactRecord(server.headers),
310
+ ...server.oauth?.clientSecret ? {
311
+ oauth: {
312
+ ...server.oauth,
313
+ clientSecret: REDACTED_MCP_SECRET
314
+ }
315
+ } : {}
316
+ };
317
+ }
318
+ __name(redactMcpServerSecrets, "redactMcpServerSecrets");
319
+ function restoreRedactedMcpSecrets(server, existing) {
320
+ const existingOauth = recordOf(existing["oauth"]);
321
+ const incomingSecret = server.oauth?.clientSecret;
322
+ const restoredSecret = incomingSecret === REDACTED_MCP_SECRET ? existingOauth["clientSecret"] : incomingSecret;
323
+ return {
324
+ ...server,
325
+ env: restoreRecord(server.env, existing["env"]),
326
+ headers: restoreRecord(server.headers, existing["headers"]),
327
+ ...server.oauth ? {
328
+ oauth: {
329
+ ...server.oauth,
330
+ ...typeof restoredSecret === "string" ? { clientSecret: restoredSecret } : { clientSecret: void 0 }
331
+ }
332
+ } : {}
333
+ };
334
+ }
335
+ __name(restoreRedactedMcpSecrets, "restoreRedactedMcpSecrets");
336
+ function redactMcpServersSetting(value) {
337
+ const servers = recordOf(value);
338
+ return Object.fromEntries(
339
+ Object.entries(servers).map(([name, server]) => {
340
+ const record = recordOf(server);
341
+ return [name, redactMcpServerSecrets(record)];
342
+ })
343
+ );
344
+ }
345
+ __name(redactMcpServersSetting, "redactMcpServersSetting");
346
+ function restoreRedactedMcpServersSetting(value, existing) {
347
+ const servers = recordOf(value);
348
+ const existingServers = recordOf(existing);
349
+ return Object.fromEntries(
350
+ Object.entries(servers).map(([name, server]) => {
351
+ const record = recordOf(server);
352
+ return [
353
+ name,
354
+ restoreRedactedMcpSecrets(record, recordOf(existingServers[name]))
355
+ ];
356
+ })
357
+ );
358
+ }
359
+ __name(restoreRedactedMcpServersSetting, "restoreRedactedMcpServersSetting");
360
+
270
361
  // packages/cli/src/serve/validate-server-name.ts
271
362
  init_esbuild_shims();
272
363
  var VALID_SERVER_NAME = /^[A-Za-z0-9_-]+$/;
@@ -280,6 +371,64 @@ function isValidServerName(name) {
280
371
  }
281
372
  __name(isValidServerName, "isValidServerName");
282
373
 
374
+ // packages/cli/src/acp-integration/generation.ts
375
+ init_esbuild_shims();
376
+ var GENERATION_MAX_PROMPT_BYTES = 32 * 1024;
377
+ var GENERATION_TIMEOUT_MS = 6e4;
378
+ async function executeGeneration(config, requestId, prompt, signal, emit) {
379
+ const fastModel = config.getFastModel();
380
+ const mainModel = config.getModel();
381
+ const client = config.getBaseLlmClient();
382
+ let modelSource = fastModel ? "fast" : "main";
383
+ let resolved;
384
+ if (fastModel) {
385
+ try {
386
+ resolved = await client.resolveForModel(fastModel, { failClosed: true });
387
+ } catch {
388
+ modelSource = "main";
389
+ }
390
+ }
391
+ resolved ??= await client.resolveForModel(mainModel, { failClosed: true });
392
+ const { contentGenerator, model } = resolved;
393
+ await emit({ type: "started", model, modelSource });
394
+ const stream = await contentGenerator.generateContentStream(
395
+ {
396
+ model,
397
+ contents: [{ role: "user", parts: [{ text: prompt }] }],
398
+ config: {
399
+ abortSignal: signal,
400
+ tools: [],
401
+ thinkingConfig: { thinkingBudget: 0, includeThoughts: false },
402
+ temperature: 0.2
403
+ }
404
+ },
405
+ `generation:${requestId}`
406
+ );
407
+ let seq = 0;
408
+ let thinkingEmitted = false;
409
+ let usage;
410
+ for await (const chunk of stream) {
411
+ if (!thinkingEmitted && chunk.candidates?.some(
412
+ (candidate) => candidate.content?.parts?.some((part) => part.thought === true)
413
+ )) {
414
+ thinkingEmitted = true;
415
+ await emit({ type: "thinking" });
416
+ }
417
+ const text = getResponseText(chunk) ?? "";
418
+ if (text) {
419
+ await emit({ type: "delta", seq: seq++, text });
420
+ }
421
+ if (chunk.usageMetadata) usage = chunk.usageMetadata;
422
+ }
423
+ return {
424
+ model,
425
+ modelSource,
426
+ ...usage?.promptTokenCount !== void 0 ? { inputTokens: usage.promptTokenCount } : {},
427
+ ...usage?.candidatesTokenCount !== void 0 ? { outputTokens: usage.candidatesTokenCount } : {}
428
+ };
429
+ }
430
+ __name(executeGeneration, "executeGeneration");
431
+
283
432
  // packages/cli/src/acp-integration/session/history-replay-page.ts
284
433
  init_esbuild_shims();
285
434
  function createReplayCumulativeUsage() {
@@ -459,146 +608,73 @@ async function replayTranscriptRecordPage({
459
608
  }
460
609
  __name(replayTranscriptRecordPage, "replayTranscriptRecordPage");
461
610
 
462
- // packages/cli/src/acp-integration/generation.ts
611
+ // packages/cli/src/serve/channel-delivery.ts
463
612
  init_esbuild_shims();
464
- var GENERATION_MAX_PROMPT_BYTES = 32 * 1024;
465
- var GENERATION_TIMEOUT_MS = 6e4;
466
- async function executeGeneration(config, requestId, prompt, signal, emit) {
467
- const fastModel = config.getFastModel();
468
- const mainModel = config.getModel();
469
- const client = config.getBaseLlmClient();
470
- let modelSource = fastModel ? "fast" : "main";
471
- let resolved;
472
- if (fastModel) {
473
- try {
474
- resolved = await client.resolveForModel(fastModel, { failClosed: true });
475
- } catch {
476
- modelSource = "main";
477
- }
613
+ var TRUNCATED_TEXT_SUFFIX = "\n\n[Channel delivery truncated because the result exceeded the delivery size limit.]";
614
+ function isBoundedString(value, maxLength) {
615
+ return typeof value === "string" && value.trim().length > 0 && value.length <= maxLength;
616
+ }
617
+ __name(isBoundedString, "isBoundedString");
618
+ function parseChannelDelivery(value) {
619
+ if (typeof value !== "object" || value === null) {
620
+ throw new ChannelDeliveryError(
621
+ "channel_delivery_invalid",
622
+ "Invalid channel delivery."
623
+ );
478
624
  }
479
- resolved ??= await client.resolveForModel(mainModel, { failClosed: true });
480
- const { contentGenerator, model } = resolved;
481
- await emit({ type: "started", model, modelSource });
482
- const stream = await contentGenerator.generateContentStream(
483
- {
484
- model,
485
- contents: [{ role: "user", parts: [{ text: prompt }] }],
486
- config: {
487
- abortSignal: signal,
488
- tools: [],
489
- thinkingConfig: { thinkingBudget: 0, includeThoughts: false },
490
- temperature: 0.2
491
- }
492
- },
493
- `generation:${requestId}`
494
- );
495
- let seq = 0;
496
- let thinkingEmitted = false;
497
- let usage;
498
- for await (const chunk of stream) {
499
- if (!thinkingEmitted && chunk.candidates?.some(
500
- (candidate) => candidate.content?.parts?.some((part) => part.thought === true)
501
- )) {
502
- thinkingEmitted = true;
503
- await emit({ type: "thinking" });
504
- }
505
- const text = getResponseText(chunk) ?? "";
506
- if (text) {
507
- await emit({ type: "delta", seq: seq++, text });
508
- }
509
- if (chunk.usageMetadata) usage = chunk.usageMetadata;
625
+ const delivery = value;
626
+ const rawTarget = delivery["target"];
627
+ if (delivery["kind"] !== "channel" || typeof rawTarget !== "object" || rawTarget === null || !Object.keys(delivery).every((key) => key === "kind" || key === "target")) {
628
+ throw new ChannelDeliveryError(
629
+ "channel_delivery_invalid",
630
+ "Invalid channel delivery."
631
+ );
510
632
  }
511
- return {
512
- model,
513
- modelSource,
514
- ...usage?.promptTokenCount !== void 0 ? { inputTokens: usage.promptTokenCount } : {},
515
- ...usage?.candidatesTokenCount !== void 0 ? { outputTokens: usage.candidatesTokenCount } : {}
516
- };
517
- }
518
- __name(executeGeneration, "executeGeneration");
519
-
520
- // packages/cli/src/config/mcp-server-secrets.ts
521
- init_esbuild_shims();
522
- var REDACTED_MCP_SECRET = "__redacted__";
523
- function recordOf(value) {
524
- return value && typeof value === "object" && !Array.isArray(value) ? value : {};
525
- }
526
- __name(recordOf, "recordOf");
527
- function redactRecord(record) {
528
- return record ? Object.fromEntries(
529
- Object.keys(record).map((key) => [key, REDACTED_MCP_SECRET])
530
- ) : record;
531
- }
532
- __name(redactRecord, "redactRecord");
533
- function restoreRecord(incoming, prior) {
534
- if (!incoming) return incoming;
535
- const priorRecord = recordOf(prior);
536
- const result = {};
537
- for (const [key, value] of Object.entries(incoming)) {
538
- if (value !== REDACTED_MCP_SECRET) {
539
- result[key] = value;
540
- } else if (typeof priorRecord[key] === "string") {
541
- result[key] = priorRecord[key];
542
- }
633
+ const target = rawTarget;
634
+ if (!isBoundedString(target["channelName"], MAX_CHANNEL_DELIVERY_NAME_LENGTH) || target["type"] !== "user" && target["type"] !== "chat" || !isBoundedString(target["id"], MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH) || !Object.keys(target).every(
635
+ (key) => key === "channelName" || key === "type" || key === "id"
636
+ )) {
637
+ throw new ChannelDeliveryError(
638
+ "channel_delivery_invalid",
639
+ "Invalid channel delivery."
640
+ );
543
641
  }
544
- return result;
545
- }
546
- __name(restoreRecord, "restoreRecord");
547
- function redactMcpServerSecrets(server) {
548
642
  return {
549
- ...server,
550
- env: redactRecord(server.env),
551
- headers: redactRecord(server.headers),
552
- ...server.oauth?.clientSecret ? {
553
- oauth: {
554
- ...server.oauth,
555
- clientSecret: REDACTED_MCP_SECRET
556
- }
557
- } : {}
643
+ kind: "channel",
644
+ target: {
645
+ channelName: target["channelName"],
646
+ type: target["type"],
647
+ id: target["id"]
648
+ }
558
649
  };
559
650
  }
560
- __name(redactMcpServerSecrets, "redactMcpServerSecrets");
561
- function restoreRedactedMcpSecrets(server, existing) {
562
- const existingOauth = recordOf(existing["oauth"]);
563
- const incomingSecret = server.oauth?.clientSecret;
564
- const restoredSecret = incomingSecret === REDACTED_MCP_SECRET ? existingOauth["clientSecret"] : incomingSecret;
651
+ __name(parseChannelDelivery, "parseChannelDelivery");
652
+ function normalizeChannelDeliveryText(text) {
653
+ if (text.length <= MAX_CHANNEL_DELIVERY_TEXT_LENGTH) return text;
654
+ const prefixLimit = MAX_CHANNEL_DELIVERY_TEXT_LENGTH - TRUNCATED_TEXT_SUFFIX.length;
655
+ let prefix = text.slice(0, prefixLimit);
656
+ const lastCodeUnit = prefix.charCodeAt(prefix.length - 1);
657
+ if (lastCodeUnit >= 55296 && lastCodeUnit <= 56319) {
658
+ prefix = prefix.slice(0, -1);
659
+ }
660
+ return `${prefix}${TRUNCATED_TEXT_SUFFIX}`;
661
+ }
662
+ __name(normalizeChannelDeliveryText, "normalizeChannelDeliveryText");
663
+ function normalizeChannelDelivery(deliveryId, delivery, text) {
664
+ if (typeof text !== "string" || text.trim().length === 0) {
665
+ throw new ChannelDeliveryError(
666
+ "channel_delivery_invalid",
667
+ "Channel delivery text is empty."
668
+ );
669
+ }
565
670
  return {
566
- ...server,
567
- env: restoreRecord(server.env, existing["env"]),
568
- headers: restoreRecord(server.headers, existing["headers"]),
569
- ...server.oauth ? {
570
- oauth: {
571
- ...server.oauth,
572
- ...typeof restoredSecret === "string" ? { clientSecret: restoredSecret } : { clientSecret: void 0 }
573
- }
574
- } : {}
671
+ deliveryId,
672
+ channelName: delivery.target.channelName,
673
+ target: { type: delivery.target.type, id: delivery.target.id },
674
+ text: normalizeChannelDeliveryText(text)
575
675
  };
576
676
  }
577
- __name(restoreRedactedMcpSecrets, "restoreRedactedMcpSecrets");
578
- function redactMcpServersSetting(value) {
579
- const servers = recordOf(value);
580
- return Object.fromEntries(
581
- Object.entries(servers).map(([name, server]) => {
582
- const record = recordOf(server);
583
- return [name, redactMcpServerSecrets(record)];
584
- })
585
- );
586
- }
587
- __name(redactMcpServersSetting, "redactMcpServersSetting");
588
- function restoreRedactedMcpServersSetting(value, existing) {
589
- const servers = recordOf(value);
590
- const existingServers = recordOf(existing);
591
- return Object.fromEntries(
592
- Object.entries(servers).map(([name, server]) => {
593
- const record = recordOf(server);
594
- return [
595
- name,
596
- restoreRedactedMcpSecrets(record, recordOf(existingServers[name]))
597
- ];
598
- })
599
- );
600
- }
601
- __name(restoreRedactedMcpServersSetting, "restoreRedactedMcpServersSetting");
677
+ __name(normalizeChannelDelivery, "normalizeChannelDelivery");
602
678
 
603
679
  export {
604
680
  createWorkspaceMemoryExtractionErrorLogger,
@@ -609,19 +685,22 @@ export {
609
685
  MAX_REMEMBER_CONTENT_BYTES,
610
686
  formatWorkspaceMemoryForgetSummary,
611
687
  formatWorkspaceMemoryDreamSummary,
612
- isValidServerName,
613
- createReplayCumulativeUsage,
614
- copyCumulativeUsage,
615
- collectHistoryReplayUpdates,
616
- replayTranscriptRecordPage,
617
- GENERATION_MAX_PROMPT_BYTES,
618
- GENERATION_TIMEOUT_MS,
619
- executeGeneration,
620
688
  REDACTED_MCP_SECRET,
621
689
  redactMcpServerSecrets,
622
690
  restoreRedactedMcpSecrets,
623
691
  redactMcpServersSetting,
624
- restoreRedactedMcpServersSetting
692
+ restoreRedactedMcpServersSetting,
693
+ isValidServerName,
694
+ GENERATION_MAX_PROMPT_BYTES,
695
+ GENERATION_TIMEOUT_MS,
696
+ executeGeneration,
697
+ parseChannelDelivery,
698
+ normalizeChannelDeliveryText,
699
+ normalizeChannelDelivery,
700
+ createReplayCumulativeUsage,
701
+ copyCumulativeUsage,
702
+ collectHistoryReplayUpdates,
703
+ replayTranscriptRecordPage
625
704
  };
626
705
  /**
627
706
  * @license
@@ -1417,6 +1417,29 @@ var BlockStreamer = class {
1417
1417
  init_esbuild_shims();
1418
1418
  import { basename as basename3, join as join5 } from "node:path";
1419
1419
 
1420
+ // packages/channels/base/dist/ChannelProactiveDeliveryError.js
1421
+ init_esbuild_shims();
1422
+ var CHANNEL_PROACTIVE_DELIVERY_ERROR_CODE = "channel_proactive_delivery_error";
1423
+ var ChannelProactiveDeliveryError = class extends Error {
1424
+ static {
1425
+ __name(this, "ChannelProactiveDeliveryError");
1426
+ }
1427
+ disposition;
1428
+ code = CHANNEL_PROACTIVE_DELIVERY_ERROR_CODE;
1429
+ constructor(disposition, message, options) {
1430
+ super(message, options);
1431
+ this.disposition = disposition;
1432
+ this.name = "ChannelProactiveDeliveryError";
1433
+ }
1434
+ };
1435
+ function isChannelProactiveDeliveryError(error) {
1436
+ if (typeof error !== "object" || error === null)
1437
+ return false;
1438
+ const candidate = error;
1439
+ return candidate.code === CHANNEL_PROACTIVE_DELIVERY_ERROR_CODE && (candidate.disposition === "permanent" || candidate.disposition === "transient") && typeof candidate.message === "string";
1440
+ }
1441
+ __name(isChannelProactiveDeliveryError, "isChannelProactiveDeliveryError");
1442
+
1420
1443
  // packages/channels/base/dist/GroupGate.js
1421
1444
  init_esbuild_shims();
1422
1445
  var GroupGate = class {
@@ -3233,6 +3256,8 @@ var SENSITIVE_PAYLOAD_KEY_PATTERN = new RegExp([
3233
3256
  "media",
3234
3257
  "webhook",
3235
3258
  "staff_id",
3259
+ "staffId",
3260
+ "dingtalkId",
3236
3261
  "open_id",
3237
3262
  "union_id",
3238
3263
  "user_?id",
@@ -3521,6 +3546,30 @@ var ChannelBase = class {
3521
3546
  mode: config.memoryScope?.mode ?? "metadata-only"
3522
3547
  };
3523
3548
  }
3549
+ async deliverProactive(target, text) {
3550
+ if (target.channelName !== this.name) {
3551
+ throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" does not own delivery target.`);
3552
+ }
3553
+ if (!this.supportsProactiveSend()) {
3554
+ throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" does not support proactive delivery.`);
3555
+ }
3556
+ if (target.type !== "user" && target.type !== "chat" || typeof target.id !== "string" || target.id.trim().length === 0) {
3557
+ throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" received an invalid proactive target.`);
3558
+ }
3559
+ if (typeof text !== "string" || text.trim().length === 0) {
3560
+ throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" received empty proactive text.`);
3561
+ }
3562
+ const sessionTarget = {
3563
+ channelName: target.channelName,
3564
+ senderId: target.id,
3565
+ chatId: target.id,
3566
+ isGroup: target.type === "chat"
3567
+ };
3568
+ if (!this.supportsProactiveDeliveryTarget(sessionTarget)) {
3569
+ throw new ChannelProactiveDeliveryError("permanent", `Channel "${this.name}" does not support this proactive target.`);
3570
+ }
3571
+ await this.pushProactiveDelivery(sessionTarget, text);
3572
+ }
3524
3573
  /** Built once — identity/memoryScope are frozen at construction. */
3525
3574
  boundaryPrompt;
3526
3575
  channelBoundaryPrompt() {
@@ -3563,6 +3612,9 @@ var ChannelBase = class {
3563
3612
  supportsProactiveTarget(target) {
3564
3613
  return target.threadId === void 0;
3565
3614
  }
3615
+ supportsProactiveDeliveryTarget(target) {
3616
+ return this.supportsProactiveTarget(target);
3617
+ }
3566
3618
  supportsProactiveWebhookTarget(target) {
3567
3619
  return this.supportsProactiveTarget(target);
3568
3620
  }
@@ -3572,6 +3624,16 @@ var ChannelBase = class {
3572
3624
  }
3573
3625
  await this.sendMessage(target.chatId, text);
3574
3626
  }
3627
+ async pushProactiveDelivery(target, text) {
3628
+ try {
3629
+ await this.pushProactive(target, text);
3630
+ } catch (error) {
3631
+ if (isChannelProactiveDeliveryError(error)) {
3632
+ throw error;
3633
+ }
3634
+ throw new ChannelProactiveDeliveryError("transient", error instanceof Error ? error.message : String(error), { cause: error });
3635
+ }
3636
+ }
3575
3637
  async prepareUnattendedSessionContext(sessionId, target, taskLabel) {
3576
3638
  const staticContext = [];
3577
3639
  const channelMemory = this.channelMemory;
@@ -5124,7 +5186,7 @@ ${requestList}`);
5124
5186
  renderChannelMemoryCandidates(entries) {
5125
5187
  return entries.map((entry) => this.renderChannelMemoryCandidate(entry));
5126
5188
  }
5127
- async handleChannelMemoryIntent(envelope, intent) {
5189
+ async handleChannelMemoryIntent(envelope, intent, options = {}) {
5128
5190
  if (intent.kind === "no_match") {
5129
5191
  await this.sendMessage(envelope.chatId, "No matching channel memory entry.");
5130
5192
  return;
@@ -5252,6 +5314,9 @@ ${requestList}`);
5252
5314
  if (result.changed) {
5253
5315
  this.invalidateUnattendedMemory(envelope);
5254
5316
  }
5317
+ if (options.suppressSaveConfirmation) {
5318
+ return;
5319
+ }
5255
5320
  if (result.added.length > 0) {
5256
5321
  const ids = result.added.map((entry) => entry.id);
5257
5322
  await this.sendMessage(envelope.chatId, result.duplicateIds.length > 0 ? `Channel memory saved: ${ids.join(", ")}. Skipped duplicates: ${result.duplicateIds.join(", ")}.` : ids.length === 1 ? `Channel memory ${ids[0]} saved.` : `Channel memory saved: ${ids.join(", ")}.`);
@@ -5861,15 +5926,22 @@ ${promptText}`;
5861
5926
  await this.recordObservedContact(envelope);
5862
5927
  }
5863
5928
  let memoryIntent = parseChannelMemoryIntent(envelope.text);
5929
+ let memoryIntentFromClassifier = false;
5864
5930
  if (memoryIntent?.kind === "update" || memoryIntent?.kind === "remove") {
5865
5931
  this.deletePendingChannelMemoryMutation(envelope);
5866
5932
  }
5867
5933
  if (!memoryIntent && this.shouldClassifyChannelMemoryIntent(envelope.text)) {
5868
5934
  memoryIntent = await this.classifyChannelMemoryIntent(envelope);
5935
+ memoryIntentFromClassifier = memoryIntent !== null;
5869
5936
  }
5870
5937
  if (memoryIntent) {
5871
- await this.handleChannelMemoryIntent(envelope, memoryIntent);
5872
- return;
5938
+ const memorySaveIsSideEffect = memoryIntentFromClassifier && memoryIntent.kind === "remember";
5939
+ await this.handleChannelMemoryIntent(envelope, memoryIntent, {
5940
+ suppressSaveConfirmation: memorySaveIsSideEffect
5941
+ });
5942
+ if (!memorySaveIsSideEffect) {
5943
+ return;
5944
+ }
5873
5945
  }
5874
5946
  const parsed = this.parseCommand(envelope.text);
5875
5947
  if (parsed) {
@@ -6469,6 +6541,8 @@ export {
6469
6541
  sanitizeLogText,
6470
6542
  AcpBridge,
6471
6543
  DaemonChannelBridge,
6544
+ ChannelProactiveDeliveryError,
6545
+ isChannelProactiveDeliveryError,
6472
6546
  PairingStore,
6473
6547
  SessionRouter,
6474
6548
  ChannelLoopScheduler,
@@ -6476,3 +6550,8 @@ export {
6476
6550
  ChannelLoopStore,
6477
6551
  isTerminalTaskLifecycleType
6478
6552
  };
6553
+ /**
6554
+ * @license
6555
+ * Copyright 2026 Qwen Team
6556
+ * SPDX-License-Identifier: Apache-2.0
6557
+ */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getEffectiveSupportedModes
5
- } from "./chunk-7MWABCXU.js";
5
+ } from "./chunk-U7M2DMGW.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";