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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +2 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +38 -28
  3. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/features/channels/github.md +107 -0
  5. package/bundled/qc-helper/docs/features/channels/overview.md +61 -6
  6. package/bundled/qc-helper/docs/features/code-review.md +1 -1
  7. package/bundled/qc-helper/docs/features/hooks.md +52 -15
  8. package/bundled/qc-helper/docs/features/mcp.md +9 -1
  9. package/bundled/qc-helper/docs/features/scheduled-tasks.md +3 -1
  10. package/bundled/qc-helper/docs/features/sub-agents.md +20 -0
  11. package/bundled/qc-helper/docs/qwen-serve.md +4 -2
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
  13. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  14. package/bundled/review/DESIGN.md +19 -0
  15. package/bundled/review/SKILL.md +120 -61
  16. package/chunks/MaxSizedBox-VI3ROJJA.js +84 -0
  17. package/chunks/{StandaloneSessionPicker-O6RKBPU4.js → StandaloneSessionPicker-LYXKD2EV.js} +66 -68
  18. package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-DFVPFQ6C.js} +2 -2
  19. package/chunks/{acpAgent-HYFVXVDR.js → acpAgent-WN5SRDQO.js} +1317 -542
  20. package/chunks/agent-K6ECSM64.js +80 -0
  21. package/chunks/agent-headless-NO4Y2HOE.js +74 -0
  22. package/chunks/{anthropicContentGenerator-LXUXMOE7.js → anthropicContentGenerator-V2QOGVYD.js} +61 -20
  23. package/chunks/{artifact-tool-Y5T7GG7F.js → artifact-tool-6K6U7XYJ.js} +4 -4
  24. package/chunks/{askUserQuestion-2H6747FR.js → askUserQuestion-GD2IJJ7I.js} +4 -4
  25. package/chunks/bridge-3KJEWDNE.js +90 -0
  26. package/chunks/{build-RV63TIRH.js → build-S6DO7LMM.js} +1 -1
  27. package/chunks/{ca-25EDXPFZ.js → ca-6W3SK7OQ.js} +6 -1
  28. package/chunks/{channel-management-service-G74LFADV.js → channel-management-service-XR7GZSWF.js} +4 -4
  29. package/chunks/channel-settings-store-HW4FXXUA.js +87 -0
  30. package/chunks/{channel-worker-group-PTJIJSKC.js → channel-worker-group-XDPTDWTX.js} +9 -5
  31. package/chunks/{channel-worker-manager-WIMGM2FD.js → channel-worker-manager-YYEHVRRE.js} +9 -5
  32. package/chunks/{channel-worker-supervisor-KUFTR6P5.js → channel-worker-supervisor-74HTWA2G.js} +5 -4
  33. package/chunks/{chunk-M5JM7OSF.js → chunk-2DN4J57Y.js} +2 -3
  34. package/chunks/{chunk-WDSWXQU3.js → chunk-2FAK6PNM.js} +2 -2
  35. package/chunks/{chunk-BPJSQIJX.js → chunk-2J3OJGTL.js} +0 -2
  36. package/chunks/{chunk-EPDRMGT4.js → chunk-2LKVPASC.js} +4 -28
  37. package/chunks/{chunk-PWTZEM3C.js → chunk-2LQTH543.js} +3 -37
  38. package/chunks/{chunk-PANH4R3B.js → chunk-2N7CODY5.js} +18 -12
  39. package/chunks/{chunk-ER5LWJR6.js → chunk-2XSLTRFZ.js} +3 -3
  40. package/chunks/{chunk-6PSLCFQ2.js → chunk-3EFXSQCM.js} +18 -9
  41. package/chunks/{chunk-HIJQF5B5.js → chunk-3L2SPEBH.js} +1 -1
  42. package/chunks/{chunk-BIQWWWJN.js → chunk-4G2BISNC.js} +1 -1
  43. package/chunks/{chunk-B4UMZKMU.js → chunk-52ZSWYEG.js} +1 -1
  44. package/chunks/{chunk-YAF5VNU7.js → chunk-5KTQXHPY.js} +4 -5
  45. package/chunks/{chunk-2YZJCM5T.js → chunk-5MKRTI4T.js} +4 -4
  46. package/chunks/{chunk-DHHOYAPR.js → chunk-5TBMQLGG.js} +7 -7
  47. package/chunks/{chunk-A4UCTEB5.js → chunk-5WV5S2GT.js} +0 -1
  48. package/chunks/{chunk-FY3M44RD.js → chunk-5YKDXHUY.js} +3 -3
  49. package/chunks/{chunk-TF2X2WCT.js → chunk-5ZF5XXTS.js} +2 -2
  50. package/chunks/{chunk-K4XWPEWB.js → chunk-64LQLPL7.js} +4 -33
  51. package/chunks/{chunk-B7QDM6Z7.js → chunk-657BH7VM.js} +2 -2
  52. package/chunks/{chunk-5THCYPLO.js → chunk-65PQENQP.js} +14 -7
  53. package/chunks/{chunk-J6D3VXCC.js → chunk-6PE7N3A4.js} +17 -6
  54. package/chunks/{chunk-JZA3JUDJ.js → chunk-6QIGFD5W.js} +1 -1
  55. package/chunks/{chunk-Z5BLYMZM.js → chunk-6RPMI2AB.js} +6 -6
  56. package/chunks/{chunk-OHNBB4XR.js → chunk-75GFAX4R.js} +1 -1
  57. package/chunks/{chunk-BO4XCS7P.js → chunk-75MIQ3LV.js} +20 -85
  58. package/chunks/{chunk-52O2CIUL.js → chunk-7AEJDLRA.js} +130 -5
  59. package/chunks/{chunk-BYFNTGKI.js → chunk-7BAU433D.js} +2287 -941
  60. package/chunks/{chunk-ZE5WPL4I.js → chunk-7DXQIJID.js} +3 -3
  61. package/chunks/{chunk-ML52PL6O.js → chunk-7I5GTCT4.js} +483 -248
  62. package/chunks/{chunk-A5L3JMUA.js → chunk-7XATOOE7.js} +18 -4
  63. package/chunks/{chunk-C3NS4F2Q.js → chunk-A2D5BAVP.js} +1 -1
  64. package/chunks/{chunk-5I2IWRSH.js → chunk-A3NDJ5SB.js} +2 -2
  65. package/chunks/{chunk-2JM6GZ5D.js → chunk-A4COXFB3.js} +8 -13
  66. package/chunks/{chunk-CC4N4M36.js → chunk-AQIDMUGU.js} +1 -1
  67. package/chunks/{chunk-PJIZUQVC.js → chunk-AZQ3DT76.js} +2 -2
  68. package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
  69. package/chunks/{chunk-BJX6ZSUK.js → chunk-BCZFQXWK.js} +2 -2
  70. package/chunks/{chunk-SRZ6DXVG.js → chunk-BGTQCTQW.js} +44 -136
  71. package/chunks/{chunk-PSWQZHEA.js → chunk-BMFALVGQ.js} +1 -1
  72. package/chunks/{chunk-XHRTVPG2.js → chunk-BNWB5CYE.js} +7 -7
  73. package/chunks/{chunk-P5V4T7NK.js → chunk-BPZKP57P.js} +11 -3
  74. package/chunks/{chunk-2OM7GEXO.js → chunk-CAPPWD3X.js} +3 -3
  75. package/chunks/{chunk-LNURQEMZ.js → chunk-CQL64ESB.js} +7 -7
  76. package/chunks/{chunk-TOFQCPDC.js → chunk-CVHIL5IG.js} +4 -5
  77. package/chunks/{chunk-XVNQMZ2I.js → chunk-DGEIYUC3.js} +0 -1
  78. package/chunks/{chunk-BPZALHVR.js → chunk-DI35ZN7T.js} +1 -1
  79. package/chunks/{chunk-SQBYH7PX.js → chunk-DZLYR4U3.js} +1 -1
  80. package/chunks/{chunk-JALU3ZDU.js → chunk-EIF3FXTB.js} +117 -24
  81. package/chunks/{chunk-TQCBGUHN.js → chunk-EJGJIBRS.js} +5 -5
  82. package/chunks/{chunk-5U4IPFBR.js → chunk-EVKE2FZL.js} +4 -4
  83. package/chunks/{chunk-OKY7HXPG.js → chunk-FNMZK765.js} +2 -2
  84. package/chunks/{chunk-KU5XMLDK.js → chunk-FTD6DP4T.js} +3 -1
  85. package/chunks/chunk-FYJ7W2PI.js +194 -0
  86. package/chunks/{chunk-L5UHQJTJ.js → chunk-GATT5TKW.js} +1 -1
  87. package/chunks/{chunk-MVS3NS2N.js → chunk-GEBV2JGB.js} +28 -5
  88. package/chunks/{chunk-VAK25FTU.js → chunk-GKX7E4CO.js} +1 -1
  89. package/chunks/{chunk-LS77BEZP.js → chunk-GLCZKT5V.js} +1 -5
  90. package/chunks/{chunk-N3FAY5CM.js → chunk-GNR2RNMP.js} +157 -4
  91. package/chunks/{chunk-YH6G52F2.js → chunk-GXIJHV66.js} +4 -4
  92. package/chunks/{chunk-HV3G62R6.js → chunk-GZ3RCT54.js} +1 -1
  93. package/chunks/{chunk-QY5MMZ6O.js → chunk-HMRM2A3U.js} +3 -3
  94. package/chunks/chunk-HV26XH34.js +319 -0
  95. package/chunks/{chunk-M4UKFCZ2.js → chunk-J7OACQDE.js} +193 -155
  96. package/chunks/{chunk-3HBZKBMQ.js → chunk-JFMA7Y5M.js} +5 -5
  97. package/chunks/{chunk-OJGCZBB7.js → chunk-JHNRZMHI.js} +41 -36
  98. package/chunks/{chunk-63P4EL5V.js → chunk-JMONIXMJ.js} +1 -1
  99. package/chunks/{chunk-L26JL52R.js → chunk-JSD33JG6.js} +47 -64
  100. package/chunks/{chunk-KIUFNBHR.js → chunk-JTV5K7NH.js} +1 -1
  101. package/chunks/{chunk-PHVR5UUY.js → chunk-JX27F6QS.js} +1 -1
  102. package/chunks/chunk-JYBU6YUE.js +378 -0
  103. package/chunks/{chunk-A6UO2C7C.js → chunk-KAMYKP7E.js} +167 -81
  104. package/chunks/{chunk-LG4GZIVV.js → chunk-KCO4FLFJ.js} +4 -4
  105. package/chunks/{chunk-2W3OOD4W.js → chunk-L55JWS76.js} +6 -3
  106. package/chunks/{chunk-RHLZR4E5.js → chunk-LGAOC3ZS.js} +1 -1
  107. package/chunks/{chunk-DM22XS4K.js → chunk-LO4ROVP4.js} +261 -15
  108. package/chunks/{chunk-NH6KE4JX.js → chunk-LW3RFMG7.js} +3 -3
  109. package/chunks/{chunk-J56UI34H.js → chunk-M7OONWYU.js} +2 -2
  110. package/chunks/{chunk-V6VRAM7B.js → chunk-MHAIJPTD.js} +12 -12
  111. package/chunks/{chunk-FODK6UMO.js → chunk-MPHPFVKK.js} +0 -2
  112. package/chunks/{chunk-LZEMEFKY.js → chunk-MR5EAQ5M.js} +1 -1
  113. package/chunks/{chunk-JESCGQM3.js → chunk-NAVJD2PQ.js} +8 -7
  114. package/chunks/{chunk-H5FFA6TH.js → chunk-NOKIVHOL.js} +16 -3
  115. package/chunks/{chunk-6OUGMXDC.js → chunk-NWNEANAT.js} +7 -7
  116. package/chunks/{chunk-B6ZJ7SI6.js → chunk-OCESJA77.js} +391 -328
  117. package/chunks/chunk-OCPBI7J5.js +18 -0
  118. package/chunks/{chunk-E5TUC6CA.js → chunk-OKF7JF3R.js} +3 -3
  119. package/chunks/{chunk-2Q3OT4OV.js → chunk-P4WOAOJW.js} +141 -64
  120. package/chunks/{chunk-4M377AZG.js → chunk-PB3MBFKG.js} +6 -6
  121. package/chunks/{chunk-QPDRAXDJ.js → chunk-PLDQBIO6.js} +1 -1
  122. package/chunks/{chunk-FNQ6T3CV.js → chunk-PONHVBRT.js} +10 -7
  123. package/chunks/{chunk-RWS5VYWC.js → chunk-PT722TDT.js} +267 -378
  124. package/chunks/chunk-Q43KPN7X.js +2196 -0
  125. package/chunks/{chunk-VDDGDZMA.js → chunk-QHWCP53L.js} +14 -7
  126. package/chunks/{chunk-SASBXAQL.js → chunk-QIZKCVM3.js} +4 -4
  127. package/chunks/{chunk-32MVHM4T.js → chunk-RCUQIPTN.js} +1 -1
  128. package/chunks/{chunk-6FGBXPWM.js → chunk-RPLGZJV2.js} +38 -44
  129. package/chunks/{chunk-3IXOIAKE.js → chunk-S4WJVPZW.js} +18 -6
  130. package/chunks/{chunk-6AM5D4ME.js → chunk-S6LOFUVP.js} +0 -12
  131. package/chunks/{chunk-INADJJGW.js → chunk-S7W2GKIO.js} +0 -2
  132. package/chunks/{chunk-MUP3T3AD.js → chunk-SGFT55XI.js} +1 -35
  133. package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
  134. package/chunks/chunk-T26EAKDL.js +13 -0
  135. package/chunks/{chunk-3MSHSCSN.js → chunk-T2QMKU3R.js} +79 -1
  136. package/chunks/{chunk-VFSJ5VRH.js → chunk-T3O2B4XO.js} +3 -3
  137. package/chunks/{chunk-MSLKI6C2.js → chunk-T4TXDL7G.js} +32 -21
  138. package/chunks/{chunk-E5WH5O3C.js → chunk-TBBV36Y4.js} +4 -4
  139. package/chunks/{chunk-VV6XU5L7.js → chunk-TCIFAA7K.js} +16 -11
  140. package/chunks/{chunk-DN6ZX5AY.js → chunk-TDL6LB4K.js} +46 -11
  141. package/chunks/{chunk-W4CQXHT6.js → chunk-TFRMVU6R.js} +1 -1
  142. package/chunks/{chunk-GDIPH4JY.js → chunk-TV64SXKD.js} +6 -6
  143. package/chunks/{chunk-FQK6JAFG.js → chunk-U3E3UQAA.js} +4 -4
  144. package/chunks/{chunk-7FZEBPKS.js → chunk-UBEPNVDI.js} +23 -18
  145. package/chunks/{chunk-NL7LTRLR.js → chunk-UHUSJ6X7.js} +29 -68
  146. package/chunks/{chunk-ZOIFNCKL.js → chunk-UPUG4GXM.js} +3 -23
  147. package/chunks/{chunk-6GMVPFB2.js → chunk-UWMLWVCA.js} +19 -6
  148. package/chunks/{chunk-U7TXFVUN.js → chunk-VCPIZRYH.js} +118 -95
  149. package/chunks/{chunk-LNARWLZQ.js → chunk-VWOOBLTY.js} +2 -2
  150. package/chunks/{chunk-I7XZ3RY5.js → chunk-VYOXCEPJ.js} +1 -1
  151. package/chunks/{chunk-USTWD7QV.js → chunk-W4MIWP6M.js} +26 -16
  152. package/chunks/{chunk-DLWL3Z7A.js → chunk-WBSMNTSV.js} +3 -3
  153. package/chunks/{chunk-G4WFQUYQ.js → chunk-WUZ7H6DP.js} +1 -1
  154. package/chunks/{chunk-2JZBVYTU.js → chunk-WZRWHXFE.js} +1 -8
  155. package/chunks/{chunk-DM4Q4JJH.js → chunk-X5WNMMIA.js} +22506 -33611
  156. package/chunks/{chunk-MK7VQDN3.js → chunk-XBYYDKAZ.js} +7 -6
  157. package/chunks/{chunk-COH43MRJ.js → chunk-XCGIMOLN.js} +27 -1
  158. package/chunks/{chunk-BRRAJXPA.js → chunk-XFZYFU3I.js} +1 -1
  159. package/chunks/{chunk-3QMGYBFN.js → chunk-XWWKIXVD.js} +1 -80
  160. package/chunks/{chunk-3SJ43L4W.js → chunk-XZC5VLBZ.js} +2 -0
  161. package/chunks/{chunk-UUUTRMI2.js → chunk-Y4IHBGBP.js} +1 -1
  162. package/chunks/{chunk-PR75REBZ.js → chunk-Y6AXW2OG.js} +12 -82
  163. package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
  164. package/chunks/{chunk-3JAQDSXN.js → chunk-YGF33UXG.js} +70 -8
  165. package/chunks/chunk-Z4X5MTRT.js +133 -0
  166. package/chunks/{chunk-UW5EOVUN.js → chunk-ZBVS26BY.js} +4 -4
  167. package/chunks/{chunk-ZD6UTE4A.js → chunk-ZHBO7WVX.js} +1 -1
  168. package/chunks/{chunk-HTO4JFDZ.js → chunk-ZPJWUGCS.js} +0 -1
  169. package/chunks/{chunk-66RMLJHC.js → chunk-ZURDMIDR.js} +355 -143
  170. package/chunks/{computer-use-DOFAHZAB.js → computer-use-ZTIDHMMA.js} +48 -50
  171. package/chunks/{config-utils-VFQXVGNR.js → config-utils-NYSXDMEQ.js} +4 -4
  172. package/chunks/contextCommand-2PIEU37Z.js +79 -0
  173. package/chunks/core-runtime-3XEYLQFK.js +133 -0
  174. package/chunks/{create-sub-session-7543K2QA.js → create-sub-session-R76FVXCI.js} +45 -47
  175. package/chunks/{create-sub-session-IWW2IZ2T.js → create-sub-session-SBYUMSSS.js} +3 -3
  176. package/chunks/{cron-create-YIID5XAW.js → cron-create-2QK6TCEC.js} +6 -6
  177. package/chunks/{cron-delete-ZVHYCEP2.js → cron-delete-FDCDFYMG.js} +5 -5
  178. package/chunks/{cron-list-XEGS463Q.js → cron-list-XN3WVBTP.js} +6 -6
  179. package/chunks/{daemon-VOMQW7KZ.js → daemon-Q2AB5Z23.js} +167 -15
  180. package/chunks/daemon-status-provider-3XJI6CAL.js +89 -0
  181. package/chunks/daemon-trust-policy-ILUDTLHD.js +84 -0
  182. package/chunks/daemon-trust-policy-monitor-HS3PKKRO.js +171 -0
  183. package/chunks/{de-HGRCYDEJ.js → de-SY6O76BF.js} +6 -1
  184. package/chunks/deferred-core-runtime-X4QV662U.js +88 -0
  185. package/chunks/dist-BSTVRPMT.js +4227 -0
  186. package/chunks/{dist-NNVBBOGU.js → dist-DOLYHMXE.js} +2 -2
  187. package/chunks/{dist-RTJFMNEZ.js → dist-HVRQ2CFL.js} +271 -11
  188. package/chunks/{dist-ANLAT3GS.js → dist-IXQEQWRG.js} +2 -1
  189. package/chunks/{dist-BRB6EXK4.js → dist-SSU66DM4.js} +3 -3
  190. package/chunks/{dist-KTYYJ2C5.js → dist-SV7Q3AWJ.js} +1 -1
  191. package/chunks/{dist-K6Y4E7FX.js → dist-YGBBMK3Z.js} +1 -1
  192. package/chunks/earlyInputCapture-XKLZT7ZD.js +81 -0
  193. package/chunks/{edit-RIEOJWKB.js → edit-HHGIOTQ2.js} +47 -49
  194. package/chunks/{en-MTWBNGDO.js → en-NBK3JKCE.js} +9 -1
  195. package/chunks/{enter-worktree-OGK5FQ3R.js → enter-worktree-ZN7PUQ46.js} +47 -49
  196. package/chunks/{enterPlanMode-IWZYALIB.js → enterPlanMode-EIFIDSIV.js} +47 -49
  197. package/chunks/{environment-VZ7BRI4Q.js → environment-XXQ75D2Q.js} +47 -49
  198. package/chunks/errors-4GMVU7CK.js +87 -0
  199. package/chunks/esm-K5FARBNI.js +5548 -0
  200. package/chunks/{exit-worktree-4TEYVIVP.js → exit-worktree-GXMI4ATY.js} +47 -49
  201. package/chunks/exitPlanMode-34UVY7M6.js +72 -0
  202. package/chunks/{fast-path-HYE7IFEV.js → fast-path-VPIVA7L6.js} +13 -3
  203. package/chunks/{fr-45RLL55O.js → fr-4KG5V7UT.js} +6 -1
  204. package/chunks/{gemini-NGRQX3YJ.js → gemini-4BWIK4WD.js} +103 -103
  205. package/chunks/{geminiContentGenerator-FQHPFZSR.js → geminiContentGenerator-3XVV5MSS.js} +7 -7
  206. package/chunks/{getMachineId-bsd-V7W3GODC.js → getMachineId-bsd-FG7IUY6U.js} +1 -1
  207. package/chunks/{getMachineId-darwin-TDO75DQP.js → getMachineId-darwin-GLCJI2RA.js} +1 -1
  208. package/chunks/{getMachineId-linux-TF43WQT2.js → getMachineId-linux-O6OPPAKO.js} +1 -1
  209. package/chunks/{getMachineId-unsupported-ZGUO3TXT.js → getMachineId-unsupported-S6CKYVGC.js} +1 -1
  210. package/chunks/{getMachineId-win-ECFYZZFQ.js → getMachineId-win-X5SRNEH7.js} +1 -1
  211. package/chunks/{glob-FRTM3X2E.js → glob-TZ2ABCJG.js} +47 -49
  212. package/chunks/{grep-RKWVROCW.js → grep-BEF463NA.js} +49 -50
  213. package/chunks/handleAutoUpdate-L6ERF36Y.js +80 -0
  214. package/chunks/i18n-FMM5FDXR.js +96 -0
  215. package/chunks/{image-gen-WIEM7KZA.js → image-gen-HHVLF7HS.js} +12 -12
  216. package/chunks/initializer-625TIAIO.js +85 -0
  217. package/chunks/installationInfo-6AM4I2Y3.js +79 -0
  218. package/chunks/{ja-B7DF7DFG.js → ja-F3GSQXMF.js} +6 -1
  219. package/chunks/{keychain-token-storage-MDTG3WRM.js → keychain-token-storage-72IYCAZV.js} +3 -3
  220. package/chunks/lib-RUF3WZA6.js +9 -0
  221. package/chunks/list-L2GA674Y.js +88 -0
  222. package/chunks/{list-agents-5KJJHR6I.js → list-agents-R6KDXQR3.js} +3 -3
  223. package/chunks/loadedSettingsAdapter-SPUTNKAV.js +82 -0
  224. package/chunks/{loggingContentGenerator-WGM27QAW.js → loggingContentGenerator-LKOF7XI7.js} +31 -30
  225. package/chunks/{loop-wakeup-FXKNNYSY.js → loop-wakeup-3IQKCYAH.js} +7 -7
  226. package/chunks/{ls-NTK6VOQJ.js → ls-DKZ37A7N.js} +5 -5
  227. package/chunks/{lsp-2JI24STP.js → lsp-QNWN7KN3.js} +3 -3
  228. package/chunks/{managed-npm-update-JQ2CG3RH.js → managed-npm-update-ACQGGIN5.js} +46 -48
  229. package/chunks/mcp-SZLHKFJW.js +82 -0
  230. package/chunks/{monitor-7FEWXX5F.js → monitor-DF52UVHI.js} +47 -49
  231. package/chunks/nonInteractiveCli-5T7KYKLK.js +144 -0
  232. package/chunks/{notebook-edit-JGJV2K6J.js → notebook-edit-FCWS4XVN.js} +47 -49
  233. package/chunks/{openaiContentGenerator-JPVXDTAO.js → openaiContentGenerator-7LDK3DCJ.js} +25 -27
  234. package/chunks/pidfile-6ERW3DF4.js +85 -0
  235. package/chunks/process-registry-2CHQBXH5.js +157 -0
  236. package/chunks/{processUtils-V2LCK6T6.js → processUtils-COKZAMUP.js} +2 -2
  237. package/chunks/{pt-22Q3FP73.js → pt-EQ33KWEN.js} +6 -1
  238. package/chunks/{qwenContentGenerator-TICV2W2Z.js → qwenContentGenerator-TKWUMR7N.js} +51 -53
  239. package/chunks/{qwenOAuth2-XGFI5XJG.js → qwenOAuth2-7HMU47SF.js} +10 -10
  240. package/chunks/read-file-X6DRC574.js +29 -0
  241. package/chunks/{read-mcp-resource-4DKQWGHD.js → read-mcp-resource-GFTWYXMK.js} +4 -4
  242. package/chunks/{record-artifact-RQKFYO5B.js → record-artifact-XAMSFSW4.js} +3 -3
  243. package/chunks/resumeHistoryUtils-PFPM2GWM.js +90 -0
  244. package/chunks/ripGrep-OWV2IVJC.js +72 -0
  245. package/chunks/{ru-FZCNZHDC.js → ru-7OZAUKGG.js} +6 -1
  246. package/chunks/{run-qwen-serve-3VCV4I7E.js → run-qwen-serve-TSTCO4XE.js} +917 -249
  247. package/chunks/{runtime-AXJWIEDU.js → runtime-DAUPSUKI.js} +55 -57
  248. package/chunks/{scheduler-RS2I6RU5.js → scheduler-KMADMT26.js} +45 -47
  249. package/chunks/{sdk-exporters-grpc-AK3LGHNO.js → sdk-exporters-grpc-54L4LS5L.js} +4 -4
  250. package/chunks/{sdk-exporters-http-FS6ZV7MF.js → sdk-exporters-http-WO556XNU.js} +7 -7
  251. package/chunks/{sdk-impl-7FZSCSXB.js → sdk-impl-LPAVACSF.js} +10 -10
  252. package/chunks/{send-message-Q6OOR6BR.js → send-message-SAWK4DZX.js} +6 -6
  253. package/chunks/serve-NNRWS6F4.js +88 -0
  254. package/chunks/{server-HRZ23U7M.js → server-WEH7DVCH.js} +3304 -842
  255. package/chunks/{session-7XHZKTVV.js → session-WXC56V2I.js} +94 -94
  256. package/chunks/{settings-7ZGZDXAS.js → settings-DJDXFDZ3.js} +54 -56
  257. package/chunks/shell-JN5VRQXD.js +82 -0
  258. package/chunks/{skill-LIWXNLDW.js → skill-SGXPKJCS.js} +20 -22
  259. package/chunks/skill-settings-VJ5PDMZI.js +90 -0
  260. package/chunks/spawnChannel-ETMJW7YX.js +81 -0
  261. package/chunks/standalone-update-MK3Z7KBI.js +91 -0
  262. package/chunks/{startInteractiveUI-IW3CSKHA.js → startInteractiveUI-ZCGIXPGT.js} +715 -373
  263. package/chunks/{syntheticOutput-I3757IWH.js → syntheticOutput-355CB6CJ.js} +4 -4
  264. package/chunks/{task-create-N7WQSGYA.js → task-create-INGWNUG4.js} +10 -10
  265. package/chunks/{task-list-FOPULZEP.js → task-list-5XNNGTF4.js} +7 -7
  266. package/chunks/{task-stop-H6RHXFVQ.js → task-stop-4ROAOBXH.js} +3 -3
  267. package/chunks/{task-update-M57TFZJT.js → task-update-CRK5VWWZ.js} +10 -10
  268. package/chunks/{team-create-O2FROQ4R.js → team-create-QQGAJG7P.js} +49 -51
  269. package/chunks/{team-delete-QE2UXJL7.js → team-delete-S2RCXA4P.js} +7 -7
  270. package/chunks/{team-plan-approval-Q6WDBXTQ.js → team-plan-approval-RT7Q5R6O.js} +47 -49
  271. package/chunks/theme-manager-EEWIQJ7J.js +76 -0
  272. package/chunks/{todoWrite-VQ7FKOHL.js → todoWrite-7WM3VDMY.js} +7 -7
  273. package/chunks/{tool-search-APECNQ3Z.js → tool-search-Z3Z4AYKP.js} +19 -21
  274. package/chunks/total-session-admission-44JKRWQD.js +84 -0
  275. package/chunks/{tree-sitter-FS4VPMZA.js → tree-sitter-4D7QS7F6.js} +1 -1
  276. package/chunks/{tree-sitter-bash-6B46JJCV.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
  277. package/chunks/trustedFolders-X2JEIO57.js +94 -0
  278. package/chunks/{update-relaunch-ON5MDJQG.js → update-relaunch-VWNPYDIP.js} +5 -5
  279. package/chunks/updateCheck-KAQH67DV.js +91 -0
  280. package/chunks/useAutoAcceptIndicator-JH6BCF7S.js +92 -0
  281. package/chunks/{validateNonInterActiveAuth-JBLKBKRD.js → validateNonInterActiveAuth-GIUJ2UFS.js} +88 -88
  282. package/chunks/{version-LTNUBQJY.js → version-BGLYIJUY.js} +1 -1
  283. package/chunks/{web-fetch-L5UTI53V.js → web-fetch-OTDU4VQF.js} +19 -21
  284. package/chunks/{web-search-KM33JOS3.js → web-search-FP6SIHPR.js} +13 -13
  285. package/chunks/{workflow-K7FAWV77.js → workflow-YCIVBYSB.js} +48 -50
  286. package/chunks/workspace-providers-status-S35YAIUS.js +85 -0
  287. package/chunks/{workspace-registration-store-6TGVDJV5.js → workspace-registration-store-OTMS3H4C.js} +1 -1
  288. package/chunks/workspace-registry-O63R6IZ4.js +92 -0
  289. package/chunks/workspace-service-M6LLHKJ5.js +99 -0
  290. package/chunks/workspace-skills-status-C2V7BAIS.js +85 -0
  291. package/chunks/workspace-trust-reconciler-IBUPOUJN.js +345 -0
  292. package/chunks/write-file-3BZC3EAE.js +72 -0
  293. package/chunks/xterm-headless-NTYVIBT3.js +3475 -0
  294. package/chunks/{zh-LUIGBD55.js → zh-H3YDK5QW.js} +9 -1
  295. package/chunks/{zh-TW-F5KG2IYD.js → zh-TW-JYCP7XUA.js} +9 -1
  296. package/chunks/zoom-image-TZ6S2O57.js +351 -0
  297. package/cli.js +13 -13
  298. package/locales/ca.js +7 -2
  299. package/locales/de.js +7 -2
  300. package/locales/en.js +10 -2
  301. package/locales/fr.js +7 -2
  302. package/locales/ja.js +7 -2
  303. package/locales/pt.js +7 -2
  304. package/locales/ru.js +7 -2
  305. package/locales/zh-TW.js +10 -2
  306. package/locales/zh.js +10 -2
  307. package/package.json +5 -4
  308. package/web-shell/assets/{arc-BbHijhiN.js → arc-75-Wdeo3.js} +1 -1
  309. package/web-shell/assets/{architectureDiagram-3BPJPVTR-Cb4B_JD0.js → architectureDiagram-3BPJPVTR-FKeXQbyP.js} +1 -1
  310. package/web-shell/assets/{blockDiagram-GPEHLZMM-Dsjlh3H-.js → blockDiagram-GPEHLZMM-CY0vc-A3.js} +1 -1
  311. package/web-shell/assets/{c4Diagram-AAUBKEIU-Cp5AeR4U.js → c4Diagram-AAUBKEIU-CNP-A-8u.js} +1 -1
  312. package/web-shell/assets/channel-DPYMT76A.js +1 -0
  313. package/web-shell/assets/{chunk-2J33WTMH-CLcY7W2e.js → chunk-2J33WTMH-GybS4Gii.js} +1 -1
  314. package/web-shell/assets/{chunk-4BX2VUAB-BUhvY2LR.js → chunk-4BX2VUAB-02H91V8v.js} +1 -1
  315. package/web-shell/assets/{chunk-55IACEB6-kDIFC_71.js → chunk-55IACEB6-D3M-2VT6.js} +1 -1
  316. package/web-shell/assets/{chunk-727SXJPM-CIBO15f2.js → chunk-727SXJPM-CCu29u4H.js} +1 -1
  317. package/web-shell/assets/{chunk-AQP2D5EJ-BJ_T_slV.js → chunk-AQP2D5EJ-CaFKWgrn.js} +1 -1
  318. package/web-shell/assets/{chunk-FMBD7UC4-BEkW35J8.js → chunk-FMBD7UC4-ZZpPqIwQ.js} +1 -1
  319. package/web-shell/assets/{chunk-ND2GUHAM-GGPxofay.js → chunk-ND2GUHAM-D22DqGs8.js} +1 -1
  320. package/web-shell/assets/{chunk-QZHKN3VN-Bifllrb6.js → chunk-QZHKN3VN-Bu85S0fw.js} +1 -1
  321. package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +1 -0
  322. package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +1 -0
  323. package/web-shell/assets/{cose-bilkent-S5V4N54A-C-Add_Dp.js → cose-bilkent-S5V4N54A-f1CK1Gwe.js} +1 -1
  324. package/web-shell/assets/{dagre-BM42HDAG-B7MfwNq2.js → dagre-BM42HDAG-D0Ow8F_n.js} +1 -1
  325. package/web-shell/assets/{diagram-2AECGRRQ-CY_0zuDz.js → diagram-2AECGRRQ-BPrmTWp8.js} +1 -1
  326. package/web-shell/assets/{diagram-5GNKFQAL-VyYSbCgA.js → diagram-5GNKFQAL-HccuFAzy.js} +1 -1
  327. package/web-shell/assets/{diagram-KO2AKTUF-CBiIZ2PL.js → diagram-KO2AKTUF-BrS76mbA.js} +1 -1
  328. package/web-shell/assets/{diagram-LMA3HP47-BL3CrVOx.js → diagram-LMA3HP47-V7T9lU-5.js} +1 -1
  329. package/web-shell/assets/{diagram-OG6HWLK6-CZUPx96P.js → diagram-OG6HWLK6-DKidyJMR.js} +1 -1
  330. package/web-shell/assets/{erDiagram-TEJ5UH35-B81xHr1-.js → erDiagram-TEJ5UH35-DBadZIkp.js} +1 -1
  331. package/web-shell/assets/{flowDiagram-I6XJVG4X-EZWhir-J.js → flowDiagram-I6XJVG4X-BymfqdNJ.js} +1 -1
  332. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CVFSuIAg.js → ganttDiagram-6RSMTGT7-DOw340jf.js} +1 -1
  333. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-C1H2uQDv.js → gitGraphDiagram-PVQCEYII-_8EiD8sl.js} +1 -1
  334. package/web-shell/assets/{index-BYo99NBH.js → index-CKIadvET.js} +1 -1
  335. package/web-shell/assets/index-D1eXNRHe.js +1389 -0
  336. package/web-shell/assets/index-DVLD4CQq.css +5 -0
  337. package/web-shell/assets/{infoDiagram-5YYISTIA-BwyFMlF8.js → infoDiagram-5YYISTIA-D61KYQBu.js} +1 -1
  338. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CQ7Yhn2Y.js → ishikawaDiagram-YF4QCWOH-CsiXSpNx.js} +1 -1
  339. package/web-shell/assets/{journeyDiagram-JHISSGLW-CJn2sf0l.js → journeyDiagram-JHISSGLW-Sdfionyh.js} +1 -1
  340. package/web-shell/assets/{kanban-definition-UN3LZRKU-DaNRqwVN.js → kanban-definition-UN3LZRKU-C3WI3Cnl.js} +1 -1
  341. package/web-shell/assets/{linear-DCKODZe2.js → linear-Dpigcc62.js} +1 -1
  342. package/web-shell/assets/{mermaid.core-CTGJOk27.js → mermaid.core-Ct97pqgW.js} +5 -5
  343. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BKU3_3rg.js → mindmap-definition-RKZ34NQL-BzeaN0rB.js} +1 -1
  344. package/web-shell/assets/{pieDiagram-4H26LBE5-COcwBJ82.js → pieDiagram-4H26LBE5-CvjgcbVD.js} +1 -1
  345. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CQnQ443x.js → quadrantDiagram-W4KKPZXB-BUzgTNdH.js} +1 -1
  346. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CZ2oj5cD.js → requirementDiagram-4Y6WPE33-B7zKlgUQ.js} +1 -1
  347. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BxAv5mNu.js → sankeyDiagram-5OEKKPKP-Bb9CQgrT.js} +1 -1
  348. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CztaySPs.js → sequenceDiagram-3UESZ5HK-DJ6V7itG.js} +1 -1
  349. package/web-shell/assets/{stateDiagram-AJRCARHV-CTQT1oGD.js → stateDiagram-AJRCARHV-IImflERY.js} +1 -1
  350. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +1 -0
  351. package/web-shell/assets/{timeline-definition-PNZ67QCA-K9Mkex5A.js → timeline-definition-PNZ67QCA-6Q_uWHKh.js} +1 -1
  352. package/web-shell/assets/{vennDiagram-CIIHVFJN-B2rVIw76.js → vennDiagram-CIIHVFJN-TmyKyjwv.js} +1 -1
  353. package/web-shell/assets/{wardley-L42UT6IY-Z1w2JR4M.js → wardley-L42UT6IY-CRh9uiPv.js} +1 -1
  354. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-CIX9aKXf.js → wardleyDiagram-YWT4CUSO-59TKAW8w.js} +1 -1
  355. package/web-shell/assets/{xychartDiagram-2RQKCTM6-CI9DLIKB.js → xychartDiagram-2RQKCTM6-GCSUIK2L.js} +1 -1
  356. package/web-shell/index.html +2 -2
  357. package/chunks/MaxSizedBox-INHRH72H.js +0 -86
  358. package/chunks/agent-VXDAN5JK.js +0 -82
  359. package/chunks/agent-headless-K4ZMMNBD.js +0 -76
  360. package/chunks/bridge-LGPZCFHO.js +0 -91
  361. package/chunks/channel-settings-store-CHCDRTPY.js +0 -89
  362. package/chunks/chunk-SZRN75WQ.js +0 -29
  363. package/chunks/chunk-UGYMA4EI.js +0 -219
  364. package/chunks/chunk-VCBZUOSI.js +0 -8575
  365. package/chunks/contextCommand-QIZYHDR5.js +0 -81
  366. package/chunks/daemon-status-provider-OS5UWBHV.js +0 -90
  367. package/chunks/earlyInputCapture-WQT24RWD.js +0 -83
  368. package/chunks/errors-PCX25DVP.js +0 -89
  369. package/chunks/exitPlanMode-GHPUHBZJ.js +0 -423
  370. package/chunks/handleAutoUpdate-2CZQRJ66.js +0 -82
  371. package/chunks/i18n-XEQVMRKN.js +0 -98
  372. package/chunks/initializer-OVGZ4FLY.js +0 -87
  373. package/chunks/installationInfo-5UUQJI6Y.js +0 -81
  374. package/chunks/list-HODU6RXD.js +0 -90
  375. package/chunks/loadedSettingsAdapter-TYNLBALY.js +0 -84
  376. package/chunks/mcp-J3DFWX4A.js +0 -84
  377. package/chunks/nonInteractiveCli-F4GYSMHT.js +0 -144
  378. package/chunks/pidfile-4VNAR3EP.js +0 -87
  379. package/chunks/read-file-LZXUR4TO.js +0 -31
  380. package/chunks/resumeHistoryUtils-65OX3SGJ.js +0 -92
  381. package/chunks/ripGrep-2U2FRGMV.js +0 -74
  382. package/chunks/serve-W2GC47CM.js +0 -90
  383. package/chunks/shell-45IPBDP5.js +0 -84
  384. package/chunks/spawnChannel-PVXQ5AGV.js +0 -83
  385. package/chunks/src-AY65BYR7.js +0 -3166
  386. package/chunks/standalone-update-ZMFNKAEY.js +0 -93
  387. package/chunks/theme-manager-YYPZFBAH.js +0 -78
  388. package/chunks/total-session-admission-JXES723M.js +0 -85
  389. package/chunks/trustedFolders-HVI7IXUH.js +0 -94
  390. package/chunks/updateCheck-WUJGHWZZ.js +0 -93
  391. package/chunks/useAutoAcceptIndicator-CHSTZLZD.js +0 -94
  392. package/chunks/workspace-providers-status-GAKSF4LL.js +0 -87
  393. package/chunks/workspace-registry-A7NQUONG.js +0 -89
  394. package/chunks/workspace-service-STGVSO4N.js +0 -99
  395. package/chunks/workspace-skills-status-66AK3DUA.js +0 -86
  396. package/chunks/write-file-HUUCEG4P.js +0 -74
  397. package/web-shell/assets/channel-Bzdx6E8P.js +0 -1
  398. package/web-shell/assets/classDiagram-4FO5ZUOK-Cd6wbiuK.js +0 -1
  399. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cd6wbiuK.js +0 -1
  400. package/web-shell/assets/index-B2bXx96W.js +0 -1249
  401. package/web-shell/assets/index-_8mKjx8q.css +0 -5
  402. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BjMdT6E_.js +0 -1
  403. package/chunks/{chunk-TARRHLLG.js → chunk-QUGAUQGJ.js} +25 -25
  404. package/chunks/{chunk-U7ZFW55U.js → chunk-VOQXFAY5.js} +977 -977
  405. /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getGlobalQwenDir
