@qwen-code/qwen-code 0.23.5-dev.codemode-responses.20260915.af4da34719 → 0.23.5-preview.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 (377) hide show
  1. package/bundled/computer-use/SKILL.md +24 -3
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +43 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +10 -9
  4. package/bundled/qc-helper/docs/extension/agent-plugins.md +1 -0
  5. package/bundled/qc-helper/docs/extension/introduction.md +49 -0
  6. package/bundled/qc-helper/docs/features/channels/dingtalk.md +39 -4
  7. package/bundled/qc-helper/docs/features/channels/overview.md +12 -0
  8. package/bundled/qc-helper/docs/features/commands.md +57 -52
  9. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  10. package/bundled/qc-helper/docs/features/goals.md +8 -0
  11. package/bundled/qc-helper/docs/features/hooks.md +16 -0
  12. package/bundled/qc-helper/docs/qwen-serve.md +3 -1
  13. package/bundled/workflow-authoring/SKILL.md +48 -22
  14. package/chunks/{MaxSizedBox-3K65WFGY.js → MaxSizedBox-FCF6M53W.js} +40 -43
  15. package/chunks/{StandaloneSessionPicker-JKM33JPY.js → StandaloneSessionPicker-V635V72I.js} +60 -63
  16. package/chunks/{acp-startup-profiler-RUQNTNU5.js → acp-startup-profiler-MOOU37VM.js} +2 -2
  17. package/chunks/{acp-subagent-executor-KIZBB2CL.js → acp-subagent-executor-TND6W2O5.js} +46 -47
  18. package/chunks/{acpAgent-SHI4L5EV.js → acpAgent-3DPWZTNC.js} +954 -322
  19. package/chunks/{agent-AJXNVRX2.js → agent-KIHGINKN.js} +27 -30
  20. package/chunks/{agent-headless-2JPJKYHK.js → agent-headless-EJ4QOUSM.js} +27 -30
  21. package/chunks/{anthropicContentGenerator-H5YPXIDE.js → anthropicContentGenerator-4FGOM5LK.js} +46 -64
  22. package/chunks/{artifact-tool-MFGORTWZ.js → artifact-tool-MUTNH4NI.js} +1 -1
  23. package/chunks/{askUserQuestion-WS4GUT7C.js → askUserQuestion-AKIRLVB5.js} +1 -1
  24. package/chunks/bareMode-QWKZPLPX.js +14 -0
  25. package/chunks/{bridge-KZYSMV4N.js → bridge-MUX5YJZT.js} +46 -49
  26. package/chunks/{ca-GZ4FDJU2.js → ca-WC3A5B3Q.js} +12 -1
  27. package/chunks/{channel-management-service-AFVIT4VH.js → channel-management-service-RRILWSXX.js} +4 -4
  28. package/chunks/{channel-settings-store-IJG52IDV.js → channel-settings-store-7CBIRZER.js} +51 -54
  29. package/chunks/{channel-worker-group-JR6JOELM.js → channel-worker-group-3DUJFZJR.js} +8 -8
  30. package/chunks/{channel-worker-manager-AVKJEZFL.js → channel-worker-manager-E5UW2VLA.js} +8 -8
  31. package/chunks/{channel-worker-supervisor-OOYY7BAQ.js → channel-worker-supervisor-VN33GSEC.js} +5 -5
  32. package/chunks/{chunk-2YMRRI2C.js → chunk-2C5TR6HN.js} +82 -9
  33. package/chunks/{chunk-YDFOHRS5.js → chunk-2GP6BQ2J.js} +1 -1
  34. package/chunks/{chunk-JATZTB7X.js → chunk-347O2YZJ.js} +158 -290
  35. package/chunks/{chunk-RYREFZFH.js → chunk-36NRLIR6.js} +10 -8
  36. package/chunks/{chunk-AXZMWAJV.js → chunk-36SDZ2Q4.js} +8 -0
  37. package/chunks/{chunk-QR4Q425T.js → chunk-3BZI5GDP.js} +1 -1
  38. package/chunks/{chunk-IP6NRULS.js → chunk-3HTUE6ZR.js} +3 -3
  39. package/chunks/{chunk-B2VSRPS6.js → chunk-3LLEB5CU.js} +2 -2
  40. package/chunks/{chunk-L2XNHRDL.js → chunk-3UGMLA4V.js} +10 -8
  41. package/chunks/{chunk-66N6C4EH.js → chunk-3WILPKTJ.js} +2 -2
  42. package/chunks/{chunk-SROLVJFY.js → chunk-3WWPEFMX.js} +1 -1
  43. package/chunks/{chunk-ZKIAGIGH.js → chunk-3XBUCOWS.js} +1 -1
  44. package/chunks/{chunk-737SVOO7.js → chunk-43Y26NPF.js} +3 -3
  45. package/chunks/{chunk-INGBUYL6.js → chunk-4FLUQWJ4.js} +1 -1
  46. package/chunks/{chunk-BTBJEB27.js → chunk-4JFLRHNE.js} +1 -1
  47. package/chunks/{chunk-MJHLKWGJ.js → chunk-4QPVZA5J.js} +70 -23
  48. package/chunks/{chunk-XX5HQLCZ.js → chunk-6OTF7TTE.js} +32 -1
  49. package/chunks/{chunk-4Y2I3CI3.js → chunk-6USYH3EU.js} +99 -6
  50. package/chunks/{chunk-Q3TFRP5G.js → chunk-7D4CV7JH.js} +102 -9
  51. package/chunks/{chunk-EWJTAP3Y.js → chunk-7O5PYQ3M.js} +20 -1
  52. package/chunks/chunk-ADN5KESB.js +28 -0
  53. package/chunks/chunk-AKRSSKUT.js +229 -0
  54. package/chunks/{chunk-IOXJX7XE.js → chunk-AQP3H22J.js} +1 -1
  55. package/chunks/{chunk-YP7QCE7X.js → chunk-AUX2FL5T.js} +24 -7
  56. package/chunks/{chunk-YGFJ6BRT.js → chunk-AZCTY64Z.js} +1 -1
  57. package/chunks/{chunk-5CDDYYNI.js → chunk-B5TJK7B3.js} +1 -1
  58. package/chunks/{chunk-7MKB7L25.js → chunk-B6RMK4ED.js} +4 -4
  59. package/chunks/{chunk-YH24ZJ65.js → chunk-BHG3H6OZ.js} +1 -1
  60. package/chunks/{chunk-BRPYJQDD.js → chunk-BHVF3R6B.js} +7 -5
  61. package/chunks/{chunk-HFJSQ4GL.js → chunk-BTICBRPL.js} +1 -1
  62. package/chunks/{chunk-KZCK5JUN.js → chunk-C3T6HPNM.js} +1 -1
  63. package/chunks/{chunk-UB2MATP5.js → chunk-CDDP4ONL.js} +164 -27
  64. package/chunks/{chunk-OL3TNHFM.js → chunk-CQPM66MG.js} +4 -4
  65. package/chunks/{chunk-WKVZES7O.js → chunk-CXONOVBN.js} +1 -1
  66. package/chunks/{chunk-6IHJLXNF.js → chunk-CXY6BICQ.js} +501 -479
  67. package/chunks/{chunk-I5QPDANL.js → chunk-D3KVGQUV.js} +1 -1
  68. package/chunks/{chunk-LMJSPC55.js → chunk-D7JMO2GP.js} +3 -7
  69. package/chunks/{chunk-CXXAZ2LZ.js → chunk-DC4ZNGH4.js} +1 -1
  70. package/chunks/{chunk-FMLBBXHB.js → chunk-DRAX5YAI.js} +2 -2
  71. package/chunks/{chunk-DOTF2PF2.js → chunk-DRD6VBNH.js} +1 -1
  72. package/chunks/chunk-DX6JTDMR.js +105 -0
  73. package/chunks/{chunk-HJAJ6MR6.js → chunk-E2VSBAFA.js} +53 -11
  74. package/chunks/{chunk-G7ZYRFHS.js → chunk-EIBECN2J.js} +3 -3
  75. package/chunks/{chunk-LWWRJRCD.js → chunk-ESBYWATJ.js} +1 -1
  76. package/chunks/{chunk-2PLQ3CXJ.js → chunk-FASYATAZ.js} +5 -7
  77. package/chunks/{chunk-3ADU34IF.js → chunk-FBY32737.js} +4 -4
  78. package/chunks/{chunk-SIDVJZWH.js → chunk-FCPJXKDG.js} +10 -7
  79. package/chunks/{chunk-5GXJBU7K.js → chunk-FEDFZBGR.js} +3 -3
  80. package/chunks/{chunk-CALVKIIG.js → chunk-FIJODK52.js} +3 -3
  81. package/chunks/{chunk-ZTVYMZBD.js → chunk-FX6PZBOV.js} +3 -3
  82. package/chunks/{chunk-L6DIANLD.js → chunk-G45B3INR.js} +1 -1
  83. package/chunks/{chunk-TATT2THJ.js → chunk-GI7SLDOI.js} +2 -2
  84. package/chunks/chunk-GJKP6XOB.js +1092 -0
  85. package/chunks/{chunk-I6YJZGHS.js → chunk-GSAOVDTH.js} +9 -9
  86. package/chunks/{chunk-7MIOAF77.js → chunk-H6L4NEAT.js} +1 -1
  87. package/chunks/{chunk-MJGJF6G6.js → chunk-HNFKYKHH.js} +103 -22
  88. package/chunks/{chunk-PN6D5LWJ.js → chunk-HX4WXX3H.js} +301 -138
  89. package/chunks/{chunk-HG46TTAG.js → chunk-HXUI5D4H.js} +1 -1
  90. package/chunks/{chunk-JF2CFBDK.js → chunk-HYHSMTRA.js} +4 -4
  91. package/chunks/{chunk-4DZMYFZA.js → chunk-IKBEIDOH.js} +14 -14
  92. package/chunks/{chunk-QEENIXYB.js → chunk-INN5ORKX.js} +1 -1
  93. package/chunks/{chunk-GNV2SFO7.js → chunk-IVFTLUZD.js} +26 -1
  94. package/chunks/{chunk-L2NII7PZ.js → chunk-IXO2OCIP.js} +2 -2
  95. package/chunks/{chunk-6MAHSVMB.js → chunk-K4XMAIRX.js} +30 -33
  96. package/chunks/{chunk-AYMSNIYL.js → chunk-KAYC5FBN.js} +5269 -2785
  97. package/chunks/chunk-KEM7MWS7.js +3541 -0
  98. package/chunks/{chunk-ADQUK6WA.js → chunk-KVC7HZWK.js} +1 -1
  99. package/chunks/{chunk-Z35OSDIT.js → chunk-KVQ3QL4K.js} +3 -3
  100. package/chunks/{chunk-7U5G6JXI.js → chunk-KWYTSSTJ.js} +105 -6
  101. package/chunks/{chunk-PZRAE65J.js → chunk-L2A5VBDL.js} +3019 -2352
  102. package/chunks/{chunk-WD6YQI5M.js → chunk-L3SNMEDW.js} +1 -1
  103. package/chunks/{chunk-BYUAT5OC.js → chunk-L7TJUPNR.js} +19 -3
  104. package/chunks/{chunk-ABNX6E6K.js → chunk-LFKXIOGC.js} +1 -1
  105. package/chunks/{chunk-NFQOOITE.js → chunk-LO2UWNO5.js} +2 -2
  106. package/chunks/{chunk-LWUTZKDU.js → chunk-M22WLKLI.js} +5 -5
  107. package/chunks/{chunk-54B2LTKP.js → chunk-M23GFJ5B.js} +24 -5
  108. package/chunks/{chunk-VGY2RGXL.js → chunk-M4U2LTD2.js} +1 -1
  109. package/chunks/{chunk-ZNI3YJHS.js → chunk-MFDKHGTD.js} +1 -1
  110. package/chunks/{chunk-R7OO56VZ.js → chunk-MMRGG6R4.js} +1 -1
  111. package/chunks/{chunk-E6IR653O.js → chunk-MO4XID7S.js} +1 -1
  112. package/chunks/{chunk-FZQQMVLB.js → chunk-NKTMUPHJ.js} +3 -6
  113. package/chunks/{chunk-V77DTVCM.js → chunk-NQ272MQG.js} +1 -1
  114. package/chunks/{chunk-TDFLM7BE.js → chunk-OALXNGUA.js} +6 -6
  115. package/chunks/{chunk-FBDHP23D.js → chunk-OSG23MR3.js} +1 -1
  116. package/chunks/{chunk-NJ2OFVUX.js → chunk-P42KMMU6.js} +860 -1
  117. package/chunks/{chunk-Y33TCKXL.js → chunk-PF7GAP6K.js} +60 -58
  118. package/chunks/{chunk-MQRLLBMQ.js → chunk-PPJSG2PU.js} +2 -2
  119. package/chunks/{chunk-EPVEPTI3.js → chunk-PZRXWQUA.js} +753 -18
  120. package/chunks/{chunk-OLN7QX4P.js → chunk-Q54O3EIA.js} +30 -28
  121. package/chunks/{chunk-DQH3EVAD.js → chunk-QGEISOJ2.js} +4 -4
  122. package/chunks/{chunk-3M4O2AY3.js → chunk-QHSOINX6.js} +2 -2
  123. package/chunks/{chunk-HIQEL7EM.js → chunk-QIPLWW6Q.js} +1 -1
  124. package/chunks/chunk-QMENOK5T.js +1246 -0
  125. package/chunks/chunk-QT6Z2IBF.js +347 -0
  126. package/chunks/{chunk-TBSCTWKF.js → chunk-RN6A53UJ.js} +25 -0
  127. package/chunks/{chunk-65BKWMMH.js → chunk-RRI764F7.js} +21 -19
  128. package/chunks/{chunk-YI2YCNSP.js → chunk-SENYKRII.js} +1 -1
  129. package/chunks/chunk-SFHX5G2S.js +2796 -0
  130. package/chunks/chunk-SK3RZOPS.js +34 -0
  131. package/chunks/{chunk-MD6KXINN.js → chunk-SOLRBF7L.js} +13 -9
  132. package/chunks/{chunk-6BCN3VOY.js → chunk-SSWTA7CH.js} +12 -12
  133. package/chunks/{chunk-IAS753HG.js → chunk-SYMXYRM5.js} +11 -2
  134. package/chunks/{chunk-FGROOEKM.js → chunk-TDKUXSJO.js} +34 -6
  135. package/chunks/{chunk-ZJ7JQUGY.js → chunk-TKF4JINY.js} +1 -1
  136. package/chunks/{chunk-RVK37FWG.js → chunk-TPY6HW55.js} +4 -4
  137. package/chunks/{chunk-EDB556X7.js → chunk-TRZ22SG5.js} +1 -1
  138. package/chunks/{chunk-7LG4MUUD.js → chunk-TXTCM3TC.js} +4 -4
  139. package/chunks/{chunk-5ODRE7E5.js → chunk-U4AASWUQ.js} +28 -12
  140. package/chunks/{chunk-WPMRT4AR.js → chunk-UQGRJTDK.js} +2 -2
  141. package/chunks/{chunk-JBS56C7O.js → chunk-UZSB57EV.js} +6 -8
  142. package/chunks/{chunk-S4M6BDNE.js → chunk-V4JJAVHQ.js} +2 -2
  143. package/chunks/chunk-VEXUA6DX.js +1026 -0
  144. package/chunks/{chunk-ME4JBHSB.js → chunk-VQDWCQOE.js} +2 -0
  145. package/chunks/{chunk-3XXDCC5C.js → chunk-VU3XMZ5I.js} +23 -4
  146. package/chunks/{chunk-RD2HAF25.js → chunk-WL36KHUQ.js} +6 -6
  147. package/chunks/{chunk-WYRSEVBQ.js → chunk-WNQIJTOP.js} +8 -8
  148. package/chunks/{chunk-GTBXQ5W2.js → chunk-WSJI6ODG.js} +99 -30
  149. package/chunks/{chunk-VN5G33G7.js → chunk-WZWTY7SG.js} +6 -6
  150. package/chunks/{chunk-EKMJR7M3.js → chunk-X7AYIXC7.js} +1 -1
  151. package/chunks/{chunk-IBRQG2MP.js → chunk-XAJZFGD2.js} +11 -11
  152. package/chunks/{chunk-VRQZESKP.js → chunk-XICCGDWF.js} +2 -2
  153. package/chunks/{chunk-OZ2KDR2L.js → chunk-Y2KJC55Y.js} +12 -7
  154. package/chunks/{chunk-2S2WIGCM.js → chunk-Y4NNIGYO.js} +1 -1
  155. package/chunks/{chunk-J7LBAKDH.js → chunk-YL3UJML3.js} +7 -7
  156. package/chunks/{chunk-GSS4SZNG.js → chunk-YP2K3WOS.js} +40 -56
  157. package/chunks/{chunk-ZZUXUBEB.js → chunk-YQQ2U7AS.js} +8 -5
  158. package/chunks/{chunk-FAWTMDX7.js → chunk-YXHY6BKS.js} +15 -0
  159. package/chunks/{chunk-VIV2I3R7.js → chunk-YZXSDPOQ.js} +140 -39
  160. package/chunks/{chunk-KZ63S3HX.js → chunk-ZFHKUQZ4.js} +3 -3
  161. package/chunks/{chunk-B6KSTADQ.js → chunk-ZMYKNKET.js} +6 -6
  162. package/chunks/{codex-subagent-executor-6M7TD3MF.js → codex-subagent-executor-AEAIQZDC.js} +48 -49
  163. package/chunks/{config-utils-TB4QERW7.js → config-utils-KX2YS725.js} +43 -46
  164. package/chunks/{contextCommand-BFQMDECM.js → contextCommand-RV6Y5LNJ.js} +41 -44
  165. package/chunks/{core-runtime-Z2QJJMHR.js → core-runtime-ZI4RTOJQ.js} +45 -48
  166. package/chunks/{create-sub-session-GE4U3D7C.js → create-sub-session-BBWFQARJ.js} +46 -48
  167. package/chunks/{daemon-NJB4PWZ7.js → daemon-INCM4VBX.js} +3 -1
  168. package/chunks/{daemon-git-worktree-guard-IPA22S72.js → daemon-git-worktree-guard-KECEMV6A.js} +39 -42
  169. package/chunks/{daemon-status-provider-2U5WPCCB.js → daemon-status-provider-NULJNAEV.js} +53 -56
  170. package/chunks/{daemon-trust-policy-GEIGMVDQ.js → daemon-trust-policy-S4KWGPV3.js} +47 -50
  171. package/chunks/{daemon-trust-policy-monitor-JETBW5FX.js → daemon-trust-policy-monitor-546N5ZVL.js} +47 -50
  172. package/chunks/{de-VGY3VNBU.js → de-6AVKPTXQ.js} +11 -0
  173. package/chunks/{deferred-core-runtime-LANRK77C.js → deferred-core-runtime-T23ZT443.js} +39 -42
  174. package/chunks/{dist-NIOJXMGY.js → dist-4P3ZJYGI.js} +1 -1
  175. package/chunks/{dist-VDLSBCLM.js → dist-7MGRENQ5.js} +1 -1
  176. package/chunks/{dist-SE4J6Z4O.js → dist-BNW423XT.js} +326 -77
  177. package/chunks/{dist-TFGETXFN.js → dist-CESMUYGN.js} +4 -4
  178. package/chunks/{dist-MPUZZOG5.js → dist-DBBOFWSC.js} +1 -1
  179. package/chunks/{dist-T6DDPDLQ.js → dist-G5UMXIGF.js} +1 -1
  180. package/chunks/{dist-PA7WPFVE.js → dist-UXVNLQHG.js} +3 -3
  181. package/chunks/{dist-GUB7QRYA.js → dist-VA4LREAQ.js} +2 -2
  182. package/chunks/{dist-2QYIVNS6.js → dist-XDRTR4QP.js} +1 -1
  183. package/chunks/{edit-QC63PJOZ.js → edit-CMSQB7NP.js} +27 -30
  184. package/chunks/{en-E5ZO5TZW.js → en-56QLKXS2.js} +23 -1
  185. package/chunks/{enter-worktree-CAARFWBI.js → enter-worktree-DA6A4XC5.js} +3 -3
  186. package/chunks/{enterPlanMode-5TMWDRXD.js → enterPlanMode-UDPMNESD.js} +27 -30
  187. package/chunks/{environment-TNQVM5B3.js → environment-TSQJUTPV.js} +42 -45
  188. package/chunks/{errors-KWDDLG7P.js → errors-RIVYJS6T.js} +41 -44
  189. package/chunks/{exit-worktree-JXGGUOBP.js → exit-worktree-4H6Z2VQI.js} +3 -3
  190. package/chunks/{exitPlanMode-CLEWPZIE.js → exitPlanMode-BYBBFN2T.js} +27 -30
  191. package/chunks/{fast-path-PMRLQT7J.js → fast-path-F2CYDDZ4.js} +4 -4
  192. package/chunks/{fast-path-settings-XDYX7X5Z.js → fast-path-settings-N2VGRGDJ.js} +2 -2
  193. package/chunks/{fr-UAZJJH5N.js → fr-EBUDHJL3.js} +11 -0
  194. package/chunks/{glob-3AK4KKCE.js → glob-Z2JMJKKN.js} +27 -30
  195. package/chunks/{goal-tools-FD6OCE6Q.js → goal-tools-HXVVLGCV.js} +27 -30
  196. package/chunks/{handleAutoUpdate-QUNNMMY6.js → handleAutoUpdate-FZP45KOR.js} +43 -46
  197. package/chunks/{i18n-DVN326VM.js → i18n-OTB62AKW.js} +40 -43
  198. package/chunks/{image-gen-5G2TQ3DY.js → image-gen-HIAZCB5T.js} +6 -7
  199. package/chunks/{initializer-JHEJBPVJ.js → initializer-4JXZEC4B.js} +47 -50
  200. package/chunks/{installationInfo-DYOI4I5U.js → installationInfo-2IJV5QKC.js} +39 -42
  201. package/chunks/{ja-2RITCMAJ.js → ja-NCDT4CGV.js} +11 -0
  202. package/chunks/{list-MW74DDMO.js → list-KQSQ4A5G.js} +50 -53
  203. package/chunks/{llm-HUDP76IA.js → llm-LSUBOJAR.js} +154 -974
  204. package/chunks/{llm-content-generator-KYD6ZEM6.js → llm-content-generator-MLIONRXE.js} +17 -12
  205. package/chunks/{loadedSettingsAdapter-RRAZOPRB.js → loadedSettingsAdapter-TZTTNRHI.js} +47 -50
  206. package/chunks/{loggingContentGenerator-MHE6Z2OZ.js → loggingContentGenerator-TUPEXFMM.js} +31 -34
  207. package/chunks/{loop-wakeup-VG6CGBQA.js → loop-wakeup-ZBVRI6VH.js} +1 -1
  208. package/chunks/{managed-npm-update-3G3O3T3R.js → managed-npm-update-WEA5XMFZ.js} +40 -43
  209. package/chunks/{mcp-JGLBFJQB.js → mcp-TFDTUPIA.js} +47 -50
  210. package/chunks/{model-configuration-EGWMLK4P.js → model-configuration-ZCAKKIOF.js} +48 -51
  211. package/chunks/{modelConfigUtils-H4WFGWQD.js → modelConfigUtils-J3ZPW7ZK.js} +41 -44
  212. package/chunks/{monitor-62V72TGX.js → monitor-CI7YE7MT.js} +29 -32
  213. package/chunks/{nonInteractiveCli-GYKHG7RX.js → nonInteractiveCli-GPT3TVOK.js} +96 -98
  214. package/chunks/{notebook-edit-HOJLHP3F.js → notebook-edit-3WCVRNGL.js} +27 -30
  215. package/chunks/{openaiContentGenerator-ZAJTUWVO.js → openaiContentGenerator-OGILGUZE.js} +12 -17
  216. package/chunks/{openaiResponsesContentGenerator-AWRYZLJU.js → openaiResponsesContentGenerator-NXOXUPFM.js} +45 -13
  217. package/chunks/{pidfile-CS7LHAN5.js → pidfile-GBTBIGHF.js} +39 -42
  218. package/chunks/{process-registry-X6ZCASEN.js → process-registry-7LAPI3ZB.js} +1 -1
  219. package/chunks/{processUtils-OWQU3JQM.js → processUtils-O4II3RYH.js} +2 -2
  220. package/chunks/{prompt-terminal-ledger-76P527XD.js → prompt-terminal-ledger-ILIXZI3E.js} +40 -43
  221. package/chunks/{pt-5ZF7ZQUV.js → pt-FYYFWYUC.js} +11 -0
  222. package/chunks/{qwenContentGenerator-QZCQ3UTX.js → qwenContentGenerator-I4LRYADV.js} +33 -36
  223. package/chunks/{qwenOAuth2-WIEUEFEY.js → qwenOAuth2-3J66TOT5.js} +6 -7
  224. package/chunks/{read-file-KR5BES2E.js → read-file-G4XKW2CS.js} +5 -9
  225. package/chunks/{record-artifact-PXMNP7GZ.js → record-artifact-L3CFJOMA.js} +2 -2
  226. package/chunks/{report-findings-W6GR7SYZ.js → report-findings-LY5HQY4K.js} +3 -3
  227. package/chunks/{resumeHistoryUtils-36NM5S3D.js → resumeHistoryUtils-YPJU4XFE.js} +44 -47
  228. package/chunks/{ripGrep-QGFIVODS.js → ripGrep-AAKMALLM.js} +7 -11
  229. package/chunks/{ru-7BNZFQKG.js → ru-RHEB3RNS.js} +11 -0
  230. package/chunks/{run-qwen-serve-UFEOUIDD.js → run-qwen-serve-ZVEKGS7Y.js} +177 -98
  231. package/chunks/{runtime-7LTR2C7Q.js → runtime-SJCRYNPA.js} +52 -55
  232. package/chunks/safe-mode-KLGUG54M.js +11 -0
  233. package/chunks/sandbox-UIXL423Z.js +146 -0
  234. package/chunks/sandboxConfig-CY343YNJ.js +114 -0
  235. package/chunks/{scheduled-tasks-MV22T3JO.js → scheduled-tasks-5UGBEVNZ.js} +50 -53
  236. package/chunks/{scheduler-HSNQ53ML.js → scheduler-GCZYLZ2P.js} +41 -44
  237. package/chunks/{sdk-exporters-http-3R2TRQHE.js → sdk-exporters-http-DR4G663K.js} +1 -1
  238. package/chunks/{sdk-impl-4WF3VZ2F.js → sdk-impl-SJR26MQF.js} +3 -3
  239. package/chunks/{send-message-UMJKN27Q.js → send-message-DN76MXDX.js} +6 -6
  240. package/chunks/{serve-LDD4FEJQ.js → serve-2XXQLVK2.js} +48 -51
  241. package/chunks/{server-IKTZFW3E.js → server-UHMKPCAZ.js} +408 -211
  242. package/chunks/{session-T77EXOOI.js → session-ZLUK7E4P.js} +108 -108
  243. package/chunks/{session-attachments-root-FBASBVAO.js → session-attachments-root-DHQM5IEZ.js} +39 -42
  244. package/chunks/{session-pr-refresh-2BHKIMIN.js → session-pr-refresh-3OMTQWCZ.js} +48 -51
  245. package/chunks/{settings-TJNUFBGG.js → settings-P4DHIIUP.js} +50 -53
  246. package/chunks/{shell-HDI5VPGD.js → shell-IMFUVQQ5.js} +27 -30
  247. package/chunks/{skill-VTA6FNDX.js → skill-NB5RJGZW.js} +7 -11
  248. package/chunks/{skill-settings-K4LSGCKA.js → skill-settings-IXG5CTQO.js} +47 -50
  249. package/chunks/{spawnChannel-YSGSPD5D.js → spawnChannel-Q3YALTCJ.js} +44 -45
  250. package/chunks/{standalone-update-O5LYCCMB.js → standalone-update-H5OJ7MM7.js} +41 -44
  251. package/chunks/{start-opentui-ui-CS6HKYCE.js → start-opentui-ui-JKAIWGF7.js} +733 -386
  252. package/chunks/{startInteractiveUI-IVP5HEDD.js → startInteractiveUI-YRPOT6GH.js} +370 -337
  253. package/chunks/task-create-75HVPEAH.js +1 -1
  254. package/chunks/{team-create-DW4KE2PR.js → team-create-2XTBYRJF.js} +31 -34
  255. package/chunks/{team-plan-approval-33UL4JDG.js → team-plan-approval-CFNWW7ZQ.js} +27 -30
  256. package/chunks/{terminal-image-renderer-4FK76L22.js → terminal-image-renderer-UDPJPGPQ.js} +39 -42
  257. package/chunks/{theme-manager-UQ3EKEJ4.js → theme-manager-SK57EKMO.js} +39 -42
  258. package/chunks/{tool-search-QUOG6M6M.js → tool-search-ZHTJU2MV.js} +5 -9
  259. package/chunks/{total-session-admission-QRWPWSK5.js → total-session-admission-UUZBDQCG.js} +47 -50
  260. package/chunks/{tree-sitter-ALGO6NDO.js → tree-sitter-4D7QS7F6.js} +1 -1
  261. package/chunks/{tree-sitter-bash-H6YH7EBF.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
  262. package/chunks/{trustedFolders-HESP75BK.js → trustedFolders-4LDBLNTS.js} +40 -43
  263. package/chunks/{update-relaunch-YROJ7A26.js → update-relaunch-LI7GRP36.js} +5 -5
  264. package/chunks/{updateCheck-CUKTRHID.js → updateCheck-PKSSORPO.js} +43 -46
  265. package/chunks/{useAutoAcceptIndicator-BQGSRBHX.js → useAutoAcceptIndicator-I32UEQPI.js} +50 -53
  266. package/chunks/{validateNonInterActiveAuth-UM5U2ZZI.js → validateNonInterActiveAuth-YFPCYYNL.js} +93 -95
  267. package/chunks/{version-A6G2KO4K.js → version-4MTL4JVU.js} +1 -1
  268. package/chunks/{web-fetch-A3RMCVQY.js → web-fetch-O6RG6ISB.js} +9 -13
  269. package/chunks/{web-search-3XGJ773E.js → web-search-JHAXVEMD.js} +9 -14
  270. package/chunks/{web-shell-static-T7UGLVE4.js → web-shell-static-FFWCUUZS.js} +8 -4
  271. package/chunks/{workflow-4TWAFNIB.js → workflow-O7L6VDYU.js} +396 -113
  272. package/chunks/{workspace-providers-status-GNTJ4OIZ.js → workspace-providers-status-WRX6CJM4.js} +53 -56
  273. package/chunks/{workspace-registration-store-D3K34O63.js → workspace-registration-store-7G4E7YPY.js} +1 -1
  274. package/chunks/{workspace-registry-ZE5ZSWNF.js → workspace-registry-SXIMGT4D.js} +47 -50
  275. package/chunks/{workspace-runtime-coordinator-DEXM2635.js → workspace-runtime-coordinator-7DOEHXYT.js} +47 -50
  276. package/chunks/{workspace-service-OGYORPWD.js → workspace-service-HDXOZMYC.js} +53 -56
  277. package/chunks/{workspace-skills-status-4W4H3BGJ.js → workspace-skills-status-VN4L37CA.js} +50 -53
  278. package/chunks/{workspace-trust-reconciler-BHR7S7UJ.js → workspace-trust-reconciler-XEBW5FUL.js} +57 -60
  279. package/chunks/{write-file-EP5AEO5E.js → write-file-LKX4ETIO.js} +29 -32
  280. package/chunks/{zh-V2EYTYJP.js → zh-F76MZTL3.js} +23 -1
  281. package/chunks/{zh-TW-7PRVUGLW.js → zh-TW-S3YTQ4DS.js} +23 -1
  282. package/chunks/{zoom-image-DDEGWG3R.js → zoom-image-RDPRTP4B.js} +5 -9
  283. package/cli.js +19 -15
  284. package/export-transcript-document.css +1 -1
  285. package/export-transcript-document.js +151 -150
  286. package/locales/ca.js +19 -2
  287. package/locales/de.js +18 -0
  288. package/locales/en.js +33 -2
  289. package/locales/fr.js +18 -0
  290. package/locales/ja.js +18 -0
  291. package/locales/pt.js +18 -0
  292. package/locales/ru.js +18 -0
  293. package/locales/zh-TW.js +33 -2
  294. package/locales/zh.js +33 -2
  295. package/package.json +3 -3
  296. package/web-shell/assets/{abnfDiagram-VCTEODGH-BtpzKw3A.js → abnfDiagram-VCTEODGH-RxykUDmi.js} +1 -1
  297. package/web-shell/assets/{arc-CQiVKZJP.js → arc-CZpgGCJC.js} +1 -1
  298. package/web-shell/assets/{architectureDiagram-5GKGNRK7-ekIPBb2d.js → architectureDiagram-5GKGNRK7-BHSMzNDT.js} +1 -1
  299. package/web-shell/assets/{blockDiagram-NRAW4CY4-BrRWkWri.js → blockDiagram-NRAW4CY4-Bn4mF9SZ.js} +1 -1
  300. package/web-shell/assets/{c4Diagram-UCG6FXSJ-qYS8CYZ3.js → c4Diagram-UCG6FXSJ-CBM-Bj6t.js} +1 -1
  301. package/web-shell/assets/channel-DFYs_LlK.js +1 -0
  302. package/web-shell/assets/{chunk-2Q5K7J3B-ZasyyEZm.js → chunk-2Q5K7J3B-D5Fin58O.js} +1 -1
  303. package/web-shell/assets/{chunk-5VM5RSS4-C_IzCGeA.js → chunk-5VM5RSS4-CY05weF7.js} +1 -1
  304. package/web-shell/assets/{chunk-F27PBJKO-C25NZOyD.js → chunk-F27PBJKO-3neZnj5Y.js} +1 -1
  305. package/web-shell/assets/{chunk-G27WJ6UU-XPOHNSGX.js → chunk-G27WJ6UU-Cd7EU4BE.js} +1 -1
  306. package/web-shell/assets/{chunk-JWPE2WC7-BQBh0Xni.js → chunk-JWPE2WC7-DwK1mqFw.js} +1 -1
  307. package/web-shell/assets/{chunk-LCL6LL3I-CoShjpX7.js → chunk-LCL6LL3I-Sl7vY22C.js} +1 -1
  308. package/web-shell/assets/{chunk-POPQ4Y6H-BwRmCDSz.js → chunk-POPQ4Y6H-BXNzpbVg.js} +1 -1
  309. package/web-shell/assets/{chunk-SVP7TREG-DSzE5-Mw.js → chunk-SVP7TREG-DjjButcp.js} +1 -1
  310. package/web-shell/assets/{chunk-XXDRQBXY-BQSQv30h.js → chunk-XXDRQBXY-DNOiCjOJ.js} +1 -1
  311. package/web-shell/assets/classDiagram-DTDB5LWJ-DnGrKXoM.js +1 -0
  312. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DnGrKXoM.js +1 -0
  313. package/web-shell/assets/{cose-bilkent-JH36ORCC-XVUVTHVo.js → cose-bilkent-JH36ORCC-BUnker7a.js} +1 -1
  314. package/web-shell/assets/{cynefin-OW5HDTMX-CrsKx4lQ.js → cynefin-OW5HDTMX-DcUgdWE5.js} +1 -1
  315. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BPeZEuHw.js → cynefinDiagram-5FMLGOSQ-CvDKsZsL.js} +1 -1
  316. package/web-shell/assets/{dagre-3AP2YEHR-D31cQ2Qs.js → dagre-3AP2YEHR-jpCmUbr1.js} +1 -1
  317. package/web-shell/assets/{diagram-S7CK7UJ4-zyiG097Q.js → diagram-S7CK7UJ4-DBe_bKE5.js} +1 -1
  318. package/web-shell/assets/{diagram-UQ7AKVKN-Br3vtfsy.js → diagram-UQ7AKVKN-oXvPpDgs.js} +1 -1
  319. package/web-shell/assets/{diagram-VSXAHHWV-Bxkhjx4u.js → diagram-VSXAHHWV-BD7-_SGh.js} +1 -1
  320. package/web-shell/assets/{diagram-VX7I27RA-BQH8QiDk.js → diagram-VX7I27RA-DOJL0wub.js} +1 -1
  321. package/web-shell/assets/{diagram-Z3DM3KII-B_aQ1cw0.js → diagram-Z3DM3KII-DRIiodDD.js} +1 -1
  322. package/web-shell/assets/{ebnfDiagram-PWID7BFC-B9N7BRQE.js → ebnfDiagram-PWID7BFC-Db31Ulmb.js} +1 -1
  323. package/web-shell/assets/{erDiagram-SSCWMZ5O-Cx6Hb1Re.js → erDiagram-SSCWMZ5O-CVHhwI2_.js} +1 -1
  324. package/web-shell/assets/{flowDiagram-A5DVABFB-DTuLP7GU.js → flowDiagram-A5DVABFB-DWOFy1FK.js} +1 -1
  325. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DYS3d-sL.js → ganttDiagram-EL5Y4UJY-C0sxQtPd.js} +1 -1
  326. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Cp0EGx04.js → gitGraphDiagram-WWUBYQGX-CNituBYC.js} +1 -1
  327. package/web-shell/assets/index-B15NlwB8.js +2213 -0
  328. package/web-shell/assets/index-BSrS0tQ6.css +36 -0
  329. package/web-shell/assets/{index-45-LkPDB.js → index-gm9tLk7h.js} +1 -1
  330. package/web-shell/assets/{infoDiagram-RXCK75RN-9--kukiT.js → infoDiagram-RXCK75RN-CxhJYtIR.js} +1 -1
  331. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CGBdsDLD.js → ishikawaDiagram-5VMMS53U-By2mchUy.js} +1 -1
  332. package/web-shell/assets/{journeyDiagram-EYS64GPL-DeXhcscd.js → journeyDiagram-EYS64GPL-CVH-OweI.js} +1 -1
  333. package/web-shell/assets/{kanban-definition-3QL26DDD-CFdvsU3b.js → kanban-definition-3QL26DDD-Cc9dQXLy.js} +1 -1
  334. package/web-shell/assets/knowledge-Dg9788h4.svg +1 -0
  335. package/web-shell/assets/{layout-DAnwQ3KB.js → layout-C_60ysHw.js} +1 -1
  336. package/web-shell/assets/{linear-CTo7v7Nh.js → linear-BvAVfqwu.js} +1 -1
  337. package/web-shell/assets/{mermaid.core-jggSxF1i.js → mermaid.core-C3CoBKAc.js} +6 -6
  338. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzIepvlJ.js → mindmap-definition-FBJOCRG2-Cuu8Q8LM.js} +1 -1
  339. package/web-shell/assets/{pegDiagram-XKGWAZYB-BFGS9GJv.js → pegDiagram-XKGWAZYB-DmAeyDO2.js} +1 -1
  340. package/web-shell/assets/{pieDiagram-E7YTZNPT-B2UUcNIT.js → pieDiagram-E7YTZNPT-B7vbB_xv.js} +1 -1
  341. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-BgM6htrX.js → quadrantDiagram-AXDQQJYC-BqOBkRR7.js} +1 -1
  342. package/web-shell/assets/{railroadDiagram-O6MQD6OU-Dk9cS7N-.js → railroadDiagram-O6MQD6OU-sI06lZIu.js} +1 -1
  343. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-C9oRg7xi.js → requirementDiagram-EFPCY7ZU-Bg13d10S.js} +1 -1
  344. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-B-_c7GzI.js → sankeyDiagram-P5KCCOFB-WFOzZHrR.js} +1 -1
  345. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-R0M-347u.js → sequenceDiagram-WJ2MYXX4-CCdRbA4E.js} +1 -1
  346. package/web-shell/assets/{sizeCapture-X5ZJPWSS-Df0f8UAW.js → sizeCapture-X5ZJPWSS-BH5F3bGg.js} +1 -1
  347. package/web-shell/assets/{stateDiagram-HBIQ2CUA-CsUEfAA-.js → stateDiagram-HBIQ2CUA-NwS2X3QB.js} +1 -1
  348. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-1aU2JZXO.js +1 -0
  349. package/web-shell/assets/{swimlanes-XN3QIQJK-9OGHVSrx.js → swimlanes-XN3QIQJK-Bm38pM28.js} +1 -1
  350. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Dp-u6kQG.js +8 -0
  351. package/web-shell/assets/{timeline-definition-24CTP7MA-DAfGqS2B.js → timeline-definition-24CTP7MA-Do-agLSo.js} +1 -1
  352. package/web-shell/assets/{vennDiagram-4TSXK5OY-CKATpwHi.js → vennDiagram-4TSXK5OY-aggLfZzl.js} +1 -1
  353. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CQHdhTrm.js → wardleyDiagram-VM6X3IG4-D5JR3mXX.js} +1 -1
  354. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-5k9NLqlY.js → xychartDiagram-S5SC5T6Z-DhtLDuXs.js} +1 -1
  355. package/web-shell/index.html +2 -2
  356. package/chunks/chunk-7MIBD3LG.js +0 -137
  357. package/chunks/chunk-ARDHE6MM.js +0 -235
  358. package/chunks/chunk-C75BXMPM.js +0 -169
  359. package/chunks/chunk-ERU3SDXT.js +0 -27
  360. package/chunks/chunk-FPGTNKCP.js +0 -251
  361. package/chunks/chunk-JL6APGBX.js +0 -43
  362. package/chunks/chunk-L5OBTAXN.js +0 -137
  363. package/chunks/chunk-MZ3W3F44.js +0 -4172
  364. package/chunks/chunk-OIDF7L67.js +0 -514
  365. package/chunks/chunk-VSXX6VUI.js +0 -2812
  366. package/chunks/chunk-ZFYACOVD.js +0 -1416
  367. package/web-shell/assets/channel-DSQQnOZj.js +0 -1
  368. package/web-shell/assets/classDiagram-DTDB5LWJ-V94ta08R.js +0 -1
  369. package/web-shell/assets/classDiagram-v2-JRS7N3AN-V94ta08R.js +0 -1
  370. package/web-shell/assets/index-H8um-iEl.js +0 -2207
  371. package/web-shell/assets/index-n6N-2a3v.css +0 -36
  372. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-CnSuTPJ2.js +0 -1
  373. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Bb7TcWQw.js +0 -8
  374. package/chunks/{chunk-QZW6WRB7.js → chunk-5NUKK2DT.js} +2 -2
  375. package/chunks/{chunk-JS73NNWF.js → chunk-FUSEMYFX.js} +0 -0
  376. package/chunks/{chunk-SVWWF5TZ.js → chunk-WVURIAEE.js} +3 -3
  377. package/chunks/{task-update-RI7QNVDP.js → task-update-3LSYQDRW.js} +4 -4
@@ -1,20 +1,23 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ listCommand
5
+ } from "./chunk-FBY32737.js";
6
+ import {
7
+ getErrorMessage as getErrorMessage2
8
+ } from "./chunk-B6RMK4ED.js";
9
+ import {
10
+ loadSandboxConfig
11
+ } from "./chunk-QT6Z2IBF.js";
3
12
  import {
4
13
  CUSTOM_SANDBOX_IMAGE_ENV_VAR
5
- } from "./chunk-5CDDYYNI.js";
14
+ } from "./chunk-B5TJK7B3.js";
6
15
  import {
7
16
  isOwnInterfaceAddress
8
17
  } from "./chunk-24FVUD5P.js";
9
18
  import {
10
19
  serveCommand
11
- } from "./chunk-B6KSTADQ.js";
12
- import {
13
- listCommand
14
- } from "./chunk-3ADU34IF.js";
15
- import {
16
- getErrorMessage as getErrorMessage2
17
- } from "./chunk-7MKB7L25.js";
20
+ } from "./chunk-ZMYKNKET.js";
18
21
  import {
19
22
  OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
20
23
  ObservedChannelContactStore
@@ -56,18 +59,18 @@ import {
56
59
  import {
57
60
  resolvePath
58
61
  } from "./chunk-Y53DG2HA.js";
59
- import {
60
- normalizeSkillNames,
61
- resolveSkillSettings
62
- } from "./chunk-LMJSPC55.js";
63
62
  import {
64
63
  CLI_VERSION
65
- } from "./chunk-B2VSRPS6.js";
64
+ } from "./chunk-3LLEB5CU.js";
66
65
  import {
67
66
  collectProviderModelsForProtocol,
68
67
  getAuthTypeFromEnv,
69
68
  resolveCliGenerationConfig
70
- } from "./chunk-JBS56C7O.js";
69
+ } from "./chunk-UZSB57EV.js";
70
+ import {
71
+ normalizeSkillNames,
72
+ resolveSkillSettings
73
+ } from "./chunk-D7JMO2GP.js";
71
74
  import {
72
75
  channelLoopPath,
73
76
  createChannel,
@@ -85,17 +88,17 @@ import {
85
88
  resolveChannelLocale,
86
89
  selectFirstModel,
87
90
  sessionsPath
88
- } from "./chunk-VN5G33G7.js";
91
+ } from "./chunk-WZWTY7SG.js";
89
92
  import {
90
93
  getExtensionManager,
91
94
  requestChoicePluginNonInteractive,
92
95
  requestConsentNonInteractive,
93
96
  requestConsentOrFail,
94
97
  resolveExtensionCommandScope
95
- } from "./chunk-HJAJ6MR6.js";
98
+ } from "./chunk-E2VSBAFA.js";
96
99
  import {
97
100
  parseChannelConfig
98
- } from "./chunk-IAS753HG.js";
101
+ } from "./chunk-SYMXYRM5.js";
99
102
  import {
100
103
  findCliEntryPath
101
104
  } from "./chunk-V6WHFGST.js";