5
- } from "./chunk-ML52PL6O.js";
5
+ } from "./chunk-7I5GTCT4.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -12,7 +12,8 @@ import {
12
12
 
13
13
  // packages/channels/weixin/dist/accounts.js
14
14
  init_esbuild_shims();
15
- import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync, chmodSync } from "node:fs";
15
+ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync, unlinkSync, renameSync } from "node:fs";
16
+ import { randomBytes } from "node:crypto";
16
17
  import { join } from "node:path";
17
18
  var DEFAULT_BASE_URL = "https://ilinkai.weixin.qq.com";
18
19
  function getStateDir() {
@@ -40,15 +41,37 @@ function loadAccount() {
40
41
  __name(loadAccount, "loadAccount");
41
42
  function saveAccount(data) {
42
43
  const p = accountPath();
43
- writeFileSync(p, JSON.stringify(data, null, 2), "utf-8");
44
- chmodSync(p, 384);
44
+ const tmp = `${p}.${randomBytes(6).toString("hex")}.tmp`;
45
+ try {
46
+ writeFileSync(tmp, JSON.stringify(data, null, 2), {
47
+ encoding: "utf-8",
48
+ mode: 384,
49
+ flag: "wx"
50
+ });
51
+ renameSync(tmp, p);
52
+ } catch (e) {
53
+ try {
54
+ unlinkSync(tmp);
55
+ } catch {
56
+ }
57
+ throw e;
58
+ }
45
59
  }
46
60
  __name(saveAccount, "saveAccount");
47
61
  function clearAccount() {
48
- const p = accountPath();
62
+ const dir = getStateDir();
63
+ const p = join(dir, "account.json");
49
64
  if (existsSync(p)) {
50
65
  unlinkSync(p);
51
66
  }
67
+ for (const f of readdirSync(dir)) {
68
+ if (f.startsWith("account.json.") && f.endsWith(".tmp")) {
69
+ try {
70
+ unlinkSync(join(dir, f));
71
+ } catch {
72
+ }
73
+ }
74
+ }
52
75
  }
53
76
  __name(clearAccount, "clearAccount");
54
77
 
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  themeManager
5
- } from "./chunk-L5UHQJTJ.js";
5
+ } from "./chunk-GATT5TKW.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -387,11 +387,7 @@ __name(asOptionalRecord, "asOptionalRecord");
387
387
  export {
388
388
  setToolCallPreparations,
389
389
  getToolCallPreparations,
390
- isRuntimeDiagnosticsEnabled,
391
- RuntimeDiagnosticsCollector,
392
- runtimeDiagnostics,
393
- summarizeOpenAIWireRequest,
394
- summarizeAnthropicWireRequest
390
+ runtimeDiagnostics
395
391
  };