@@ -113,6 +116,10 @@ import {
113
116
  isChannelStartupReportAckMessage,
114
117
  isChannelWebhookTaskMessage
115
118
  } from "./chunk-STUJ7IMZ.js";
119
+ import {
120
+ normalizeWorkerDiagnostic,
121
+ sanitizeWorkerDiagnostic
122
+ } from "./chunk-L3SNMEDW.js";
116
123
  import {
117
124
  CHANNEL_DAEMON_WORKER_SENTINEL,
118
125
  CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
@@ -121,13 +128,13 @@ import {
121
128
  QWEN_DAEMON_WORKSPACE_ENV,
122
129
  QWEN_SERVER_TOKEN_ENV
123
130
  } from "./chunk-GYTKQYDB.js";
124
- import {
125
- normalizeWorkerDiagnostic,
126
- sanitizeWorkerDiagnostic
127
- } from "./chunk-WD6YQI5M.js";
128
131
  import {
129
132
  normalizeServeChannelSelection
130
133
  } from "./chunk-GDWE23OR.js";
134
+ import {
135
+ CHANNEL_WORKER_KILL_GRACE_MS,
136
+ CHANNEL_WORKER_STOP_GRACE_MS
137
+ } from "./chunk-CJ3DHN5I.js";
131
138
  import {
132
139
  ChannelDeliveryError,
133
140
  MAX_CHANNEL_DELIVERIES_IN_FLIGHT,
@@ -135,15 +142,11 @@ import {
135
142
  isChannelDeliveryMessage
136
143
  } from "./chunk-RKFGE7JH.js";
137
144
  import {
138
- CHANNEL_WORKER_KILL_GRACE_MS,
139
- CHANNEL_WORKER_STOP_GRACE_MS
140
- } from "./chunk-CJ3DHN5I.js";
145
+ redactLogCredentials
146
+ } from "./chunk-M5GB774H.js";
141
147
  import {
142
148
  EXTERNAL_TOOL_GUARD_TOKEN_ENV
143
149
  } from "./chunk-3VUENPWF.js";
144
- import {
145
- redactLogCredentials
146
- } from "./chunk-M5GB774H.js";
147
150
  import {
148
151
  pidFilePath,
149
152
  readServiceInfo,
@@ -158,7 +161,7 @@ import {
158
161
  clearAccount,
159
162
  loadAccount,
160
163
  saveAccount
161
- } from "./chunk-LWWRJRCD.js";
164
+ } from "./chunk-ESBYWATJ.js";
162
165
  import {
163
166
  AcpBridge,
164
167
  ChannelLoopScheduler,
@@ -169,15 +172,15 @@ import {
169
172
  isChannelProactiveDeliveryError,
170
173
  sanitizeLogText,
171
174
  sanitizePromptText
172
- } from "./chunk-EPVEPTI3.js";
175
+ } from "./chunk-PZRXWQUA.js";
173
176
  import {
174
177
  assembleMcpServers,
175
178
  getPendingGatedMcpServers,
176
179
  mcpCommand
177
- } from "./chunk-RD2HAF25.js";
180
+ } from "./chunk-WL36KHUQ.js";
178
181
  import {
179
182
  loadSettings
180
- } from "./chunk-65BKWMMH.js";
183
+ } from "./chunk-RRI764F7.js";
181
184
  import {
182
185
  detectSystemLanguage,
183
186
  getCurrentLanguage,
@@ -185,32 +188,19 @@ import {
185
188
  resolveLanguage,
186
189
  resolveLanguageSetting,
187
190
  t
188
- } from "./chunk-I6YJZGHS.js";
191
+ } from "./chunk-GSAOVDTH.js";
189
192
  import {
190
193
  isFileSourcedEnvKey,
191
194
  loadEnvironment
192
- } from "./chunk-FZQQMVLB.js";
195
+ } from "./chunk-NKTMUPHJ.js";
193
196
  import {
194
197
  resolveAcpChannelFallback,
195
198
  scrubAndReportInheritedLoaderEnv
196
- } from "./chunk-XX5HQLCZ.js";
197
- import {
198
- hideBin,
199
- yargs_default
200
- } from "./chunk-XFSFZCM5.js";
201
- import {
202
- readPackageUpSync
203
- } from "./chunk-2EAZ43JQ.js";
204
- import {
205
- getCliVersion
206
- } from "./chunk-IOXJX7XE.js";
207
- import {
208
- getPackageJson
209
- } from "./chunk-W3N5XAZ6.js";
199
+ } from "./chunk-6OTF7TTE.js";
210
200
  import {
211
201
  isWorkspaceTrusted,
212
202
  parseJsoncObject
213
- } from "./chunk-V77DTVCM.js";
203
+ } from "./chunk-NQ272MQG.js";
214
204
  import {
215
205
  require_strip_json_comments
216
206
  } from "./chunk-NPQ5ZKRP.js";