396
392
  /**
397
393
  * @license
@@ -1,5 +1,12 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ CHANNEL_LOOP_MCP_IPC_TIMEOUT_MS,
5
+ MAX_CHANNEL_LOOP_MCP_IN_FLIGHT,
6
+ createChannelLoopMcpRequest,
7
+ isChannelLoopMcpControlMessage,
8
+ isChannelLoopMcpResultMessage
9
+ } from "./chunk-FYJ7W2PI.js";
3
10
  import {
4
11
  CHANNEL_DAEMON_WORKER_SENTINEL,
5
12
  CHANNEL_DELIVERY_IPC_TIMEOUT_MS,
@@ -28,18 +35,18 @@ import {
28
35
  createWorkerDiagnosticRedactor,
29
36
  normalizeWorkerDiagnostic,
30
37
  sanitizeWorkerDiagnostic
31
- } from "./chunk-HV3G62R6.js";
38
+ } from "./chunk-GZ3RCT54.js";
32
39
  import {
33
40
  channelSelectionNames
34
41
  } from "./chunk-ALMR3E6Q.js";
35
- import {
36
- sanitizeLogText
37
- } from "./chunk-ML52PL6O.js";
38
42
  import {
39
43
  CHANNEL_WORKER_KILL_GRACE_MS,
40
44
  CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
41
45
  CHANNEL_WORKER_STOP_GRACE_MS
42
46
  } from "./chunk-5HBA2Z7V.js";
47
+ import {
48
+ sanitizeLogText
49
+ } from "./chunk-7I5GTCT4.js";
43
50
  import {
44
51
  init_esbuild_shims
45
52
  } from "./chunk-5O2XNYP6.js";
@@ -271,6 +278,8 @@ function createChannelWorkerSupervisor(opts) {
271
278
  let restartAttemptTimes = [];
272
279
  const pendingWebhookTasks = /* @__PURE__ */ new Map();