@@ -232,7 +222,17 @@ import {
232
222
  removeChannelMemoryEntries,
233
223
  removePeerController,
234
224
  updateChannelMemoryEntry
235
- } from "./chunk-JATZTB7X.js";
225
+ } from "./chunk-347O2YZJ.js";
226
+ import {
227
+ hideBin,
228
+ yargs_default
229
+ } from "./chunk-XFSFZCM5.js";
230
+ import {
231
+ readPackageUpSync
232
+ } from "./chunk-2EAZ43JQ.js";
233
+ import {
234
+ getCliVersion
235
+ } from "./chunk-AQP3H22J.js";
236
236
  import {
237
237
  FINDING_BASELINES,
238
238
  FINDING_CONFIDENCES,
@@ -241,10 +241,10 @@ import {
241
241
  FINDING_SEVERITIES,
242
242
  FINDING_SOURCES,
243
243
  compressFindingSummary
244
- } from "./chunk-EKMJR7M3.js";
244
+ } from "./chunk-X7AYIXC7.js";
245
245
  import {
246
246
  resolveReviewWorkflowConcurrency
247
- } from "./chunk-MZ3W3F44.js";
247
+ } from "./chunk-SFHX5G2S.js";
248
248
  import {
249
249
  Config,
250
250
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
@@ -260,12 +260,9 @@ import {
260
260
  checkForExtensionUpdate,
261
261
  getScopedEnvContents,
262
262
  ideContextStore,
263
- isBareMode,
264
263
  isExtensionCommittedWithWarningsError,
265
264
  isGitIgnored,
266
- isSafeModeEnv,
267
265
  isToolEnabled,
268
- isTruthy,
269
266
  isUnusableScriptEntry,
270
267
  loadServerHierarchicalMemory,
271
268
  normalizeProxyUrl,
@@ -274,7 +271,7 @@ import {
274
271
  sanitizeFilenameComponent,
275
272
  unquoteCStylePath,
276
273
  updateSetting
277
- } from "./chunk-AYMSNIYL.js";
274
+ } from "./chunk-KAYC5FBN.js";
278
275
  import {
279
276
  parsePositiveIntegerEnv
280
277
  } from "./chunk-6PVPNMXU.js";
@@ -282,14 +279,6 @@ import {
282
279
  nextFireTime,
283
280
  parseCron
284
281
  } from "./chunk-5EZRLTLQ.js";
285
- import {
286
- parseBooleanEnvFlag,
287
- require_dist,
288
- resolveTelemetrySettings
289
- } from "./chunk-NJ2OFVUX.js";
290
- import {
291
- resolveBundleDir
292
- } from "./chunk-ACHCT36C.js";
293
282
  import {
294
283
  describeSessionKind,
295
284
  listLiveSessions
@@ -297,52 +286,66 @@ import {
297
286
  import {
298
287
  isSameProcess
299
288
  } from "./chunk-CH2YDT6X.js";
289
+ import {
290
+ parseBooleanEnvFlag,
291
+ require_dist,
292
+ resolveTelemetrySettings
293
+ } from "./chunk-P42KMMU6.js";
294
+ import {
295
+ isSafeModeEnv
296
+ } from "./chunk-ADN5KESB.js";
297
+ import {
298
+ resolveBundleDir
299
+ } from "./chunk-ACHCT36C.js";
300
300
  import {
301
301
  APPROVAL_MODES
302
302
  } from "./chunk-JX6XHPTX.js";
303
+ import {
304
+ isBareMode,
305
+ isTruthy
306
+ } from "./chunk-SK3RZOPS.js";
303
307
  import {
304
308
  require_proper_lockfile
305
309
  } from "./chunk-MLXTMF7H.js";
306
310
  import {
307
311
  BUILT_IN_OUTPUT_STYLES
308
- } from "./chunk-AXZMWAJV.js";
312
+ } from "./chunk-36SDZ2Q4.js";
309
313
  import {
310
314
  addDaemonRequestAttribute
311
- } from "./chunk-L6DIANLD.js";
315
+ } from "./chunk-G45B3INR.js";
312
316
  import {
313
317
  parseLineTolerant
314
- } from "./chunk-UB2MATP5.js";
318
+ } from "./chunk-CDDP4ONL.js";
315
319
  import {
316
320
  Mutex
317
321
  } from "./chunk-VGC4I5JJ.js";
318
322
  import {
319
323
  getAllMemoryFilenames,
320
324
  setMemoryFilename
321
- } from "./chunk-QZW6WRB7.js";
322
- import {
323
- DEFAULT_QWEN_EMBEDDING_MODEL,
324
- VERTEX_ADC_HINT,
325
- hasVertexProjectConfigured
326
- } from "./chunk-OIDF7L67.js";
325
+ } from "./chunk-5NUKK2DT.js";
327
326
  import {
328
327
  atomicWriteFileSync,
329
328
  atomicWriteJSON
330
329
  } from "./chunk-XFFRI3WM.js";
330
+ import {
331
+ DEFAULT_QWEN_EMBEDDING_MODEL,
332
+ VERTEX_ADC_HINT,
333
+ hasVertexProjectConfigured
334
+ } from "./chunk-GJKP6XOB.js";
331
335
  import {
332
336
  isTlsVerificationDisabled
333
- } from "./chunk-EWJTAP3Y.js";
337
+ } from "./chunk-7O5PYQ3M.js";
334
338
  import {
335
339
  recordChannelMemoryRecallMetrics,
336
340
  redactUrlCredentials,
337
341
  stripAnsiAndControl
338
- } from "./chunk-4Y2I3CI3.js";
342
+ } from "./chunk-6USYH3EU.js";
339
343
  import {
340
344
  SchemaValidator,
341
345
  ToolNames
342
346
  } from "./chunk-RSWBT7AZ.js";
343
347
  import {
344
348
  FatalConfigError,
345
- FatalSandboxError,
346
349
  Storage,
347
350
  createDebugLogger,
348
351
  getErrorMessage,
@@ -373,167 +376,9 @@ import {
373
376
  __commonJS,
374
377
  __export,
375
378
  __name,
376
- __require,
377
379
  __toESM
378
380
  } from "./chunk-J2S4EL5Y.js";
379
381
 
380
- // node_modules/command-exists/lib/command-exists.js
381
- var require_command_exists = __commonJS({
382
- "node_modules/command-exists/lib/command-exists.js"(exports, module) {
383
- "use strict";
384
- init_esbuild_shims();
385
- var exec = __require("child_process").exec;
386
- var execSync = __require("child_process").execSync;
387
- var fs4 = __require("fs");
388
- var path6 = __require("path");
389
- var access2 = fs4.access;
390
- var accessSync4 = fs4.accessSync;
391
- var constants6 = fs4.constants || fs4;
392
- var isUsingWindows = process.platform == "win32";
393
- var fileNotExists = /* @__PURE__ */ __name(function(commandName, callback) {
394
- access2(
395
- commandName,
396
- constants6.F_OK,
397
- function(err) {
398
- callback(!err);
399
- }
400
- );
401
- }, "fileNotExists");
402
- var fileNotExistsSync = /* @__PURE__ */ __name(function(commandName) {
403
- try {
404
- accessSync4(commandName, constants6.F_OK);
405
- return false;
406
- } catch (e) {
407
- return true;
408
- }
409
- }, "fileNotExistsSync");
410
- var localExecutable = /* @__PURE__ */ __name(function(commandName, callback) {
411
- access2(
412
- commandName,
413
- constants6.F_OK | constants6.X_OK,
414
- function(err) {
415
- callback(null, !err);
416
- }
417
- );
418
- }, "localExecutable");
419
- var localExecutableSync = /* @__PURE__ */ __name(function(commandName) {
420
- try {
421
- accessSync4(commandName, constants6.F_OK | constants6.X_OK);
422
- return true;
423
- } catch (e) {
424
- return false;
425
- }
426
- }, "localExecutableSync");
427
- var commandExistsUnix = /* @__PURE__ */ __name(function(commandName, cleanedCommandName, callback) {
428
- fileNotExists(commandName, function(isFile) {
429
- if (!isFile) {
430
- var child = exec(
431
- "command -v " + cleanedCommandName + " 2>/dev/null && { echo >&1 " + cleanedCommandName + "; exit 0; }",
432
- function(error, stdout, stderr) {
433
- callback(null, !!stdout);
434
- }
435
- );
436
- return;
437
- }
438
- localExecutable(commandName, callback);
439
- });
440
- }, "commandExistsUnix");
441
- var commandExistsWindows = /* @__PURE__ */ __name(function(commandName, cleanedCommandName, callback) {
442
- if (!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(commandName)) {
443
- callback(null, false);
444
- return;
445
- }
446
- var child = exec(
447
- "where " + cleanedCommandName,
448
- function(error) {
449
- if (error !== null) {
450
- callback(null, false);
451
- } else {
452
- callback(null, true);
453
- }
454
- }
455
- );
456
- }, "commandExistsWindows");
457
- var commandExistsUnixSync = /* @__PURE__ */ __name(function(commandName, cleanedCommandName) {
458
- if (fileNotExistsSync(commandName)) {
459
- try {
460
- var stdout = execSync(
461
- "command -v " + cleanedCommandName + " 2>/dev/null && { echo >&1 " + cleanedCommandName + "; exit 0; }"
462
- );
463
- return !!stdout;
464
- } catch (error) {
465
- return false;
466
- }
467
- }
468
- return localExecutableSync(commandName);
469
- }, "commandExistsUnixSync");
470
- var commandExistsWindowsSync = /* @__PURE__ */ __name(function(commandName, cleanedCommandName, callback) {
471
- if (!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(commandName)) {
472
- return false;
473
- }
474
- try {
475
- var stdout = execSync("where " + cleanedCommandName, { stdio: [] });
476
- return !!stdout;
477
- } catch (error) {
478
- return false;
479
- }
480
- }, "commandExistsWindowsSync");
481
- var cleanInput = /* @__PURE__ */ __name(function(s) {
482
- if (/[^A-Za-z0-9_\/:=-]/.test(s)) {
483
- s = "'" + s.replace(/'/g, "'\\''") + "'";
484
- s = s.replace(/^(?:'')+/g, "").replace(/\\'''/g, "\\'");
485
- }
486
- return s;
487
- }, "cleanInput");
488
- if (isUsingWindows) {
489
- cleanInput = /* @__PURE__ */ __name(function(s) {
490
- var isPathName = /[\\]/.test(s);
491
- if (isPathName) {
492
- var dirname42 = '"' + path6.dirname(s) + '"';
493
- var basename12 = '"' + path6.basename(s) + '"';
494
- return dirname42 + ":" + basename12;
495
- }
496
- return '"' + s + '"';
497
- }, "cleanInput");
498
- }
499
- module.exports = /* @__PURE__ */ __name(function commandExists2(commandName, callback) {
500
- var cleanedCommandName = cleanInput(commandName);
501
- if (!callback && typeof Promise !== "undefined") {
502
- return new Promise(function(resolve43, reject) {
503
- commandExists2(commandName, function(error, output) {
504
- if (output) {
505
- resolve43(commandName);
506
- } else {
507
- reject(error);
508
- }
509
- });
510
- });
511
- }
512
- if (isUsingWindows) {
513
- commandExistsWindows(commandName, cleanedCommandName, callback);
514
- } else {
515
- commandExistsUnix(commandName, cleanedCommandName, callback);
516
- }
517
- }, "commandExists");
518
- module.exports.sync = function(commandName) {
519
- var cleanedCommandName = cleanInput(commandName);
520
- if (isUsingWindows) {
521
- return commandExistsWindowsSync(commandName, cleanedCommandName);
522
- } else {
523
- return commandExistsUnixSync(commandName, cleanedCommandName);
524
- }
525
- };
526
- }
527
- });
528
-
529
- // node_modules/command-exists/index.js
530
- var require_command_exists2 = __commonJS({
531
- "node_modules/command-exists/index.js"(exports, module) {
532
- init_esbuild_shims();
533
- module.exports = require_command_exists();
534
- }
535
- });
536
-
537
382
  // node_modules/punycode.js/punycode.js
538
383
  var require_punycode = __commonJS({
539
384
  "node_modules/punycode.js/punycode.js"(exports, module) {
@@ -1016,132 +861,6 @@ function normalizeDisabledToolList(raw) {
1016
861
  }
1017
862
  __name(normalizeDisabledToolList, "normalizeDisabledToolList");
1018
863
 
1019
- // packages/cli/src/config/sandboxConfig.ts
1020
- init_esbuild_shims();
1021
- var import_command_exists = __toESM(require_command_exists2(), 1);
1022
- import { spawnSync } from "node:child_process";
1023
- import * as os from "node:os";
1024
- var VALID_SANDBOX_COMMANDS = [
1025
- "docker",
1026
- "podman",
1027
- "sandbox-exec"
1028
- ];
1029
- function isSandboxCommand(value) {
1030
- return VALID_SANDBOX_COMMANDS.includes(value);
1031
- }
1032
- __name(isSandboxCommand, "isSandboxCommand");
1033
- var SANDBOX_PROBE_TIMEOUT_MS = 5e3;
1034
- var probeCache = /* @__PURE__ */ new Map();
1035
- function probeSandboxCommand(command) {
1036
- if (command === "sandbox-exec") {
1037
- return void 0;
1038
- }
1039
- if (probeCache.has(command)) {
1040
- return probeCache.get(command);
1041
- }
1042
- const failure = runSandboxProbe(command);
1043
- probeCache.set(command, failure);
1044
- return failure;
1045
- }
1046
- __name(probeSandboxCommand, "probeSandboxCommand");
1047
- function runSandboxProbe(command) {
1048
- try {
1049
- const result = spawnSync(command, ["version"], {
1050
- encoding: "utf8",
1051
- stdio: "pipe",
1052
- timeout: SANDBOX_PROBE_TIMEOUT_MS
1053
- });
1054
- if (result.error) {
1055
- return result.error.message;
1056
- }
1057
- if (result.status === 0) {
1058
- return void 0;
1059
- }
1060
- const output = `${result.stderr ?? ""}
1061
- ${result.stdout ?? ""}`;
1062
- const firstLine = output.split("\n").map((line) => line.trim()).find((line) => line.length > 0);
1063
- const stripped = firstLine ? stripAnsiAndControl(firstLine).trim() : "";
1064
- return stripped || `'${command} version' exited with ${result.status}`;
1065
- } catch (error) {
1066
- return error instanceof Error ? error.message : String(error);
1067
- }
1068
- }
1069
- __name(runSandboxProbe, "runSandboxProbe");
1070
- function getSandboxCommand(sandbox) {
1071
- if (process.env["SANDBOX"]) {
1072
- return "";
1073
- }
1074
- const environmentConfiguredSandbox = process.env["QWEN_SANDBOX"]?.toLowerCase().trim() ?? "";
1075
- sandbox = environmentConfiguredSandbox?.length > 0 ? environmentConfiguredSandbox : sandbox;
1076
- if (sandbox === "1" || sandbox === "true") sandbox = true;
1077
- else if (sandbox === "0" || sandbox === "false" || !sandbox) sandbox = false;
1078
- if (sandbox === false) {
1079
- return "";
1080
- }
1081
- const sandboxSource = environmentConfiguredSandbox.length > 0 ? " (from QWEN_SANDBOX)" : "";
1082
- if (typeof sandbox === "string" && sandbox) {
1083
- if (!isSandboxCommand(sandbox)) {
1084
- throw new FatalSandboxError(
1085
- `Invalid sandbox command '${sandbox}'. Must be one of ${VALID_SANDBOX_COMMANDS.join(
1086
- ", "
1087
- )}`
1088
- );
1089
- }
1090
- if (import_command_exists.default.sync(sandbox)) {
1091
- const failure = probeSandboxCommand(sandbox);
1092
- if (failure) {
1093
- throw new FatalSandboxError(
1094
- `Sandbox command '${sandbox}'${sandboxSource} is installed but cannot run: ${failure}`
1095
- );
1096
- }
1097
- return sandbox;
1098
- }
1099
- throw new FatalSandboxError(
1100
- `Missing sandbox command '${sandbox}'${sandboxSource}`
1101
- );
1102
- }
1103
- const candidates = [];
1104
- if (os.platform() === "darwin" && import_command_exists.default.sync("sandbox-exec")) {
1105
- candidates.push("sandbox-exec");
1106
- }
1107
- if (sandbox === true) {
1108
- candidates.push("docker", "podman");
1109
- }
1110
- let firstFailure;
1111
- for (const candidate of candidates) {
1112
- if (!import_command_exists.default.sync(candidate)) {
1113
- continue;
1114
- }
1115
- const failure = probeSandboxCommand(candidate);
1116
- if (!failure) {
1117
- return candidate;
1118
- }
1119
- firstFailure ??= { command: candidate, detail: failure };
1120
- }
1121
- if (sandbox === true) {
1122
- const enabledLabel = sandboxSource ? "QWEN_SANDBOX is true" : "Sandbox is enabled";
1123
- const specifyHint = sandboxSource ? "specify command in QWEN_SANDBOX" : "specify command via --sandbox or QWEN_SANDBOX";
1124
- if (firstFailure) {
1125
- throw new FatalSandboxError(
1126
- `${enabledLabel} and '${firstFailure.command}' is installed but cannot run: ${firstFailure.detail}; start it, try another installed runtime, or ${specifyHint}`
1127
- );
1128
- }
1129
- throw new FatalSandboxError(
1130
- `${enabledLabel} but failed to determine command for sandbox; install docker or podman or ${specifyHint}`
1131
- );
1132
- }
1133
- return "";
1134
- }
1135
- __name(getSandboxCommand, "getSandboxCommand");
1136
- async function loadSandboxConfig(settings, argv) {
1137
- const sandboxOption = argv.sandbox ?? settings.tools?.sandbox;
1138
- const command = getSandboxCommand(sandboxOption);
1139
- const packageJson = await getPackageJson();
1140
- const image2 = argv.sandboxImage ?? process.env["QWEN_SANDBOX_IMAGE"] ?? settings.tools?.sandboxImage ?? packageJson?.config?.sandboxImageUri;
1141
- return command && image2 ? { command, image: image2 } : void 0;
1142
- }
1143
- __name(loadSandboxConfig, "loadSandboxConfig");
1144
-
1145
864
  // packages/cli/src/utils/events.ts
1146
865
  init_esbuild_shims();
1147
866
  import { EventEmitter } from "node:events";
@@ -2821,12 +2540,26 @@ var hooksCommand = {
2821
2540
  }, "handler")
2822
2541
  };
2823
2542
 
2543
+ // packages/cli/src/config/hook-settings.ts
2544
+ init_esbuild_shims();
2545
+ function resolveHookSettingsForConfig(mergedHooks, separated, hooksDisabled) {
2546
+ if (hooksDisabled) {
2547
+ return { userHooks: void 0, projectHooks: void 0, hooks: void 0 };
2548
+ }
2549
+ return {
2550
+ userHooks: separated?.userHooks ?? mergedHooks,
2551
+ projectHooks: separated?.projectHooks,
2552
+ hooks: mergedHooks
2553
+ };
2554
+ }
2555
+ __name(resolveHookSettingsForConfig, "resolveHookSettingsForConfig");
2556
+
2824
2557
  // node_modules/yargs/helpers/helpers.mjs
2825
2558
  init_esbuild_shims();
2826
2559
 
2827
2560
  // packages/cli/src/config/config.ts
2828
2561
  var import_strip_json_comments = __toESM(require_strip_json_comments(), 1);
2829
- import * as fs3 from "node:fs";
2562
+ import * as fs4 from "node:fs";
2830
2563
  import * as path5 from "node:path";
2831
2564
  import { homedir as homedir2 } from "node:os";
2832
2565
  import { randomUUID as randomUUID4 } from "node:crypto";
@@ -3722,7 +3455,7 @@ var stopCommand = {
3722
3455
  if (argv["daemon-url"]) {
3723
3456
  const token = argv.token ?? process.env[QWEN_SERVER_TOKEN_ENV] ?? process.env[QWEN_DAEMON_TOKEN_ENV];
3724
3457
  try {
3725
- const sdk = await import("./daemon-NJB4PWZ7.js");
3458
+ const sdk = await import("./daemon-INCM4VBX.js");
3726
3459
  const client = new sdk.DaemonClient({
3727
3460
  baseUrl: argv["daemon-url"],
3728
3461
  ...token ? { token } : {}
@@ -3917,7 +3650,7 @@ var statusCommand = {
3917
3650
  if (argv["daemon-url"]) {
3918
3651
  const token = argv.token ?? process.env[QWEN_SERVER_TOKEN_ENV] ?? process.env[QWEN_DAEMON_TOKEN_ENV];
3919
3652
  try {
3920
- const sdk = await import("./daemon-NJB4PWZ7.js");
3653
+ const sdk = await import("./daemon-INCM4VBX.js");
3921
3654
  const client = new sdk.DaemonClient({
3922
3655
  baseUrl: argv["daemon-url"],
3923
3656
  ...token ? { token } : {}
@@ -4028,7 +3761,7 @@ var reloadCommand = {
4028
3761
  const token = resolveToken(argv.token);
4029
3762
  let sdk;
4030
3763
  try {
4031
- sdk = await import("./daemon-NJB4PWZ7.js");
3764
+ sdk = await import("./daemon-INCM4VBX.js");
4032
3765
  } catch (err) {
4033
3766
  writeStderrLine(
4034
3767
  `[Channel] Failed to load daemon SDK: ${safeChannelCommandErrorMessage(err)}`
@@ -4108,7 +3841,7 @@ var setCommand2 = {
4108
3841
  const selection = names[0] === "all" ? { mode: "all" } : { mode: "names", names };
4109
3842
  let sdk;
4110
3843
  try {
4111
- sdk = await import("./daemon-NJB4PWZ7.js");
3844
+ sdk = await import("./daemon-INCM4VBX.js");
4112
3845
  } catch (error) {
4113
3846
  writeStderrLine(
4114
3847
  `[Channel] Failed to load daemon SDK: ${safeChannelCommandErrorMessage(error)}`
@@ -4266,7 +3999,7 @@ function createDaemonChannelBridgeFacade(bridge, opts) {
4266
3999
  }
4267
4000
  __name(createDaemonChannelBridgeFacade, "createDaemonChannelBridgeFacade");
4268
4001
  async function loadDaemonSdk() {
4269
- return await import("./daemon-NJB4PWZ7.js");
4002
+ return await import("./daemon-INCM4VBX.js");
4270
4003
  }
4271
4004
  __name(loadDaemonSdk, "loadDaemonSdk");
4272
4005
  function selectedChannelNames(channelsConfig, selection) {
@@ -6670,11 +6403,11 @@ __name(ensureAuthenticated, "ensureAuthenticated");
6670
6403
 
6671
6404
  // packages/cli/src/commands/review/lib/git.ts
6672
6405
  init_esbuild_shims();
6673
- import { execFileSync as execFileSync3, spawnSync as spawnSync3 } from "node:child_process";
6406
+ import { execFileSync as execFileSync3, spawnSync as spawnSync2 } from "node:child_process";
6674
6407
 
6675
6408
  // packages/cli/src/commands/review/lib/worktree.ts
6676
6409
  init_esbuild_shims();
6677
- import { spawnSync as spawnSync2 } from "node:child_process";
6410
+ import { spawnSync } from "node:child_process";
6678
6411
  import {
6679
6412
  accessSync,
6680
6413
  constants,
@@ -7003,7 +6736,7 @@ function resolvedCommonDir(cwd) {
7003
6736
  }
7004
6737
  __name(resolvedCommonDir, "resolvedCommonDir");
7005
6738
  function revParse(cwd, ...flags) {
7006
- const resolved = spawnSync2(
6739
+ const resolved = spawnSync(
7007
6740
  "git",
7008
6741
  [
7009
6742
  "-c",
@@ -7225,7 +6958,7 @@ function filterCommandsIn(commonDir, gitDir) {
7225
6958
  const dangling = /* @__PURE__ */ new Set();
7226
6959
  const visited = /* @__PURE__ */ new Set();
7227
6960
  const read = /* @__PURE__ */ __name((file) => {
7228
- const r = spawnSync2(
6961
+ const r = spawnSync(
7229
6962
  "git",
7230
6963
  ["config", "--file", file, "-z", "--get-regexp", SCREEN_KEYS],
7231
6964
  {
@@ -7361,7 +7094,7 @@ __name(filterBlankEnv, "filterBlankEnv");
7361
7094
  var UNRESOLVED_REPO = "the repository's git directories could not be resolved (git rev-parse failed) \u2014 not screened";
7362
7095
  function screenForTree(worktree) {
7363
7096
  const discover = /* @__PURE__ */ __name((flag) => {
7364
- const r = spawnSync2("git", ["rev-parse", "--path-format=absolute", flag], {
7097
+ const r = spawnSync("git", ["rev-parse", "--path-format=absolute", flag], {
7365
7098
  cwd: worktree,
7366
7099
  encoding: "utf8",
7367
7100
  env: sanitizedGitEnv()
@@ -7398,18 +7131,18 @@ function discardWorktree(cwd, tree) {
7398
7131
  const ownAdminDir = adminDirOf(tree);
7399
7132
  let sweep;
7400
7133
  if (!symlink) {
7401
- sweep = spawnSync2("git", ["worktree", "remove", "--force", tree], {
7134
+ sweep = spawnSync("git", ["worktree", "remove", "--force", tree], {
7402
7135
  cwd,
7403
7136
  encoding: "utf8",
7404
7137
  env: sanitizedGitEnv()
7405
7138
  });
7406
7139
  if (sweep.status !== 0) {
7407
- spawnSync2("git", ["worktree", "unlock", tree], {
7140
+ spawnSync("git", ["worktree", "unlock", tree], {
7408
7141
  cwd,
7409
7142
  encoding: "utf8",
7410
7143
  env: sanitizedGitEnv()
7411
7144
  });
7412
- sweep = spawnSync2(
7145
+ sweep = spawnSync(
7413
7146
  "git",
7414
7147
  ["worktree", "remove", "--force", "--force", tree],
7415
7148
  { cwd, encoding: "utf8", env: sanitizedGitEnv() }
@@ -7432,7 +7165,7 @@ function dropWorktreeRegistration(cwd, tree, adminDir) {
7432
7165
  }
7433
7166
  return;
7434
7167
  }
7435
- const common = spawnSync2(
7168
+ const common = spawnSync(
7436
7169
  "git",
7437
7170
  ["rev-parse", "--path-format=absolute", "--git-common-dir"],
7438
7171
  { cwd, encoding: "utf8", env: sanitizedGitEnv() }
@@ -7516,7 +7249,7 @@ function inPipelineFootprint(rec) {
7516
7249
  }
7517
7250
  __name(inPipelineFootprint, "inPipelineFootprint");
7518
7251
  function ignoreSourcesOf(cwd, paths, anchor = []) {
7519
- const r = spawnSync2(
7252
+ const r = spawnSync(
7520
7253
  "git",
7521
7254
  [
7522
7255
  ...anchor,
@@ -7557,7 +7290,7 @@ function trackedIgnoreSources(cwd, sources, anchor = []) {
7557
7290
  (s) => s.length > 0 && !isAbsolute3(s) && !s.split("/").some((p) => p === "..")
7558
7291
  );
7559
7292
  if (inside.length === 0) return /* @__PURE__ */ new Set();
7560
- const r = spawnSync2("git", [...anchor, "ls-files", "-z", "--", ...inside], {
7293
+ const r = spawnSync("git", [...anchor, "ls-files", "-z", "--", ...inside], {
7561
7294
  cwd,
7562
7295
  encoding: "utf8",
7563
7296
  maxBuffer: 64 * 1024 * 1024,
@@ -7607,7 +7340,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
7607
7340
  }
7608
7341
  }
7609
7342
  const discover = /* @__PURE__ */ __name((flag) => {
7610
- const r2 = spawnSync2("git", ["rev-parse", "--path-format=absolute", flag], {
7343
+ const r2 = spawnSync("git", ["rev-parse", "--path-format=absolute", flag], {
7611
7344
  cwd,
7612
7345
  encoding: "utf8",
7613
7346
  env: sanitizedGitEnv()
@@ -7672,7 +7405,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
7672
7405
  `--work-tree=${realpathSync3(toplevel)}`
7673
7406
  ];
7674
7407
  if (expectedHeadSha !== void 0) {
7675
- const head = spawnSync2("git", [...anchor, "rev-parse", "HEAD"], {
7408
+ const head = spawnSync("git", [...anchor, "rev-parse", "HEAD"], {
7676
7409
  cwd,
7677
7410
  encoding: "utf8",
7678
7411
  env: sanitizedGitEnv()
@@ -7707,7 +7440,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
7707
7440
  unmeasured: "the path is not a git worktree (repository discovery walks up into the enclosing checkout)"
7708
7441
  };
7709
7442
  }
7710
- const r = spawnSync2(
7443
+ const r = spawnSync(
7711
7444
  "git",
7712
7445
  [
7713
7446
  ...anchor,
@@ -7756,7 +7489,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
7756
7489
  paths.push(records[++i]);
7757
7490
  }
7758
7491
  }
7759
- const others = spawnSync2(
7492
+ const others = spawnSync(
7760
7493
  "git",
7761
7494
  [...anchor, "-c", "core.fsmonitor=", "ls-files", "--others", "-z"],
7762
7495
  {
@@ -7805,7 +7538,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
7805
7538
  paths.push(rec);
7806
7539
  }
7807
7540
  }
7808
- const stage = spawnSync2(
7541
+ const stage = spawnSync(
7809
7542
  "git",
7810
7543
  [...anchor, "-c", "core.fsmonitor=", "ls-files", "-s", "-z"],
7811
7544
  {
@@ -7834,7 +7567,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
7834
7567
  unmeasured: "git status cannot see inside the committed submodule path(s) " + blind.join(", ")
7835
7568
  };
7836
7569
  }
7837
- const bits = spawnSync2(
7570
+ const bits = spawnSync(
7838
7571
  "git",
7839
7572
  [...anchor, "-c", "core.fsmonitor=", "ls-files", "-v", "-z"],
7840
7573
  {
@@ -8227,7 +7960,7 @@ __name(gitOpts, "gitOpts");
8227
7960
  var trustedLaunchDir = null;
8228
7961
  function kernelCwd() {
8229
7962
  try {
8230
- const r = spawnSync3("/bin/pwd", ["-P"], {
7963
+ const r = spawnSync2("/bin/pwd", ["-P"], {
8231
7964
  encoding: "utf8",
8232
7965
  timeout: 5e3,
8233
7966
  env: sanitizedGitEnv()
@@ -16024,7 +15757,7 @@ __name(repositoryContextOf, "repositoryContextOf");
16024
15757
 
16025
15758
  // packages/cli/src/commands/review/script-lint.ts
16026
15759
  init_esbuild_shims();
16027
- import { spawnSync as spawnSync4 } from "node:child_process";
15760
+ import { spawnSync as spawnSync3 } from "node:child_process";
16028
15761
  import { createHash as createHash4 } from "node:crypto";
16029
15762
  import {
16030
15763
  readFileSync as readFileSync10,
@@ -16168,7 +15901,7 @@ function runTool(tool, absPath) {
16168
15901
  };
16169
15902
  }
16170
15903
  const { argv, env, timeoutMs } = buildToolInvocation(tool, absPath);
16171
- const r = spawnSync4(tool, argv, {
15904
+ const r = spawnSync3(tool, argv, {
16172
15905
  encoding: "utf8",
16173
15906
  maxBuffer: 32 * 1024 * 1024,
16174
15907
  timeout: timeoutMs,
@@ -26736,13 +26469,13 @@ import { writeFileSync as writeFileSync11 } from "node:fs";
26736
26469
 
26737
26470
  // packages/cli/src/commands/review/build-test.ts
26738
26471
  init_esbuild_shims();
26739
- import { spawnSync as spawnSync6 } from "node:child_process";
26472
+ import { spawnSync as spawnSync5 } from "node:child_process";
26740
26473
  import { existsSync as existsSync12, readFileSync as readFileSync22, statSync as statSync14, writeFileSync as writeFileSync10 } from "node:fs";
26741
26474
  import { join as join21, resolve as resolve14 } from "node:path";
26742
26475
 
26743
26476
  // packages/cli/src/commands/review/lib/sandboxed-exec.ts
26744
26477
  init_esbuild_shims();
26745
- import { spawnSync as spawnSync5 } from "node:child_process";
26478
+ import { spawnSync as spawnSync4 } from "node:child_process";
26746
26479
  import { realpathSync as realpathSync9 } from "node:fs";
26747
26480
  import { basename as basename8, dirname as dirname13, join as join19, resolve as resolve13 } from "node:path";
26748
26481
  import { fileURLToPath } from "node:url";
@@ -26774,7 +26507,7 @@ function firstAnsweringRuntime(answers) {
26774
26507
  }
26775
26508
  __name(firstAnsweringRuntime, "firstAnsweringRuntime");
26776
26509
  function daemonAnswers(runtime) {
26777
- const r = spawnSync5(runtime, ["info"], {
26510
+ const r = spawnSync4(runtime, ["info"], {
26778
26511
  stdio: "ignore",
26779
26512
  timeout: 3e4,
26780
26513
  env: runtimeClientEnv()
@@ -26788,7 +26521,7 @@ function runtimeIsRootless(runtime, read = cachedInfoDocument) {
26788
26521
  __name(runtimeIsRootless, "runtimeIsRootless");
26789
26522
  function readInfoDocument(runtime) {
26790
26523
  try {
26791
- const r = spawnSync5(runtime, ["info", "--format", "{{json .}}"], {
26524
+ const r = spawnSync4(runtime, ["info", "--format", "{{json .}}"], {
26792
26525
  encoding: "utf8",
26793
26526
  timeout: 3e4,
26794
26527
  maxBuffer: 8 * 1024 * 1024,
@@ -26902,7 +26635,7 @@ function boxedRunLeftContainer(status) {
26902
26635
  return status === null;
26903
26636
  }
26904
26637
  __name(boxedRunLeftContainer, "boxedRunLeftContainer");
26905
- function killContainer(runtime, name, spawn2 = spawnSync5) {
26638
+ function killContainer(runtime, name, spawn2 = spawnSync4) {
26906
26639
  try {
26907
26640
  spawn2(runtime, ["rm", "-f", name], {
26908
26641
  stdio: "ignore",
@@ -27726,7 +27459,7 @@ function run(command, cwd, timeoutMs, kind = "test") {
27726
27459
  const started = Date.now();
27727
27460
  const deadlineMs = Math.max(1, Math.round(timeoutMs));
27728
27461
  const boxed = containerised(command, cwd, kind);
27729
- const r = boxed ? spawnSync6(boxed.file, boxed.args, {
27462
+ const r = boxed ? spawnSync5(boxed.file, boxed.args, {
27730
27463
  cwd,
27731
27464
  encoding: "utf8",
27732
27465
  timeout: deadlineMs,
@@ -27747,7 +27480,7 @@ function run(command, cwd, timeoutMs, kind = "test") {
27747
27480
  // PATH and nothing from the review, minus the daemon-selecting
27748
27481
  // variables a repository could have shipped in its own `.env`.
27749
27482
  env: runtimeClientEnv()
27750
- }) : spawnSync6(command, {
27483
+ }) : spawnSync5(command, {
27751
27484
  cwd,
27752
27485
  shell: true,
27753
27486
  encoding: "utf8",
@@ -28260,7 +27993,7 @@ function sha256OfFile(path6) {
28260
27993
  }
28261
27994
  }
28262
27995
  __name(sha256OfFile, "sha256OfFile");
28263
- function tryResume(args, wt, platform2) {
27996
+ function tryResume(args, wt, platform) {
28264
27997
  const { pr_number: prNumber, owner_repo: ownerRepo, out } = args;
28265
27998
  let prev = null;
28266
27999
  try {
@@ -28270,7 +28003,7 @@ function tryResume(args, wt, platform2) {
28270
28003
  }
28271
28004
  let liveHeadSha = null;
28272
28005
  try {
28273
- const oid = platform2.getFetchMeta(Number(prNumber), ownerRepo).headRefOid;
28006
+ const oid = platform.getFetchMeta(Number(prNumber), ownerRepo).headRefOid;
28274
28007
  liveHeadSha = typeof oid === "string" && oid !== "" ? oid : null;
28275
28008
  } catch {
28276
28009
  liveHeadSha = null;
@@ -28414,12 +28147,12 @@ async function runFetchPr(args) {
28414
28147
  } catch {
28415
28148
  remoteUrl = void 0;
28416
28149
  }
28417
- const platform2 = getPlatformReader({ remoteUrl, host: args.host?.trim() });
28418
- platform2.ensureAuthenticated();
28150
+ const platform = getPlatformReader({ remoteUrl, host: args.host?.trim() });
28151
+ platform.ensureAuthenticated();
28419
28152
  let resumeRefusal = null;
28420
28153
  let priorFetchedSha = null;
28421
28154
  if (args.resume) {
28422
- const outcome = tryResume(args, wt, platform2);
28155
+ const outcome = tryResume(args, wt, platform);
28423
28156
  if (outcome.resumed) return;
28424
28157
  try {
28425
28158
  validateDeadlineFlag(process.env, args.deadline);
@@ -28442,7 +28175,7 @@ async function runFetchPr(args) {
28442
28175
  git(
28443
28176
  "fetch",
28444
28177
  remote,
28445
- `${platform2.fetchHeadRefSpec(Number(prNumber))}:${ref}`
28178
+ `${platform.fetchHeadRefSpec(Number(prNumber))}:${ref}`
28446
28179
  );
28447
28180
  } catch (err) {
28448
28181
  throw new Error(
@@ -28452,7 +28185,7 @@ async function runFetchPr(args) {
28452
28185
  const fetchedSha = git("rev-parse", `refs/heads/${ref}`);
28453
28186
  let meta;
28454
28187
  try {
28455
- const fetchMeta = platform2.getFetchMeta(Number(prNumber), ownerRepo);
28188
+ const fetchMeta = platform.getFetchMeta(Number(prNumber), ownerRepo);
28456
28189
  meta = {
28457
28190
  headRefName: fetchMeta.headRefName ?? prNumber,
28458
28191
  headRefOid: fetchMeta.headRefOid,
@@ -28476,7 +28209,7 @@ async function runFetchPr(args) {
28476
28209
  `Failed to fetch PR #${prNumber} metadata: ${err.message}`
28477
28210
  );
28478
28211
  }
28479
- const needsLocalStats = platform2.kind !== "github";
28212
+ const needsLocalStats = platform.kind !== "github";
28480
28213
  const freshUntrusted = untrustedRepositoryFrom(process.cwd());
28481
28214
  if (freshUntrusted !== null) {
28482
28215
  throw new Error(
@@ -28618,7 +28351,7 @@ async function runFetchPr(args) {
28618
28351
  // update also rebased) — rule it without ancestry; the two heads'
28619
28352
  // diff is the update's delta. A force-pushed GitHub history keeps
28620
28353
  // the tests: there they are the detection.
28621
- { noAncestry: platform2.kind === "aone" }
28354
+ { noAncestry: platform.kind === "aone" }
28622
28355
  );
28623
28356
  } catch (err) {
28624
28357
  if (!(err instanceof GitUnavailable)) throw err;
@@ -31949,7 +31682,7 @@ function renderLedgerSection(ledger, running, author = null, merged = false, per
31949
31682
  ].join("\n");
31950
31683
  }
31951
31684
  __name(renderLedgerSection, "renderLedgerSection");
31952
- function buildMarkdown(prNumber, ownerRepo, meta, inline2, issue, reviews, prevLedger = null, me = "", prevLedgerAuthor = null, prevLedgerMerged = false, host, persistedSha = null, platform2 = "github", prevLedgerAnchorFromRound) {
31685
+ function buildMarkdown(prNumber, ownerRepo, meta, inline2, issue, reviews, prevLedger = null, me = "", prevLedgerAuthor = null, prevLedgerMerged = false, host, persistedSha = null, platform = "github", prevLedgerAnchorFromRound) {
31953
31686
  const {
31954
31687
  openRoots,
31955
31688
  openBlockerRoots,
@@ -31959,7 +31692,7 @@ function buildMarkdown(prNumber, ownerRepo, meta, inline2, issue, reviews, prevL
31959
31692
  blockerLeads
31960
31693
  } = classifyInlineThreads(inline2, me);
31961
31694
  const allBlockerRoots = [...repliedBlockerRoots, ...openBlockerRoots];
31962
- const ctx = { ownerRepo, prNumber, host, platform: platform2 };
31695
+ const ctx = { ownerRepo, prNumber, host, platform };
31963
31696
  const blockerIssue = issue.filter((c) => isIssueBlocker(c.body));
31964
31697
  const settledIssue = issue.filter((c) => !isIssueBlocker(c.body));
31965
31698
  const parts = [];
@@ -32110,9 +31843,9 @@ async function runPrContext(args) {
32110
31843
  );
32111
31844
  }
32112
31845
  rmSync10(out, { force: true });
32113
- const platform2 = getPlatformReader({ host: args.host });
32114
- platform2.ensureAuthenticated();
32115
- const ctx = platform2.getReviewContext(prNum, ownerRepo);
31846
+ const platform = getPlatformReader({ host: args.host });
31847
+ platform.ensureAuthenticated();
31848
+ const ctx = platform.getReviewContext(prNum, ownerRepo);
32116
31849
  const meta = {
32117
31850
  title: ctx.title,
32118
31851
  body: ctx.body,
@@ -32154,7 +31887,7 @@ async function runPrContext(args) {
32154
31887
  if (carriers.length || inline2.length) {
32155
31888
  let lookupError = null;
32156
31889
  try {
32157
- const login = platform2.getCurrentUser();
31890
+ const login = platform.getCurrentUser();
32158
31891
  identityKnown = login !== "";
32159
31892
  me = login;
32160
31893
  } catch (err) {
@@ -32208,7 +31941,7 @@ async function runPrContext(args) {
32208
31941
  );
32209
31942
  const resolvedHost = resolveGhHost(args.host);
32210
31943
  const flagHost = args.host?.trim();
32211
- const bakeHost = platform2.kind === "aone" ? flagHost !== void 0 && flagHost !== "" && HOSTNAME_RE.test(flagHost) ? flagHost : void 0 : resolvedHost !== void 0 && HOSTNAME_RE.test(resolvedHost) ? resolvedHost : void 0;
31944
+ const bakeHost = platform.kind === "aone" ? flagHost !== void 0 && flagHost !== "" && HOSTNAME_RE.test(flagHost) ? flagHost : void 0 : resolvedHost !== void 0 && HOSTNAME_RE.test(resolvedHost) ? resolvedHost : void 0;
32212
31945
  const md = buildMarkdown(
32213
31946
  prNumber,
32214
31947
  ownerRepo,
@@ -32222,7 +31955,7 @@ async function runPrContext(args) {
32222
31955
  prevLedgerMerged,
32223
31956
  bakeHost,
32224
31957
  persistedSha,
32225
- platform2.kind,
31958
+ platform.kind,
32226
31959
  prevRecovered?.anchorFromRound
32227
31960
  );
32228
31961
  mkdirSync18(dirname18(out), { recursive: true });
@@ -36890,7 +36623,7 @@ var emitWorkflowCommand = {
36890
36623
 
36891
36624
  // packages/cli/src/commands/review/base-tree.ts
36892
36625
  init_esbuild_shims();
36893
- import { spawnSync as spawnSync7 } from "node:child_process";
36626
+ import { spawnSync as spawnSync6 } from "node:child_process";
36894
36627
  import {
36895
36628
  existsSync as existsSync15,
36896
36629
  mkdirSync as mkdirSync24,
@@ -36901,7 +36634,7 @@ import {
36901
36634
  } from "node:fs";
36902
36635
  import { dirname as dirname25, join as join27, resolve as resolve25 } from "node:path";
36903
36636
  function gitOut(cwd, ...args) {
36904
- const r = spawnSync7("git", args, {
36637
+ const r = spawnSync6("git", args, {
36905
36638
  cwd,
36906
36639
  encoding: "utf8",
36907
36640
  env: sanitizedGitEnv()
@@ -36914,7 +36647,7 @@ function gitOut(cwd, ...args) {
36914
36647
  }
36915
36648
  __name(gitOut, "gitOut");
36916
36649
  function git2(cwd, ...args) {
36917
- const r = spawnSync7("git", args, {
36650
+ const r = spawnSync6("git", args, {
36918
36651
  cwd,
36919
36652
  encoding: "utf8",
36920
36653
  env: sanitizedGitEnv()
@@ -37147,7 +36880,7 @@ var baseTreeCommand = {
37147
36880
 
37148
36881
  // packages/cli/src/commands/review/scratch-tree.ts
37149
36882
  init_esbuild_shims();
37150
- import { spawnSync as spawnSync8 } from "node:child_process";
36883
+ import { spawnSync as spawnSync7 } from "node:child_process";
37151
36884
  import {
37152
36885
  existsSync as existsSync16,
37153
36886
  lstatSync as lstatSync17,
@@ -37199,7 +36932,7 @@ function discardStandaloneTree(worktree, tree) {
37199
36932
  }
37200
36933
  __name(discardStandaloneTree, "discardStandaloneTree");
37201
36934
  function gitOut2(cwd, ...args) {
37202
- const r = spawnSync8("git", [...NO_HOOKS, ...args], {
36935
+ const r = spawnSync7("git", [...NO_HOOKS, ...args], {
37203
36936
  cwd,
37204
36937
  encoding: "utf8",
37205
36938
  maxBuffer: 64 * 1024 * 1024,
@@ -37653,7 +37386,7 @@ var testDeltaCommand = {
37653
37386
 
37654
37387
  // packages/cli/src/commands/review/drive.ts
37655
37388
  init_esbuild_shims();
37656
- import { spawnSync as spawnSync9 } from "node:child_process";
37389
+ import { spawnSync as spawnSync8 } from "node:child_process";
37657
37390
  import {
37658
37391
  mkdirSync as mkdirSync27,
37659
37392
  writeFileSync as writeFileSync26,
@@ -37790,7 +37523,7 @@ function readCapped(path6, maxBytes) {
37790
37523
  }
37791
37524
  __name(readCapped, "readCapped");
37792
37525
  function spawnExec(cmd, args, input, timeoutMs = 3e4, killSignal) {
37793
- const r = spawnSync9(cmd, args, {
37526
+ const r = spawnSync8(cmd, args, {
37794
37527
  encoding: "utf8",
37795
37528
  input,
37796
37529
  timeout: timeoutMs,
@@ -39417,7 +39150,7 @@ var extractStepCommand = {
39417
39150
 
39418
39151
  // packages/cli/src/commands/review/revert-hunk.ts
39419
39152
  init_esbuild_shims();
39420
- import { spawnSync as spawnSync10 } from "node:child_process";
39153
+ import { spawnSync as spawnSync9 } from "node:child_process";
39421
39154
  import {
39422
39155
  accessSync as accessSync3,
39423
39156
  constants as constants5,
@@ -39576,7 +39309,7 @@ function parseHunkId(id) {
39576
39309
  }
39577
39310
  __name(parseHunkId, "parseHunkId");
39578
39311
  function gitApply(cwd, args) {
39579
- const r = spawnSync10("git", args, {
39312
+ const r = spawnSync9("git", args, {
39580
39313
  cwd,
39581
39314
  encoding: "utf8",
39582
39315
  env: sanitizedGitEnv(),
@@ -39591,7 +39324,7 @@ function gitApply(cwd, args) {
39591
39324
  }
39592
39325
  __name(gitApply, "gitApply");
39593
39326
  function gitTreeState(tree) {
39594
- const r = spawnSync10("git", ["rev-parse", "--show-toplevel"], {
39327
+ const r = spawnSync9("git", ["rev-parse", "--show-toplevel"], {
39595
39328
  cwd: tree,
39596
39329
  encoding: "utf8",
39597
39330
  env: sanitizedGitEnv(),
@@ -39661,7 +39394,7 @@ function p1TargetBytes(patch) {
39661
39394
  }
39662
39395
  __name(p1TargetBytes, "p1TargetBytes");
39663
39396
  function indexHasPath(tree, path6) {
39664
- const r = spawnSync10("git", ["ls-files", "-z"], {
39397
+ const r = spawnSync9("git", ["ls-files", "-z"], {
39665
39398
  cwd: tree,
39666
39399
  encoding: "buffer",
39667
39400
  env: sanitizedGitEnv(),
@@ -39859,7 +39592,7 @@ function runRevertHunk(args) {
39859
39592
  };
39860
39593
  }
39861
39594
  const targetPath = treePath(tree, targetBytes);
39862
- const attr = spawnSync10("git", ["check-attr", "-z", "--stdin", "eol"], {
39595
+ const attr = spawnSync9("git", ["check-attr", "-z", "--stdin", "eol"], {
39863
39596
  cwd: tree,
39864
39597
  encoding: "buffer",
39865
39598
  env: sanitizedGitEnv(),
@@ -41523,7 +41256,7 @@ var submitCommand = {
41523
41256
 
41524
41257
  // packages/cli/src/commands/review/test-efficacy.ts
41525
41258
  init_esbuild_shims();
41526
- import { spawnSync as spawnSync11 } from "node:child_process";
41259
+ import { spawnSync as spawnSync10 } from "node:child_process";
41527
41260
  import {
41528
41261
  mkdirSync as mkdirSync33,
41529
41262
  writeFileSync as writeFileSync31,
@@ -41552,7 +41285,7 @@ function planTestEfficacy(files, workspaceGlobs) {
41552
41285
  __name(planTestEfficacy, "planTestEfficacy");
41553
41286
  function committedSymlinkProbes(tree, probes) {
41554
41287
  if (probes.length === 0) return /* @__PURE__ */ new Set();
41555
- const r = spawnSync11(
41288
+ const r = spawnSync10(
41556
41289
  "git",
41557
41290
  [
41558
41291
  "-c",
@@ -42083,7 +41816,7 @@ function filterScreenRefusal(hits, rewrite) {
42083
41816
  }
42084
41817
  __name(filterScreenRefusal, "filterScreenRefusal");
42085
41818
  function git4(cwd, ...args) {
42086
- const r = spawnSync11("git", args, {
41819
+ const r = spawnSync10("git", args, {
42087
41820
  cwd,
42088
41821
  encoding: "utf8",
42089
41822
  env: sanitizedGitEnv()
@@ -42095,7 +41828,7 @@ function git4(cwd, ...args) {
42095
41828
  }
42096
41829
  __name(git4, "git");
42097
41830
  function gitOut3(cwd, ...args) {
42098
- const r = spawnSync11("git", args, {
41831
+ const r = spawnSync10("git", args, {
42099
41832
  cwd,
42100
41833
  encoding: "utf8",
42101
41834
  env: sanitizedGitEnv()
@@ -42128,7 +41861,7 @@ function findVitestBin(worktree, resolveModule = createRequire(
42128
41861
  }
42129
41862
  __name(findVitestBin, "findVitestBin");
42130
41863
  function gitCapture(cwd, ...args) {
42131
- const r = spawnSync11("git", args, {
41864
+ const r = spawnSync10("git", args, {
42132
41865
  cwd,
42133
41866
  encoding: "utf8",
42134
41867
  maxBuffer: 64 * 1024 * 1024,
@@ -42142,7 +41875,7 @@ function gitCapture(cwd, ...args) {
42142
41875
  }
42143
41876
  __name(gitCapture, "gitCapture");
42144
41877
  function existsAtRev(cwd, rev, path6) {
42145
- const r = spawnSync11("git", ["cat-file", "-e", `${rev}:${path6}`], {
41878
+ const r = spawnSync10("git", ["cat-file", "-e", `${rev}:${path6}`], {
42146
41879
  cwd,
42147
41880
  env: sanitizedGitEnv()
42148
41881
  });
@@ -42219,7 +41952,7 @@ function restoreProbeTreeTracked(probeTree) {
42219
41952
  if (!existsSync19(join32(probeTree, ".git"))) {
42220
41953
  return `${probeTree} carries no .git, so there is no commit to put it back to`;
42221
41954
  }
42222
- const top = spawnSync11(
41955
+ const top = spawnSync10(
42223
41956
  "git",
42224
41957
  [
42225
41958
  "rev-parse",
@@ -42277,7 +42010,7 @@ function restoreProbeTreeTracked(probeTree) {
42277
42010
  // planted config — goes.
42278
42011
  [...CHECKOUT_INERT, "clean", "-ffdx", "-e", "node_modules"]
42279
42012
  ]) {
42280
- const r = spawnSync11("git", args, {
42013
+ const r = spawnSync10("git", args, {
42281
42014
  cwd: probeTree,
42282
42015
  encoding: "utf8",
42283
42016
  env: sanitizedGitEnv()
@@ -42289,7 +42022,7 @@ function restoreProbeTreeTracked(probeTree) {
42289
42022
  `git ${args[CHECKOUT_INERT.length]} exited ${r.status}`;
42290
42023
  }
42291
42024
  }
42292
- const bits = spawnSync11(
42025
+ const bits = spawnSync10(
42293
42026
  "git",
42294
42027
  ["-c", "core.fsmonitor=", "ls-files", "-v", "-z"],
42295
42028
  {
@@ -42325,7 +42058,7 @@ function runProbeSuite(probeTree, probes, deadlineAt, now = Date.now, dependency
42325
42058
  findVitestBin(dependencyRoot)
42326
42059
  )} run --reporter=json ${probes.map(shellQuotePath).join(" ")}`;
42327
42060
  const boxed = probeContainer(suite, probeTree);
42328
- const r = boxed ? spawnSync11(boxed.file, boxed.args, {
42061
+ const r = boxed ? spawnSync10(boxed.file, boxed.args, {
42329
42062
  cwd: probeTree,
42330
42063
  encoding: "utf8",
42331
42064
  timeout,
@@ -42344,7 +42077,7 @@ function runProbeSuite(probeTree, probes, deadlineAt, now = Date.now, dependency
42344
42077
  // variables a repository could have shipped in its own `.env` — the
42345
42078
  // container's own environment is the allowlist in `containerEnv`.
42346
42079
  env: runtimeClientEnv()
42347
- }) : spawnSync11(
42080
+ }) : spawnSync10(
42348
42081
  process.execPath,
42349
42082
  [findVitestBin(dependencyRoot), "run", "--reporter=json", ...probes],
42350
42083
  {
@@ -42537,7 +42270,7 @@ function runOneHunkProbe(probeTree, hunk, probes, deadlineAt, now = Date.now, de
42537
42270
  )
42538
42271
  };
42539
42272
  }
42540
- const applied = spawnSync11("git", ["apply", "--reverse", "-"], {
42273
+ const applied = spawnSync10("git", ["apply", "--reverse", "-"], {
42541
42274
  cwd: probeTree,
42542
42275
  input: hunk.patch,
42543
42276
  encoding: "utf8",
@@ -43683,9 +43416,9 @@ function fetchPrBody(ownerRepo, prNumber) {
43683
43416
  }
43684
43417
  __name(fetchPrBody, "fetchPrBody");
43685
43418
  function platformBodyFetcher(host) {
43686
- const platform2 = getPlatformReader({ host });
43687
- if (platform2.kind !== "aone") return fetchPrBody;
43688
- platform2.ensureAuthenticated();
43419
+ const platform = getPlatformReader({ host });
43420
+ if (platform.kind !== "aone") return fetchPrBody;
43421
+ platform.ensureAuthenticated();
43689
43422
  return (ownerRepo, prNumber) => {
43690
43423
  const n = Number(prNumber);
43691
43424
  if (!/^\d+$/.test(prNumber) || !Number.isSafeInteger(n) || n <= 0) {
@@ -43693,7 +43426,7 @@ function platformBodyFetcher(host) {
43693
43426
  `expected a positive MR id, got ${JSON.stringify(prNumber)}`
43694
43427
  );
43695
43428
  }
43696
- return platform2.getFetchMeta(n, ownerRepo).body ?? "";
43429
+ return platform.getFetchMeta(n, ownerRepo).body ?? "";
43697
43430
  };
43698
43431
  }
43699
43432
  __name(platformBodyFetcher, "platformBodyFetcher");
@@ -45631,14 +45364,14 @@ function runMeta(args) {
45631
45364
  `expected owner/repo, got ${JSON.stringify(args.repo)}`
45632
45365
  );
45633
45366
  }
45634
- const platform2 = getPlatformReader({ host: args.host });
45367
+ const platform = getPlatformReader({ host: args.host });
45635
45368
  let host;
45636
45369
  let ownerRepo;
45637
45370
  if (args.repo !== void 0) {
45638
45371
  ownerRepo = args.repo;
45639
- if ((args.host === void 0 || args.host.trim() === "") && platform2.kind !== "github") {
45372
+ if ((args.host === void 0 || args.host.trim() === "") && platform.kind !== "github") {
45640
45373
  throw new TypeError(
45641
- `--repo on a ${platform2.kind} target needs --host \u2014 there is no default host off GitHub`
45374
+ `--repo on a ${platform.kind} target needs --host \u2014 there is no default host off GitHub`
45642
45375
  );
45643
45376
  }
45644
45377
  host = resolveGhHost(args.host) ?? "github.com";
@@ -45647,13 +45380,13 @@ function runMeta(args) {
45647
45380
  `cannot route at the ${args.host !== void 0 ? "--host flag" : "GH_HOST environment"} ${JSON.stringify(host)} \u2014 not a hostname the review subcommands accept`
45648
45381
  );
45649
45382
  }
45650
- platform2.ensureAuthenticated();
45383
+ platform.ensureAuthenticated();
45651
45384
  } else {
45652
- platform2.ensureAuthenticated();
45653
- const id = platform2.resolveRepo();
45385
+ platform.ensureAuthenticated();
45386
+ const id = platform.resolveRepo();
45654
45387
  ownerRepo = `${id.owner}/${id.repo}`;
45655
45388
  host = id.host;
45656
- const routed = (platform2.kind === "github" ? resolveGhHost(args.host) : (args.host ?? "").trim() || void 0) ?? id.host;
45389
+ const routed = (platform.kind === "github" ? resolveGhHost(args.host) : (args.host ?? "").trim() || void 0) ?? id.host;
45657
45390
  if (!HOSTNAME_RE.test(routed)) {
45658
45391
  throw new Error(
45659
45392
  `cannot route at the ${args.host !== void 0 ? "--host flag" : "discovered repo-URL host"} ${JSON.stringify(routed)} \u2014 not a hostname the review subcommands accept`
@@ -45661,9 +45394,9 @@ function runMeta(args) {
45661
45394
  }
45662
45395
  setGhHost(routed);
45663
45396
  }
45664
- const result = { platform: platform2.kind, host, ownerRepo };
45397
+ const result = { platform: platform.kind, host, ownerRepo };
45665
45398
  if (args.prNumber !== void 0) {
45666
- const meta = platform2.getPrMeta(args.prNumber, ownerRepo);
45399
+ const meta = platform.getPrMeta(args.prNumber, ownerRepo);
45667
45400
  result.number = meta.number;
45668
45401
  result.headSha = meta.headSha;
45669
45402
  result.webUrl = meta.webUrl;
@@ -45760,11 +45493,11 @@ function runIssueContext(args) {
45760
45493
  );
45761
45494
  }
45762
45495
  assertWritableOutPath(args.out);
45763
- const platform2 = getPlatformReader({ host: args.host });
45764
- platform2.ensureAuthenticated();
45496
+ const platform = getPlatformReader({ host: args.host });
45497
+ platform.ensureAuthenticated();
45765
45498
  const fetchOne = /* @__PURE__ */ __name((n, ownerRepo) => {
45766
45499
  try {
45767
- return { number: n, ownerRepo, issue: platform2.getIssue(n, ownerRepo) };
45500
+ return { number: n, ownerRepo, issue: platform.getIssue(n, ownerRepo) };
45768
45501
  } catch (err) {
45769
45502
  return { number: n, ownerRepo, error: err.message };
45770
45503
  }
@@ -45772,7 +45505,7 @@ function runIssueContext(args) {
45772
45505
  let refs;
45773
45506
  let discoveryError;
45774
45507
  try {
45775
- refs = platform2.getClosingIssues(args.prNumber, args.repo);
45508
+ refs = platform.getClosingIssues(args.prNumber, args.repo);
45776
45509
  } catch (err) {
45777
45510
  refs = [];
45778
45511
  discoveryError = err.message;
@@ -45925,9 +45658,9 @@ function runFetchDiff(args) {
45925
45658
  );
45926
45659
  }
45927
45660
  assertWritableOutPath(args.out);
45928
- const platform2 = getPlatformReader({ host: args.host });
45929
- platform2.ensureAuthenticated();
45930
- const diff = platform2.fetchDiff(args.prNumber, args.repo).replace(/\n+$/, "");
45661
+ const platform = getPlatformReader({ host: args.host });
45662
+ platform.ensureAuthenticated();
45663
+ const diff = platform.fetchDiff(args.prNumber, args.repo).replace(/\n+$/, "");
45931
45664
  const diffPath = resolve40(args.out);
45932
45665
  mkdirSync38(dirname40(diffPath), { recursive: true });
45933
45666
  writeFileSync35(diffPath, diff === "" ? "" : diff + "\n", "latin1");
@@ -46011,14 +45744,14 @@ function runCommentBody(args) {
46011
45744
  if (args.out !== void 0) {
46012
45745
  assertWritableOutPath(args.out);
46013
45746
  }
46014
- const platform2 = getPlatformReader({ host: args.host });
46015
- if (platform2.kind === "aone" && args.prNumber === void 0) {
45747
+ const platform = getPlatformReader({ host: args.host });
45748
+ if (platform.kind === "aone" && args.prNumber === void 0) {
46016
45749
  throw new TypeError(
46017
45750
  "aone comment bodies are addressed per-MR \u2014 pass `--pr <mr id>`"
46018
45751
  );
46019
45752
  }
46020
- platform2.ensureAuthenticated();
46021
- const body = platform2.getCommentBody(
45753
+ platform.ensureAuthenticated();
45754
+ const body = platform.getCommentBody(
46022
45755
  args.kind,
46023
45756
  args.id,
46024
45757
  args.repo,
@@ -46182,7 +45915,7 @@ async function handleAdd(argv) {
46182
45915
  );
46183
45916
  writeStdoutLine(` {"msgV":1,"type":"auth","token":"${token}"}`);
46184
45917
  writeStdoutLine(
46185
- "The target session must have agents.crossSessionMessaging enabled and be restarted after enabling it."
45918
+ "The target session must not have agents.crossSessionMessaging turned off (it is on by default), and must be restarted after changing that setting."
46186
45919
  );
46187
45920
  writeStdoutLine(
46188
45921
  'Messages it sends are delivered without per-message review, unless agents.crossSessionInbound is "hold" or "refuse".'
@@ -47399,10 +47132,10 @@ var updateCommand3 = {
47399
47132
  stdioHelpers,
47400
47133
  { updateEventEmitter }
47401
47134
  ] = await Promise.all([
47402
- import("./settings-TJNUFBGG.js"),
47403
- import("./updateCheck-CUKTRHID.js"),
47404
- import("./installationInfo-DYOI4I5U.js"),
47405
- import("./standalone-update-O5LYCCMB.js"),
47135
+ import("./settings-P4DHIIUP.js"),
47136
+ import("./updateCheck-PKSSORPO.js"),
47137
+ import("./installationInfo-2IJV5QKC.js"),
47138
+ import("./standalone-update-H5OJ7MM7.js"),
47406
47139
  import("./stdioHelpers-AY6XCDY2.js"),
47407
47140
  import("./updateEventEmitter-5MKC7BLQ.js")
47408
47141
  ]);
@@ -47490,6 +47223,292 @@ var updateCommand3 = {
47490
47223
  }, "handler")
47491
47224
  };
47492
47225
 
47226
+ // packages/cli/src/commands/sandbox.ts
47227
+ init_esbuild_shims();
47228
+ import fs3 from "node:fs";
47229
+ var sandboxCommand = {
47230
+ command: "sandbox [cmd...]",
47231
+ describe: "Inspect the sandbox backend, or run a command inside it",
47232
+ builder: /* @__PURE__ */ __name((yargs) => yargs.parserConfiguration({
47233
+ "populate--": true,
47234
+ "parse-positional-numbers": false
47235
+ }).positional("cmd", {
47236
+ describe: "Command to run inside the sandbox",
47237
+ type: "string",
47238
+ array: true
47239
+ }).option("verify", {
47240
+ type: "boolean",
47241
+ default: false,
47242
+ describe: "Run the confinement behavior battery and report pass/fail"
47243
+ }).option("sandbox", DEFAULT_COMMAND_OPTIONS.sandbox).option("sandbox-image", DEFAULT_COMMAND_OPTIONS["sandbox-image"]).example("$0 sandbox", "Report the resolved backend and writable roots").example("$0 sandbox --verify", "Prove the confinement actually holds").example("$0 sandbox -- sh -c 'ls /'", "Run one command confined").strict(), "builder"),
47244
+ handler: /* @__PURE__ */ __name(async (argv) => {
47245
+ const [
47246
+ { loadSettings: loadSettings2 },
47247
+ { loadSandboxConfig: loadSandboxConfig2 },
47248
+ sandboxModule,
47249
+ { writeStdoutLine: writeStdoutLine2, writeStderrLine: writeStderrLine2 },
47250
+ { spawnSync: spawnSync11 },
47251
+ { isBareMode: isBareMode2 },
47252
+ { isSafeModeEnv: isSafeModeEnv2 }
47253
+ ] = await Promise.all([
47254
+ import("./settings-P4DHIIUP.js"),
47255
+ import("./sandboxConfig-CY343YNJ.js"),
47256
+ import("./sandbox-UIXL423Z.js"),
47257
+ import("./stdioHelpers-AY6XCDY2.js"),
47258
+ import("node:child_process"),
47259
+ import("./bareMode-QWKZPLPX.js"),
47260
+ import("./safe-mode-KLGUG54M.js")
47261
+ ]);
47262
+ const {
47263
+ buildBwrapArgs,
47264
+ buildBwrapEnv,
47265
+ runBwrap,
47266
+ resolveBwrapWritableRoots,
47267
+ resolveSandboxNetworkMode
47268
+ } = sandboxModule;
47269
+ const args = argv;
47270
+ const requestedCmd = [...args.cmd ?? [], ...args["--"] ?? []];
47271
+ const writeReportLine = requestedCmd.length ? writeStderrLine2 : writeStdoutLine2;
47272
+ const cwd = process.cwd();
47273
+ const bare = isBareMode2(args.bare);
47274
+ const settings = bare ? {} : loadSettings2(cwd, false).merged;
47275
+ const effectiveSettings = bare || (args.safeMode ?? isSafeModeEnv2()) ? {} : settings;
47276
+ if (process.env["SANDBOX"]) {
47277
+ writeReportLine(`Already inside a sandbox: ${process.env["SANDBOX"]}`);
47278
+ const enforcement = process.env["SANDBOX_ENFORCEMENT"];
47279
+ if (enforcement) {
47280
+ writeReportLine(`Enforcement: ${enforcement}`);
47281
+ }
47282
+ writeReportLine(
47283
+ "Run this from outside the sandbox to inspect a backend."
47284
+ );
47285
+ if (args.verify || requestedCmd.length) {
47286
+ writeStderrLine2("No verification or command was run.");
47287
+ process.exitCode = 1;
47288
+ }
47289
+ return;
47290
+ }
47291
+ let sandboxConfig;
47292
+ try {
47293
+ sandboxConfig = await loadSandboxConfig2(settings, args);
47294
+ } catch (error) {
47295
+ writeStderrLine2(
47296
+ `Sandbox unavailable: ${error instanceof Error ? error.message : String(error)}`
47297
+ );
47298
+ process.exitCode = 1;
47299
+ return;
47300
+ }
47301
+ if (!sandboxConfig) {
47302
+ writeReportLine("Backend: none (running unconfined)");
47303
+ writeReportLine(
47304
+ "Enable one with --sandbox, QWEN_SANDBOX=<command>, or tools.sandbox."
47305
+ );
47306
+ if (args.verify || requestedCmd.length) {
47307
+ writeStderrLine2(
47308
+ "No verification or command was run: no sandbox is configured."
47309
+ );
47310
+ process.exitCode = 1;
47311
+ }
47312
+ return;
47313
+ }
47314
+ writeReportLine(`Backend: ${sandboxConfig.command}`);
47315
+ if (sandboxConfig.image) {
47316
+ writeReportLine(`Image: ${sandboxConfig.image}`);
47317
+ }
47318
+ if (sandboxConfig.command !== "bwrap") {
47319
+ writeReportLine(
47320
+ `Inspection of writable roots is implemented for bwrap; '${sandboxConfig.command}' reports its backend only.`
47321
+ );
47322
+ if (args.verify || requestedCmd.length) {
47323
+ writeStderrLine2(
47324
+ `--verify and running a command are only supported for bwrap, not '${sandboxConfig.command}'.`
47325
+ );
47326
+ process.exitCode = 1;
47327
+ }
47328
+ return;
47329
+ }
47330
+ let networkMode;
47331
+ let rootsResult;
47332
+ try {
47333
+ networkMode = resolveSandboxNetworkMode();
47334
+ rootsResult = resolveBwrapWritableRoots(
47335
+ (effectiveSettings.context?.includeDirectories ?? []).map(resolvePath)
47336
+ );
47337
+ } catch (error) {
47338
+ writeStderrLine2(
47339
+ `Sandbox unavailable: ${error instanceof Error ? error.message : String(error)}`
47340
+ );
47341
+ process.exitCode = 1;
47342
+ return;
47343
+ }
47344
+ const { targetDir, roots, readOnlyOverrides } = rootsResult;
47345
+ writeReportLine("Enforcement: full");
47346
+ writeReportLine(
47347
+ "Boundary: filesystem mounts; host Unix sockets remain reachable"
47348
+ );
47349
+ writeReportLine(
47350
+ "Git metadata: granted repository config and hooks remain writable and can affect later unconfined Git commands."
47351
+ );
47352
+ writeReportLine(`Network: ${networkMode}`);
47353
+ if (networkMode === "proxied") {
47354
+ writeReportLine(
47355
+ "Proxy settings are advisory; direct connections remain possible."
47356
+ );
47357
+ }
47358
+ writeReportLine(`Target dir: ${targetDir}`);
47359
+ writeReportLine(
47360
+ "Writable roots (settings-derived; a session started with --include-directories also binds those):"
47361
+ );
47362
+ for (const root of roots) {
47363
+ writeReportLine(` ${root}`);
47364
+ }
47365
+ if (readOnlyOverrides.length > 0) {
47366
+ writeReportLine("Read-only inside a writable root:");
47367
+ for (const override of readOnlyOverrides) {
47368
+ writeReportLine(` ${override}`);
47369
+ }
47370
+ }
47371
+ const runConfined = /* @__PURE__ */ __name((cmdArgv) => {
47372
+ const result = spawnSync11(
47373
+ "bwrap",
47374
+ [
47375
+ "--new-session",
47376
+ ...buildBwrapArgs({
47377
+ writableRoots: roots,
47378
+ targetDir,
47379
+ networkMode,
47380
+ cliArgs: cmdArgv,
47381
+ readOnlyOverrides
47382
+ })
47383
+ ],
47384
+ // The battery matches on message text rendered by the confined
47385
+ // libc, and glibc localizes strerror() through its own catalogs —
47386
+ // under a non-English LC_ALL/LANG the EROFS message comes back
47387
+ // localized and a holding confinement would report FAIL. The C
47388
+ // locale pins the dialect for every message-based case at once.
47389
+ // Only the probes get this; requested commands keep the user's locale.
47390
+ {
47391
+ encoding: "utf8",
47392
+ env: { ...buildBwrapEnv(networkMode), LC_ALL: "C" }
47393
+ }
47394
+ );
47395
+ const stdout = result.stdout ?? "";
47396
+ return {
47397
+ status: result.status,
47398
+ stdout,
47399
+ output: `${stdout}${result.stderr ?? ""}`
47400
+ };
47401
+ }, "runConfined");
47402
+ if (requestedCmd.length) {
47403
+ try {
47404
+ process.exitCode = await runBwrap({
47405
+ writableRoots: roots,
47406
+ targetDir,
47407
+ networkMode,
47408
+ cliArgs: requestedCmd,
47409
+ readOnlyOverrides
47410
+ });
47411
+ } catch (error) {
47412
+ writeStderrLine2(
47413
+ `Sandbox command failed: ${error instanceof Error ? error.message : String(error)}`
47414
+ );
47415
+ process.exitCode = 1;
47416
+ }
47417
+ return;
47418
+ }
47419
+ if (!args.verify) {
47420
+ return;
47421
+ }
47422
+ let hostPidNamespace;
47423
+ try {
47424
+ hostPidNamespace = fs3.readlinkSync("/proc/self/ns/pid");
47425
+ } catch (error) {
47426
+ writeStderrLine2(
47427
+ `Cannot verify sandbox PID namespace: ${error instanceof Error ? error.message : String(error)}`
47428
+ );
47429
+ process.exitCode = 1;
47430
+ return;
47431
+ }
47432
+ writeStdoutLine2("");
47433
+ const denied = /Read-only file system/;
47434
+ const cases = [
47435
+ {
47436
+ name: "write inside the workspace succeeds",
47437
+ // `mktemp`, not a fixed name: `touch X && rm X` on a workspace that
47438
+ // already contains an `X` succeeds at the touch and then deletes the
47439
+ // user's file. mktemp only ever creates a new one, and still fails
47440
+ // when the directory is not writable, which is what this asserts.
47441
+ argv: [
47442
+ "sh",
47443
+ "-c",
47444
+ 'f=$(mktemp ./.qwen-sandbox-probe.XXXXXX) && rm -f "$f"'
47445
+ ],
47446
+ expectation: "the workspace must stay writable, or no work is possible",
47447
+ check: /* @__PURE__ */ __name(({ status }) => status === 0, "check")
47448
+ },
47449
+ {
47450
+ name: "write outside the roots is denied",
47451
+ argv: ["sh", "-c", "touch /usr/local/bin/qwen-sandbox-probe 2>&1"],
47452
+ expectation: "a read-only host root is the confinement; without this there is none",
47453
+ check: /* @__PURE__ */ __name(({ output }) => denied.test(output), "check")
47454
+ },
47455
+ {
47456
+ name: "payload shares the host PID namespace",
47457
+ argv: ["readlink", "/proc/self/ns/pid"],
47458
+ expectation: "no PID namespace, so cross-process ownership records stay meaningful",
47459
+ check: /* @__PURE__ */ __name(({ status, stdout }) => status === 0 && stdout.trim() === hostPidNamespace, "check")
47460
+ },
47461
+ {
47462
+ name: networkMode === "closed" ? "network namespace is private in closed mode" : `host network is shared in ${networkMode} mode`,
47463
+ // Reading `/proc/net/dev`, and neither of the two more obvious probes,
47464
+ // both of which were measured to assert nothing here:
47465
+ // - `getent hosts localhost` answers from /etc/hosts without touching
47466
+ // the network stack, so it succeeds even under --unshare-net;
47467
+ // - `/sys/class/net` still lists the host interfaces, because
47468
+ // `--ro-bind / /` carries the host sysfs in and a bind mount does
47469
+ // not re-associate it with the new namespace.
47470
+ // `/proc/net` is a per-process symlink to `self/net`, so it does follow
47471
+ // the caller's network namespace. Needs no iproute2 and no connectivity.
47472
+ argv: ["sh", "-c", "tail -n +3 /proc/net/dev | cut -d: -f1"],
47473
+ expectation: networkMode === "closed" ? "closed mode unshares the network namespace, leaving only loopback" : "open and proxied modes keep the host interfaces visible",
47474
+ check: /* @__PURE__ */ __name(({ status, stdout }) => {
47475
+ if (status !== 0) {
47476
+ return false;
47477
+ }
47478
+ const names = stdout.trim().split(/\s+/).filter(Boolean);
47479
+ if (!names.includes("lo")) {
47480
+ return false;
47481
+ }
47482
+ const nonLoopback = names.filter((name) => name !== "lo");
47483
+ return networkMode === "closed" ? nonLoopback.length === 0 : nonLoopback.length > 0;
47484
+ }, "check")
47485
+ }
47486
+ ];
47487
+ let failures = 0;
47488
+ for (const testCase of cases) {
47489
+ const result = runConfined(testCase.argv);
47490
+ if (testCase.check(result)) {
47491
+ writeStdoutLine2(` PASS ${testCase.name}`);
47492
+ } else {
47493
+ failures += 1;
47494
+ writeStdoutLine2(` FAIL ${testCase.name}`);
47495
+ writeStdoutLine2(` expected: ${testCase.expectation}`);
47496
+ const detail = result.output.trim();
47497
+ writeStdoutLine2(
47498
+ ` got: exit ${result.status}${detail ? ` \u2014 ${detail}` : ""}`
47499
+ );
47500
+ }
47501
+ }
47502
+ writeStdoutLine2("");
47503
+ writeStdoutLine2(
47504
+ failures === 0 ? `Confinement verified (${cases.length} checks).` : `${failures} of ${cases.length} checks failed.`
47505
+ );
47506
+ if (failures > 0) {
47507
+ process.exitCode = 1;
47508
+ }
47509
+ }, "handler")
47510
+ };
47511
+
47493
47512
  // packages/cli/src/config/config.ts
47494
47513
  var debugLogger4 = createDebugLogger("CONFIG");
47495
47514
  function resolveLocaleForExtensions(settings) {
@@ -47614,7 +47633,7 @@ function resolveJsonSchemaArg(raw) {
47614
47633
  payloadSource = "file";
47615
47634
  payloadSourcePath = resolvedPath;
47616
47635
  try {
47617
- const stat = fs3.statSync(resolvedPath);
47636
+ const stat = fs4.statSync(resolvedPath);
47618
47637
  if (!stat.isFile()) {
47619
47638
  throw new FatalConfigError(
47620
47639
  `--json-schema "@${resolvedPath}" must be a regular file.`
@@ -47625,7 +47644,7 @@ function resolveJsonSchemaArg(raw) {
47625
47644
  `--json-schema file "${resolvedPath}" is ${stat.size} bytes (>${MAX_JSON_SCHEMA_FILE_BYTES}). Refusing to read; this is almost certainly a wrong-path argument. Schemas should be small enough to fit in a few KiB; decompose with \`$ref\` if you need a large family of types.`
47626
47645
  );
47627
47646
  }
47628
- payload = fs3.readFileSync(resolvedPath, "utf8");
47647
+ payload = fs4.readFileSync(resolvedPath, "utf8");
47629
47648
  } catch (err) {
47630
47649
  if (err instanceof FatalConfigError) throw err;
47631
47650
  throw new FatalConfigError(
@@ -47841,7 +47860,7 @@ async function parseArguments() {
47841
47860
  }
47842
47861
  return true;
47843
47862
  })
47844
- ).command(mcpCommand).command(extensionsCommand).command(authCommand).command(hooksCommand).command(channelCommand).command(boardCommand).command(reviewCommand).command(serveCommand).command(sessionsCommand).command(updateCommand3);
47863
+ ).command(mcpCommand).command(extensionsCommand).command(authCommand).command(hooksCommand).command(channelCommand).command(boardCommand).command(reviewCommand).command(serveCommand).command(sessionsCommand).command(updateCommand3).command(sandboxCommand);
47845
47864
  for (const [option, message] of Object.entries(
47846
47865
  TOP_LEVEL_DEPRECATED_OPTIONS
47847
47866
  )) {
@@ -47850,7 +47869,7 @@ async function parseArguments() {
47850
47869
  yargsInstance.version(await getCliVersion()).alias("v", "version").help().alias("h", "help").strict().demandCommand(0, 0);
47851
47870
  yargsInstance.wrap(yargsInstance.terminalWidth());
47852
47871
  const result = await yargsInstance.parse();
47853
- if (result._.length > 0 && (result._[0] === "mcp" || result._[0] === "extensions" || result._[0] === "auth" || result._[0] === "hooks" || result._[0] === "channel" || result._[0] === "review" || result._[0] === "sessions" || result._[0] === "board" || result._[0] === "update")) {
47872
+ if (result._.length > 0 && (result._[0] === "mcp" || result._[0] === "extensions" || result._[0] === "auth" || result._[0] === "hooks" || result._[0] === "channel" || result._[0] === "review" || result._[0] === "sessions" || result._[0] === "board" || result._[0] === "update" || result._[0] === "sandbox")) {
47854
47873
  process.exit(process.exitCode ?? 0);
47855
47874
  }
47856
47875
  const queryArg = result.query;
@@ -47879,8 +47898,8 @@ async function parseArguments() {
47879
47898
  }
47880
47899
  __name(parseArguments, "parseArguments");
47881
47900
  async function loadHierarchicalMemory(currentWorkingDirectory, includeDirectoriesToReadMemory = [], fileService, extensionContextFilePaths = [], folderTrust, memoryImportFormat = "tree", contextRuleExcludes = [], options = {}) {
47882
- const realCwd = fs3.realpathSync(path5.resolve(currentWorkingDirectory));
47883
- const realHome = fs3.realpathSync(path5.resolve(homedir2()));
47901
+ const realCwd = fs4.realpathSync(path5.resolve(currentWorkingDirectory));
47902
+ const realHome = fs4.realpathSync(path5.resolve(homedir2()));
47884
47903
  const isHomeDirectory = realCwd === realHome;
47885
47904
  const effectiveCwd = isHomeDirectory ? "" : currentWorkingDirectory;
47886
47905
  return loadServerHierarchicalMemory(
@@ -48051,9 +48070,9 @@ function parseMcpConfig(mcpConfigArg) {
48051
48070
  }
48052
48071
  try {
48053
48072
  let parsed;
48054
- if (fs3.existsSync(mcpConfigArg)) {
48073
+ if (fs4.existsSync(mcpConfigArg)) {
48055
48074
  debugLogger4.debug(`Reading MCP config from file: ${mcpConfigArg}`);
48056
- const content = fs3.readFileSync(mcpConfigArg, "utf-8");
48075
+ const content = fs4.readFileSync(mcpConfigArg, "utf-8");
48057
48076
  parsed = JSON.parse((0, import_strip_json_comments.default)(content));
48058
48077
  } else {
48059
48078
  debugLogger4.debug("Parsing MCP config as JSON string");
@@ -48210,9 +48229,9 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
48210
48229
  );
48211
48230
  let outputLanguageFilePath;
48212
48231
  if (!bareMode && !safeMode) {
48213
- if (!provisionalWorkspace && fs3.existsSync(projectOutputLanguagePath)) {
48232
+ if (!provisionalWorkspace && fs4.existsSync(projectOutputLanguagePath)) {
48214
48233
  outputLanguageFilePath = projectOutputLanguagePath;
48215
- } else if (fs3.existsSync(globalOutputLanguagePath)) {
48234
+ } else if (fs4.existsSync(globalOutputLanguagePath)) {
48216
48235
  outputLanguageFilePath = globalOutputLanguagePath;
48217
48236
  }
48218
48237
  }
@@ -48553,7 +48572,7 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
48553
48572
  enabledSkillNamesProvider: bareMode || safeMode ? void 0 : enabledSkillNamesProvider,
48554
48573
  skillSettingsListsProvider: bareMode || safeMode ? void 0 : buildSkillSettingsListsProvider(settings),
48555
48574
  terminalImageRenderSupportProvider: interactive ? async () => {
48556
- const { getTerminalImageRenderSupport } = await import("./terminal-image-renderer-4FK76L22.js");
48575
+ const { getTerminalImageRenderSupport } = await import("./terminal-image-renderer-UDPJPGPQ.js");
48557
48576
  return getTerminalImageRenderSupport();
48558
48577
  } : void 0,
48559
48578
  disabledSkillLevels: bareMode || safeMode || !Array.isArray(settings.skills?.disabledLevels) ? void 0 : settings.skills.disabledLevels.filter(isSkillLevel),
@@ -48685,6 +48704,7 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
48685
48704
  useRipgrep: settings.tools?.useRipgrep,
48686
48705
  useBuiltinRipgrep: settings.tools?.useBuiltinRipgrep,
48687
48706
  workflowsEnabled: settings.tools?.workflowsEnabled,
48707
+ workflowSizeGuideline: settings.tools?.workflowSizeGuideline,
48688
48708
  modelProposedGoals: normalizeModelProposedGoals(
48689
48709
  settings.goals?.modelProposed
48690
48710
  ),
@@ -48726,9 +48746,11 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
48726
48746
  settings.modelFallbacks
48727
48747
  ),
48728
48748
  // Use separated hooks if provided, otherwise fall back to merged hooks
48729
- userHooks: bareMode || safeMode ? void 0 : hooksConfig?.userHooks ?? settings.hooks,
48730
- projectHooks: bareMode || safeMode ? void 0 : hooksConfig?.projectHooks,
48731
- hooks: bareMode || safeMode ? void 0 : settings.hooks,
48749
+ ...resolveHookSettingsForConfig(
48750
+ settings.hooks,
48751
+ hooksConfig,
48752
+ bareMode || safeMode
48753
+ ),
48732
48754
  disableAllHooks: bareMode || safeMode ? true : settings.disableAllHooks ?? false,
48733
48755
  stopHookBlockingCap: bareMode || safeMode ? void 0 : settings.stopHookBlockingCap,
48734
48756
  channel: argv.channel,
@@ -48769,9 +48791,9 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
48769
48791
  };
48770
48792
  const config2 = new Config(configParams);
48771
48793
  config2.setExternalAgentExecutor({
48772
- create: /* @__PURE__ */ __name((params) => params.spec.kind === "codex" ? import("./codex-subagent-executor-6M7TD3MF.js").then(
48794
+ create: /* @__PURE__ */ __name((params) => params.spec.kind === "codex" ? import("./codex-subagent-executor-AEAIQZDC.js").then(
48773
48795
  (module) => module.codexExternalAgentExecutor.create(params)
48774
- ) : import("./acp-subagent-executor-KIZBB2CL.js").then(
48796
+ ) : import("./acp-subagent-executor-TND6W2O5.js").then(
48775
48797
  (module) => module.acpExternalAgentExecutor.create(params)
48776
48798
  ), "create")
48777
48799
  });
@@ -48969,7 +48991,7 @@ __name(isPromiseLike, "isPromiseLike");
48969
48991
  export {
48970
48992
  validateAuthMethod,
48971
48993
  normalizeDisabledToolList,
48972
- loadSandboxConfig,
48994
+ resolveHookSettingsForConfig,
48973
48995
  appEvents,
48974
48996
  skillArgsPath,
48975
48997
  writeSkillArgs,