273
280
  const pendingChannelDeliveries = /* @__PURE__ */ new Map();
281
+ const pendingChannelLoopMcpMessages = /* @__PURE__ */ new Map();
282
+ let cleanupChannelLoopMcpRegistrations;
274
283
  let restarting;
275
284
  let disposed = false;
276
285
  const snapshotCopy = /* @__PURE__ */ __name(() => ({
@@ -367,6 +376,28 @@ function createChannelWorkerSupervisor(opts) {
367
376
  }
368
377
  return true;
369
378
  }, "settleChannelDelivery");
379
+ const rejectPendingChannelLoopMcpMessages = /* @__PURE__ */ __name((message) => {
380
+ for (const pending of pendingChannelLoopMcpMessages.values()) {
381
+ clearTimeout(pending.timer);
382
+ pending.reject(new Error(message));
383
+ }
384
+ pendingChannelLoopMcpMessages.clear();
385
+ }, "rejectPendingChannelLoopMcpMessages");
386
+ const settleChannelLoopMcpMessage = /* @__PURE__ */ __name((message) => {
387
+ if (!isChannelLoopMcpResultMessage(message)) return false;
388
+ const pending = pendingChannelLoopMcpMessages.get(message.id);
389
+ if (!pending) return true;
390
+ pendingChannelLoopMcpMessages.delete(message.id);
391
+ clearTimeout(pending.timer);
392
+ if (message.ok) {
393
+ pending.resolve(message.payload ?? {});
394
+ } else {
395
+ pending.reject(
396
+ new Error(message.error ?? "Channel loop MCP request failed.")
397
+ );
398
+ }
399
+ return true;
400
+ }, "settleChannelLoopMcpMessage");
370
401
  const pruneRestartAttempts = /* @__PURE__ */ __name((nowMs) => {
371
402
  restartAttemptTimes = restartAttemptTimes.filter(
372
403
  (attemptMs) => nowMs - attemptMs < restartPolicy.windowMs
@@ -529,6 +560,57 @@ function createChannelWorkerSupervisor(opts) {
529
560
  if (startedChild.pid !== void 0) {
530
561
  snapshot = { ...snapshot, pid: startedChild.pid };
531
562
  }
563
+ const channelLoopMcpOwnerId = `channel-worker:${randomUUID()}`;
564
+ const registeredChannelLoopMcpSessions = /* @__PURE__ */ new Set();
565
+ const activeChannelLoopMcpControls = /* @__PURE__ */ new Set();
566
+ const sendToStartedChild = /* @__PURE__ */ __name((message, callback) => {
567
+ if (child !== startedChild || !startedChild.send) {
568
+ throw new Error("Channel worker IPC is unavailable.");
569
+ }
570
+ return callback ? startedChild.send.call(startedChild, message, callback) : startedChild.send.call(startedChild, message);
571
+ }, "sendToStartedChild");
572
+ const sendChannelLoopMcpMessage = /* @__PURE__ */ __name((sessionId, payload) => {
573
+ if (pendingChannelLoopMcpMessages.size >= MAX_CHANNEL_LOOP_MCP_IN_FLIGHT) {
574
+ return Promise.reject(new Error("Channel loop MCP IPC queue is full."));
575
+ }
576
+ const message = createChannelLoopMcpRequest(sessionId, payload);
577
+ return new Promise((resolve, reject) => {
578
+ const timer = setTimeout(() => {
579
+ pendingChannelLoopMcpMessages.delete(message.id);
580
+ reject(new Error("Channel loop MCP IPC timed out."));
581
+ }, CHANNEL_LOOP_MCP_IPC_TIMEOUT_MS);
582
+ timer.unref();
583
+ pendingChannelLoopMcpMessages.set(message.id, {
584
+ resolve,
585
+ reject,
586
+ timer
587
+ });
588
+ try {
589
+ sendToStartedChild(message, (error) => {
590
+ if (!error) return;
591
+ const pending = pendingChannelLoopMcpMessages.get(message.id);
592
+ if (!pending) return;
593
+ pendingChannelLoopMcpMessages.delete(message.id);
594
+ clearTimeout(pending.timer);
595
+ pending.reject(new Error("Channel loop MCP IPC send failed."));
596
+ });
597
+ } catch {
598
+ const pending = pendingChannelLoopMcpMessages.get(message.id);
599
+ if (!pending) return;
600
+ pendingChannelLoopMcpMessages.delete(message.id);
601
+ clearTimeout(pending.timer);
602
+ pending.reject(new Error("Channel loop MCP IPC send failed."));
603
+ }
604
+ });
605
+ }, "sendChannelLoopMcpMessage");
606
+ const cleanupLaunchChannelLoopMcpRegistrations = /* @__PURE__ */ __name(() => {
607
+ for (const sessionId of registeredChannelLoopMcpSessions) {
608
+ void opts.unregisterChannelLoopMcp?.(sessionId, channelLoopMcpOwnerId).catch(() => {
609
+ });
610
+ }
611
+ registeredChannelLoopMcpSessions.clear();
612
+ }, "cleanupLaunchChannelLoopMcpRegistrations");
613
+ cleanupChannelLoopMcpRegistrations = cleanupLaunchChannelLoopMcpRegistrations;
532
614
  await new Promise((resolve, reject) => {
533
615
  let settled = false;
534
616
  let ready = false;
@@ -725,6 +807,61 @@ function createChannelWorkerSupervisor(opts) {
725
807
  };
726
808
  armStaleHeartbeatTimer(startedChild);
727
809
  }, "handleHeartbeat");
810
+ const sendChannelLoopMcpControlResult = /* @__PURE__ */ __name((id, result) => {
811
+ try {
812
+ sendToStartedChild({
813
+ type: "channel_loop_mcp_control_result",
814
+ id,
815
+ ...result
816
+ });
817
+ } catch {
818
+ }
819
+ }, "sendChannelLoopMcpControlResult");
820
+ const handleChannelLoopMcpControl = /* @__PURE__ */ __name((message) => {
821
+ if (activeChannelLoopMcpControls.size >= MAX_CHANNEL_LOOP_MCP_IN_FLIGHT) {
822
+ sendChannelLoopMcpControlResult(message.id, {
823
+ ok: false,
824
+ error: "Channel loop MCP IPC queue is full."
825
+ });
826
+ return;
827
+ }
828
+ activeChannelLoopMcpControls.add(message.id);
829
+ const operation = message.type === "channel_loop_mcp_register" ? opts.registerChannelLoopMcp?.({
830
+ sessionId: message.sessionId,
831
+ ownerId: channelLoopMcpOwnerId,
832
+ sendMessage: /* @__PURE__ */ __name((payload) => sendChannelLoopMcpMessage(message.sessionId, payload), "sendMessage")
833
+ }).then(async () => {
834
+ if (child !== startedChild) {
835
+ await opts.unregisterChannelLoopMcp?.(
836
+ message.sessionId,
837
+ channelLoopMcpOwnerId
838
+ );
839
+ throw new Error("Channel worker exited during MCP setup.");
840
+ }
841
+ registeredChannelLoopMcpSessions.add(message.sessionId);
842
+ }) ?? Promise.reject(
843
+ new Error("Channel loop MCP registration is unavailable.")
844
+ ) : opts.unregisterChannelLoopMcp?.(
845
+ message.sessionId,
846
+ channelLoopMcpOwnerId
847
+ ).then(() => {
848
+ registeredChannelLoopMcpSessions.delete(message.sessionId);
849
+ }) ?? Promise.resolve();
850
+ void operation.then(() => {
851
+ sendChannelLoopMcpControlResult(message.id, { ok: true });
852
+ }).catch((error) => {
853
+ sendChannelLoopMcpControlResult(message.id, {
854
+ ok: false,
855
+ error: sanitizeWorkerDiagnostic(
856
+ error instanceof Error ? error.message : String(error),
857
+ 512,
858
+ redaction
859
+ ) || "Channel loop MCP operation failed."
860
+ });
861
+ }).finally(() => {
862
+ activeChannelLoopMcpControls.delete(message.id);
863
+ });
864
+ }, "handleChannelLoopMcpControl");
728
865
  function handleMessage(message) {
729
866
  if (child !== startedChild) return;
730
867
  if (settleChannelDelivery(message)) {
@@ -733,6 +870,13 @@ function createChannelWorkerSupervisor(opts) {
733
870
  if (settleWebhookTask(message)) {
734
871
  return;
735
872
  }
873
+ if (settleChannelLoopMcpMessage(message)) {
874
+ return;
875
+ }
876
+ if (isChannelLoopMcpControlMessage(message)) {
877
+ handleChannelLoopMcpControl(message);
878
+ return;
879
+ }
736
880
  if (!ready && isChannelStartupReportType(message)) {
737
881
  handleStartupReport(message);
738
882
  } else if (!ready && isReadyMessage(message)) {
@@ -762,6 +906,11 @@ function createChannelWorkerSupervisor(opts) {
762
906
  "channel_worker_unavailable",
763
907
  "Channel worker exited."
764
908
  );
909
+ rejectPendingChannelLoopMcpMessages("Channel worker exited.");
910
+ cleanupLaunchChannelLoopMcpRegistrations();
911
+ if (cleanupChannelLoopMcpRegistrations === cleanupLaunchChannelLoopMcpRegistrations) {
912
+ cleanupChannelLoopMcpRegistrations = void 0;
913
+ }
765
914
  child = void 0;
766
915
  if ((ready || kind === "restart") && !stopping) {
767
916
  scheduleRestart();
@@ -841,6 +990,7 @@ function createChannelWorkerSupervisor(opts) {
841
990
  "channel_worker_unavailable",
842
991
  "Channel worker stopped."
843
992
  );
993
+ rejectPendingChannelLoopMcpMessages("Channel worker stopped.");
844
994
  if (!child || snapshot.state === "exited" || snapshot.state === "failed" && hasObservedExit(snapshot) || snapshot.state === "stopped") {
845
995
  child = void 0;
846
996
  snapshot = { ...snapshot, state: "stopped" };
@@ -889,6 +1039,9 @@ function createChannelWorkerSupervisor(opts) {
889
1039
  "channel_worker_unavailable",
890
1040
  "Channel worker stopped."
891
1041
  );
1042
+ rejectPendingChannelLoopMcpMessages("Channel worker stopped.");
1043
+ cleanupChannelLoopMcpRegistrations?.();
1044
+ cleanupChannelLoopMcpRegistrations = void 0;
892
1045
  if (!child || snapshot.state === "exited" || snapshot.state === "failed" && hasObservedExit(snapshot) || snapshot.state === "stopped") {
893
1046
  clearRestartTimer();
894
1047
  clearStaleHeartbeatTimer();
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTask
5
- } from "./chunk-K4XWPEWB.js";
5
+ } from "./chunk-64LQLPL7.js";
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-L26JL52R.js";
9
+ } from "./chunk-JSD33JG6.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
- } from "./chunk-6AM5D4ME.js";
12
+ } from "./chunk-S6LOFUVP.js";
13
13
  import {
14
14
  BaseDeclarativeTool,
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-PR75REBZ.js";
18
+ } from "./chunk-Y6AXW2OG.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-M5GB774H.js";
6
6
  import {
7
7
  sanitizeLogText
8
- } from "./chunk-ML52PL6O.js";
8
+ } from "./chunk-7I5GTCT4.js";
9
9
  import {
10
10
  stripAnsi
11
11
  } from "./chunk-TWPJO254.js";
@@ -2,16 +2,16 @@
2
2
  "use strict";
3
3
  import {
4
4
  useKeypress
5
- } from "./chunk-LNURQEMZ.js";
5
+ } from "./chunk-CQL64ESB.js";
6
6
  import {
7
7
  require_react
8
8
  } from "./chunk-5QWWOFGG.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-VV6XU5L7.js";
11
+ } from "./chunk-TCIFAA7K.js";
12
12
  import {
13
13
  APPROVAL_MODES
14
- } from "./chunk-L26JL52R.js";
14
+ } from "./chunk-JSD33JG6.js";
15
15
  import {
16
16
  init_esbuild_shims
17
17
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,319 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ getUserSettingsPath,
5
+ v1ToV2Migration
6
+ } from "./chunk-EIF3FXTB.js";
7
+ import {
8
+ getSystemDefaultsPath,
9
+ getSystemSettingsPath
10
+ } from "./chunk-IDS7MSUP.js";
11
+ import {
12
+ LoadedTrustedFolders,
13
+ TrustLevel,
14
+ getTrustedFoldersPath
15
+ } from "./chunk-Q43KPN7X.js";
16
+ import {
17
+ require_strip_json_comments
18
+ } from "./chunk-ALGGS7UH.js";
19
+ import {
20
+ arePathsEquivalent
21
+ } from "./chunk-MR3PXB6E.js";
22
+ import {
23
+ ideContextStore
24
+ } from "./chunk-X5WNMMIA.js";
25
+ import {
26
+ init_esbuild_shims
27
+ } from "./chunk-5O2XNYP6.js";
28
+ import {
29
+ __name,
30
+ __toESM
31
+ } from "./chunk-J2S4EL5Y.js";
32
+
33
+ // packages/cli/src/config/daemon-trust-policy.ts
34
+ init_esbuild_shims();
35
+ import { createHash } from "node:crypto";
36
+ import * as fs from "node:fs/promises";
37
+ var import_strip_json_comments = __toESM(require_strip_json_comments(), 1);
38
+ var MAX_TRUSTED_FOLDERS_BYTES = 1024 * 1024;
39
+ var MAX_SETTINGS_BYTES = 4 * 1024 * 1024;
40
+ function policyError(code, filePath, error) {
41
+ return {
42
+ code,
43
+ path: filePath,
44
+ message: error instanceof Error ? error.message : String(error)
45
+ };
46
+ }
47
+ __name(policyError, "policyError");
48
+ async function readJsonObject(filePath, maxBytes, requireRegularFile, retryMissing = false) {
49
+ const delays = [0, 50, 200];
50
+ let result = {};
51
+ for (const delay of delays) {
52
+ if (delay > 0) {
53
+ await new Promise((resolve) => setTimeout(resolve, delay));
54
+ }
55
+ result = await readJsonObjectOnce(filePath, maxBytes, requireRegularFile);
56
+ if (!result.error && (!result.missing || !retryMissing)) return result;
57
+ }
58
+ return result;
59
+ }
60
+ __name(readJsonObject, "readJsonObject");
61
+ async function readJsonObjectOnce(filePath, maxBytes, requireRegularFile) {
62
+ let stat2;
63
+ try {
64
+ stat2 = await fs.lstat(filePath);
65
+ } catch (error) {
66
+ if (error instanceof Error && "code" in error && error.code === "ENOENT") {
67
+ return { value: {}, missing: true };
68
+ }
69
+ return {
70
+ error: policyError("trust_policy_unreadable", filePath, error)
71
+ };
72
+ }
73
+ if (!requireRegularFile && stat2.isSymbolicLink()) {
74
+ try {
75
+ stat2 = await fs.stat(filePath);
76
+ } catch (error) {
77
+ return {
78
+ error: policyError("trust_policy_unreadable", filePath, error)
79
+ };
80
+ }
81
+ }
82
+ if (requireRegularFile && stat2.isSymbolicLink() || !stat2.isFile()) {
83
+ return {
84
+ error: policyError(
85
+ "trust_policy_invalid",
86
+ filePath,
87
+ new Error("Trust policy input must be a regular file.")
88
+ )
89
+ };
90
+ }
91
+ if (stat2.size > maxBytes) {
92
+ return {
93
+ error: policyError(
94
+ "trust_policy_invalid",
95
+ filePath,
96
+ new Error(`Trust policy input exceeds ${maxBytes} bytes.`)
97
+ )
98
+ };
99
+ }
100
+ try {
101
+ const raw = await fs.readFile(filePath, "utf8");
102
+ const parsed = JSON.parse((0, import_strip_json_comments.default)(raw));
103
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
104
+ throw new Error("Trust policy input must contain a JSON object.");
105
+ }
106
+ return { value: parsed };
107
+ } catch (error) {
108
+ if (error instanceof Error && "code" in error && error.code === "ENOENT") {
109
+ return { value: {}, missing: true };
110
+ }
111
+ return { error: policyError("trust_policy_invalid", filePath, error) };
112
+ }
113
+ }
114
+ __name(readJsonObjectOnce, "readJsonObjectOnce");
115
+ function migrateFolderTrustSettings(value, scope) {
116
+ if (!value || !v1ToV2Migration.shouldMigrate(value)) return value;
117
+ return v1ToV2Migration.migrate(value, scope).settings;
118
+ }
119
+ __name(migrateFolderTrustSettings, "migrateFolderTrustSettings");
120
+ function folderTrustSetting(value, filePath) {
121
+ if (!value || !("security" in value)) return {};
122
+ const security = value?.["security"];
123
+ if (typeof security !== "object" || security === null || Array.isArray(security)) {
124
+ return {
125
+ error: policyError(
126
+ "trust_policy_invalid",
127
+ filePath,
128
+ new Error("`security` must be an object.")
129
+ )
130
+ };
131
+ }
132
+ if (!("folderTrust" in security)) return {};
133
+ const folderTrust = security["folderTrust"];
134
+ if (typeof folderTrust !== "object" || folderTrust === null || Array.isArray(folderTrust)) {
135
+ return {
136
+ error: policyError(
137
+ "trust_policy_invalid",
138
+ filePath,
139
+ new Error("`security.folderTrust` must be an object.")
140
+ )
141
+ };
142
+ }
143
+ if (!("enabled" in folderTrust)) return {};
144
+ const enabled = folderTrust["enabled"];
145
+ if (typeof enabled === "boolean") return { value: enabled };
146
+ return {
147
+ error: policyError(
148
+ "trust_policy_invalid",
149
+ filePath,
150
+ new Error("`security.folderTrust.enabled` must be a boolean.")
151
+ )
152
+ };
153
+ }
154
+ __name(folderTrustSetting, "folderTrustSetting");
155
+ function parseTrustedFolders(value, filePath) {
156
+ const config = {};
157
+ for (const [rulePath, rawLevel] of Object.entries(value ?? {})) {
158
+ if (!Object.values(TrustLevel).includes(rawLevel)) {
159
+ return {
160
+ config: {},
161
+ error: policyError(
162
+ "trust_policy_invalid",
163
+ filePath,
164
+ new Error(`Invalid trust level for ${JSON.stringify(rulePath)}.`)
165
+ )
166
+ };
167
+ }
168
+ config[rulePath] = rawLevel;
169
+ }
170
+ return { config };
171
+ }
172
+ __name(parseTrustedFolders, "parseTrustedFolders");
173
+ function semanticRevision(input) {
174
+ const sortedRules = Object.entries(input.trustedFolders).sort(
175
+ ([a], [b]) => a.localeCompare(b)
176
+ );
177
+ return createHash("sha256").update(
178
+ JSON.stringify({
179
+ folderTrustEnabled: input.folderTrustEnabled,
180
+ ideTrust: input.ideTrust ?? null,
181
+ trustedFolders: sortedRules,
182
+ settingsError: input.settingsError?.code ?? null,
183
+ trustedFoldersError: input.trustedFoldersError?.code ?? null
184
+ })
185
+ ).digest("hex");
186
+ }
187
+ __name(semanticRevision, "semanticRevision");
188
+ async function readDaemonTrustPolicySnapshot() {
189
+ const [user, system, systemDefaults] = await Promise.all([
190
+ readJsonObject(getUserSettingsPath(), MAX_SETTINGS_BYTES, false),
191
+ readJsonObject(getSystemSettingsPath(), MAX_SETTINGS_BYTES, false),
192
+ readJsonObject(getSystemDefaultsPath(), MAX_SETTINGS_BYTES, false)
193
+ ]);
194
+ const systemFolderTrust = folderTrustSetting(
195
+ migrateFolderTrustSettings(system.value, "System"),
196
+ getSystemSettingsPath()
197
+ );
198
+ const userFolderTrust = folderTrustSetting(
199
+ migrateFolderTrustSettings(user.value, "User"),
200
+ getUserSettingsPath()
201
+ );
202
+ const defaultsFolderTrust = folderTrustSetting(
203
+ migrateFolderTrustSettings(systemDefaults.value, "SystemDefaults"),
204
+ getSystemDefaultsPath()
205
+ );
206
+ const settingsError = system.error ?? systemFolderTrust.error ?? user.error ?? userFolderTrust.error ?? systemDefaults.error ?? defaultsFolderTrust.error;
207
+ const folderTrustEnabled = systemFolderTrust.value ?? userFolderTrust.value ?? defaultsFolderTrust.value ?? false;
208
+ const trustedFoldersFile = await readJsonObject(
209
+ getTrustedFoldersPath(),
210
+ MAX_TRUSTED_FOLDERS_BYTES,
211
+ true,
212
+ folderTrustEnabled
213
+ );
214
+ const parsedTrustedFolders = parseTrustedFolders(
215
+ trustedFoldersFile.value,
216
+ getTrustedFoldersPath()
217
+ );
218
+ const trustedFoldersError = trustedFoldersFile.error ?? parsedTrustedFolders.error;
219
+ const ideTrust = ideContextStore.get()?.workspaceState?.isTrusted;
220
+ const revision = semanticRevision({
221
+ folderTrustEnabled,
222
+ ideTrust,
223
+ trustedFolders: parsedTrustedFolders.config,
224
+ ...settingsError ? { settingsError } : {},
225
+ ...trustedFoldersError ? { trustedFoldersError } : {}
226
+ });
227
+ return {
228
+ revision,
229
+ folderTrustEnabled,
230
+ ideTrust,
231
+ trustedFolders: Object.freeze({ ...parsedTrustedFolders.config }),
232
+ ...settingsError ? { settingsError } : {},
233
+ ...trustedFoldersError ? { trustedFoldersError } : {}
234
+ };
235
+ }
236
+ __name(readDaemonTrustPolicySnapshot, "readDaemonTrustPolicySnapshot");
237
+ function explicitTrustLevel(snapshot, workspaceCwd) {
238
+ const folders = new LoadedTrustedFolders(
239
+ {
240
+ path: getTrustedFoldersPath(),
241
+ config: { ...snapshot.trustedFolders }
242
+ },
243
+ []
244
+ );
245
+ const effective = folders.isPathTrusted(workspaceCwd);
246
+ if (effective === void 0) return null;
247
+ for (const [rulePath, trustLevel] of Object.entries(
248
+ snapshot.trustedFolders
249
+ )) {
250
+ const preview = new LoadedTrustedFolders(
251
+ { path: getTrustedFoldersPath(), config: { [rulePath]: trustLevel } },
252
+ []
253
+ ).isPathTrusted(workspaceCwd);
254
+ if (preview === effective) return trustLevel;
255
+ }
256
+ return null;
257
+ }
258
+ __name(explicitTrustLevel, "explicitTrustLevel");
259
+ function evaluateDaemonWorkspaceTrust(snapshot, workspaceCwd, processCwd = process.cwd()) {
260
+ if (snapshot.settingsError) {
261
+ return {
262
+ state: "error",
263
+ targetTrusted: false,
264
+ source: "none",
265
+ explicitTrustLevel: null,
266
+ error: snapshot.settingsError
267
+ };
268
+ }
269
+ if (!snapshot.folderTrustEnabled) {
270
+ return {
271
+ state: "trusted",
272
+ targetTrusted: true,
273
+ source: "disabled",
274
+ explicitTrustLevel: null
275
+ };
276
+ }
277
+ if (snapshot.ideTrust !== void 0 && arePathsEquivalent(workspaceCwd, processCwd)) {
278
+ return {
279
+ state: snapshot.ideTrust ? "trusted" : "untrusted",
280
+ targetTrusted: snapshot.ideTrust,
281
+ source: "ide",
282
+ explicitTrustLevel: null
283
+ };
284
+ }
285
+ if (snapshot.trustedFoldersError) {
286
+ return {
287
+ state: "error",
288
+ targetTrusted: false,
289
+ source: "none",
290
+ explicitTrustLevel: null,
291
+ error: snapshot.trustedFoldersError
292
+ };
293
+ }
294
+ const folders = new LoadedTrustedFolders(
295
+ {
296
+ path: getTrustedFoldersPath(),
297
+ config: { ...snapshot.trustedFolders }
298
+ },
299
+ []
300
+ );
301
+ const trusted = folders.isPathTrusted(workspaceCwd);
302
+ return {
303
+ state: trusted === true ? "trusted" : trusted === false ? "untrusted" : "unknown",
304
+ targetTrusted: trusted === true,
305
+ source: trusted === void 0 ? "none" : "file",
306
+ explicitTrustLevel: explicitTrustLevel(snapshot, workspaceCwd)
307
+ };
308
+ }
309
+ __name(evaluateDaemonWorkspaceTrust, "evaluateDaemonWorkspaceTrust");
310
+
311
+ export {
312
+ readDaemonTrustPolicySnapshot,
313
+ evaluateDaemonWorkspaceTrust
314
+ };
315
+ /**
316
+ * @license
317
+ * Copyright 2026 Qwen Team
318
+ * SPDX-License-Identifier: Apache-2.0
319
+ */