@qwen-code/qwen-code 0.23.2-preview.0 → 0.23.2

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 (282) hide show
  1. package/bundled/qc-helper/docs/configuration/auth.md +1 -1
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +19 -15
  3. package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
  4. package/bundled/qc-helper/docs/features/channels/github.md +1 -9
  5. package/bundled/qc-helper/docs/features/channels/overview.md +26 -51
  6. package/bundled/qc-helper/docs/features/channels/qqbot.md +1 -2
  7. package/bundled/qc-helper/docs/features/commands.md +48 -9
  8. package/bundled/qc-helper/docs/features/goals.md +2 -0
  9. package/bundled/qc-helper/docs/features/sub-agents.md +8 -0
  10. package/bundled/qc-helper/docs/qwen-serve.md +62 -48
  11. package/chunks/{MaxSizedBox-ZZJT3PJF.js → MaxSizedBox-4C3BKKKY.js} +17 -16
  12. package/chunks/{StandaloneSessionPicker-DIOSZTMX.js → StandaloneSessionPicker-TXVF65YW.js} +32 -31
  13. package/chunks/{acpAgent-62JUP5A7.js → acpAgent-H5XBKGB4.js} +301 -166
  14. package/chunks/{agent-NLPEQQDZ.js → agent-T5LEFJIU.js} +10 -10
  15. package/chunks/{agent-headless-Y2GR5F2Q.js → agent-headless-VZKSRH36.js} +10 -10
  16. package/chunks/{anthropicContentGenerator-I7LQZH26.js → anthropicContentGenerator-PRJWWVYJ.js} +2 -2
  17. package/chunks/{artifact-tool-P52OKKEF.js → artifact-tool-G5LHNECG.js} +1 -1
  18. package/chunks/{bridge-Q66BD62H.js → bridge-AOX5IY44.js} +18 -17
  19. package/chunks/{channel-management-service-TRTLQTSV.js → channel-management-service-MWQGHPAS.js} +4 -4
  20. package/chunks/{channel-settings-store-R5STFWUW.js → channel-settings-store-XZCGDGHW.js} +26 -25
  21. package/chunks/{channel-worker-group-PIYPVCTF.js → channel-worker-group-SQ5FRWOH.js} +5 -5
  22. package/chunks/{channel-worker-manager-FQHEDTD2.js → channel-worker-manager-TU4ZNWOE.js} +5 -5
  23. package/chunks/{channel-worker-supervisor-XJPZZ3VK.js → channel-worker-supervisor-EMITFMCP.js} +4 -4
  24. package/chunks/{chunk-3SH53ANB.js → chunk-22GORRNY.js} +12 -0
  25. package/chunks/{chunk-7L35FKPF.js → chunk-2BMXHB6N.js} +2 -2
  26. package/chunks/chunk-2WC3Y7YY.js +1033 -0
  27. package/chunks/{chunk-WZ4YULVF.js → chunk-3OAXF3UK.js} +210 -80
  28. package/chunks/{chunk-W673V2H3.js → chunk-46MMBZHI.js} +3 -3
  29. package/chunks/{chunk-6GRDHIVI.js → chunk-4I3WFI3U.js} +4 -4
  30. package/chunks/{chunk-QXXBW2G4.js → chunk-4JNHNVAZ.js} +3 -3
  31. package/chunks/{chunk-R2266LQ5.js → chunk-4WMGYG3F.js} +2 -2
  32. package/chunks/{chunk-Y6ZWXM44.js → chunk-5BH2AIEY.js} +1 -1
  33. package/chunks/{chunk-EA4NFWVG.js → chunk-5OZUKLL7.js} +3 -3
  34. package/chunks/{chunk-RX3FYFCN.js → chunk-67XTVRVB.js} +1 -1
  35. package/chunks/{chunk-MA5OUNN6.js → chunk-6G4V7SE4.js} +1 -1
  36. package/chunks/{chunk-B54PFQS5.js → chunk-7CLLH5TI.js} +1 -1
  37. package/chunks/{chunk-7GZCCHJL.js → chunk-7LTCFO6T.js} +3 -3
  38. package/chunks/{chunk-33MLFMCL.js → chunk-7NDZKE2M.js} +2 -2
  39. package/chunks/{chunk-5WC2ECUK.js → chunk-7PD7ZMX5.js} +17 -4
  40. package/chunks/{chunk-ZUNWKOAP.js → chunk-7SVM3RP2.js} +4 -24
  41. package/chunks/{chunk-5GD7LYOH.js → chunk-A7EFXK7P.js} +1 -1
  42. package/chunks/{chunk-RDV4NLI3.js → chunk-AO2VMS72.js} +2 -2
  43. package/chunks/{chunk-XAXTQURR.js → chunk-APXIW2TF.js} +3 -3
  44. package/chunks/{chunk-3BTHHXXE.js → chunk-AUTUFD5X.js} +1 -1
  45. package/chunks/{chunk-VH764G6B.js → chunk-B25JYXZE.js} +2 -2
  46. package/chunks/{chunk-MMMA36MN.js → chunk-BK7D2JR6.js} +3 -3
  47. package/chunks/{chunk-RPFJJ33Z.js → chunk-CALTQWTZ.js} +1 -1
  48. package/chunks/{chunk-EUXF6URV.js → chunk-CCBTNJB4.js} +16 -18
  49. package/chunks/{chunk-BF3RUIVP.js → chunk-CH2YDT6X.js} +36 -38
  50. package/chunks/{chunk-L6ZME3W7.js → chunk-CMWU6P4D.js} +1 -1
  51. package/chunks/{chunk-QJAFSFYA.js → chunk-CWVZBIZJ.js} +1 -1
  52. package/chunks/{chunk-JDPBJIKI.js → chunk-DAI65CMX.js} +1 -1
  53. package/chunks/{chunk-GM44O6F7.js → chunk-DARWOZY6.js} +1 -1
  54. package/chunks/{chunk-J4ECGDA3.js → chunk-ELD3OBPU.js} +3 -3
  55. package/chunks/{chunk-ZELCTN6Y.js → chunk-F23YN37B.js} +10 -0
  56. package/chunks/{chunk-OIPUQE3S.js → chunk-F2NYVASI.js} +14 -1
  57. package/chunks/{chunk-ODBNTMZW.js → chunk-FAJPLSYF.js} +36 -29
  58. package/chunks/{chunk-GXIHBIHC.js → chunk-FGHPZGOP.js} +29 -24
  59. package/chunks/{chunk-TK4XHPKW.js → chunk-G37O7YO6.js} +2 -2
  60. package/chunks/{chunk-4JKLPTV6.js → chunk-G3ZUMSFS.js} +12 -5
  61. package/chunks/{chunk-743XE7N7.js → chunk-G5VOXCRX.js} +1 -1
  62. package/chunks/{chunk-BL6B2QS2.js → chunk-GOEVQADN.js} +618 -1122
  63. package/chunks/{chunk-XI7RST4D.js → chunk-GOKAOSCN.js} +1 -1
  64. package/chunks/{chunk-FDOGGKAA.js → chunk-GSFV5RQW.js} +2 -0
  65. package/chunks/{chunk-43CI6YWJ.js → chunk-HJ5UJQQL.js} +1384 -1245
  66. package/chunks/{chunk-LUVXLLMS.js → chunk-IR6JKBAP.js} +1 -1
  67. package/chunks/{chunk-CPJRFFPH.js → chunk-IRGDIDGJ.js} +558 -158
  68. package/chunks/{chunk-DCPRCDSR.js → chunk-IWABUX6T.js} +1 -1
  69. package/chunks/{chunk-DTB5BXRG.js → chunk-JO77FGNZ.js} +16 -15
  70. package/chunks/{chunk-45ROPFQY.js → chunk-JYGIJA4W.js} +1 -1
  71. package/chunks/{chunk-M6YLOETP.js → chunk-KCF2436G.js} +1 -1
  72. package/chunks/{chunk-CABDNUJ4.js → chunk-KEPC5BOL.js} +5 -5
  73. package/chunks/{chunk-RN6V5HKE.js → chunk-KFECPHLV.js} +3 -3
  74. package/chunks/{chunk-WIRYFL2L.js → chunk-LEAOJ43M.js} +17 -15
  75. package/chunks/{chunk-IUJLW6ZI.js → chunk-LUNC5KCL.js} +3 -3
  76. package/chunks/{chunk-WZS3X663.js → chunk-LWX4WDFF.js} +2 -5
  77. package/chunks/{chunk-ISPBBKJN.js → chunk-MV5DTLJV.js} +7 -2
  78. package/chunks/chunk-NFXXBWSE.js +463 -0
  79. package/chunks/{chunk-PQSCGZT2.js → chunk-NPKCVSXX.js} +26 -2
  80. package/chunks/{chunk-7RXOEUFF.js → chunk-NX7ZTXFF.js} +1 -1
  81. package/chunks/{chunk-G5QLLD53.js → chunk-OXR34GCD.js} +14 -2
  82. package/chunks/{chunk-VHPG7BH6.js → chunk-PDN7FJZV.js} +1 -1
  83. package/chunks/{chunk-UHUT4IDM.js → chunk-PFKGV6PO.js} +9 -9
  84. package/chunks/{chunk-NFIDVZND.js → chunk-QB3KS3N3.js} +2 -21
  85. package/chunks/{chunk-QLM7D7W3.js → chunk-QFJZAY7W.js} +7 -7
  86. package/chunks/{chunk-NVS4Z6GT.js → chunk-QHLHE2OT.js} +1 -1
  87. package/chunks/{chunk-B44JBZBB.js → chunk-QQK4L3UU.js} +1 -1
  88. package/chunks/{chunk-63ACHB2H.js → chunk-QTB4VP4K.js} +50 -18
  89. package/chunks/{chunk-4BLTSTF6.js → chunk-R3JIDRUL.js} +4 -4
  90. package/chunks/{chunk-VEQBVJYH.js → chunk-R457KFV7.js} +3 -3
  91. package/chunks/{chunk-CG2PDIGD.js → chunk-RM244SCQ.js} +1 -1
  92. package/chunks/{chunk-W7PXLIZJ.js → chunk-RNAJVXUG.js} +5 -5
  93. package/chunks/{chunk-VF6D6EGV.js → chunk-S5QR6CB5.js} +52 -6
  94. package/chunks/{chunk-IRKQ4YYX.js → chunk-SVWWF5TZ.js} +29 -1
  95. package/chunks/{chunk-5HBA2Z7V.js → chunk-TGNNLRC3.js} +2 -3
  96. package/chunks/{chunk-ORREXWOM.js → chunk-TODNHE76.js} +3 -3
  97. package/chunks/{chunk-W3ONSAYO.js → chunk-TOOOLHVS.js} +2 -2
  98. package/chunks/{chunk-EHTKOO6W.js → chunk-TRQNRP2H.js} +2 -2
  99. package/chunks/{chunk-PQWM4SX2.js → chunk-U6REWGVR.js} +2 -2
  100. package/chunks/{chunk-UXDVUFKU.js → chunk-ULZECEIP.js} +2 -2
  101. package/chunks/{chunk-6YEOCHSE.js → chunk-VBLAI2HA.js} +101 -0
  102. package/chunks/{chunk-M73KHGNR.js → chunk-VJJXG73H.js} +404 -226
  103. package/chunks/{chunk-Q2F43WTJ.js → chunk-WBU2PIZ5.js} +23 -6
  104. package/chunks/{chunk-UULHYZ4W.js → chunk-WDN64MVT.js} +74 -15
  105. package/chunks/{chunk-XVTCSVBK.js → chunk-WDVV3LRM.js} +193 -169
  106. package/chunks/{chunk-LBKYQ33T.js → chunk-WK7P62DV.js} +16 -10
  107. package/chunks/{chunk-ULY4ISY2.js → chunk-WXD7INFV.js} +19 -4
  108. package/chunks/{chunk-ZIPYCXQP.js → chunk-WXPPUPHM.js} +1 -1
  109. package/chunks/{chunk-5Z4FCEPY.js → chunk-X7LFJF5D.js} +600 -46
  110. package/chunks/{chunk-YHDGABDC.js → chunk-XKBFYTCD.js} +1 -1
  111. package/chunks/{chunk-MWEF5MUK.js → chunk-XSOXPG2L.js} +8 -8
  112. package/chunks/{chunk-5VZFJTL2.js → chunk-YLOHCA6I.js} +2 -2
  113. package/chunks/{chunk-LN3WBOKU.js → chunk-YQGW3M6Z.js} +2 -2
  114. package/chunks/{chunk-2OR32P5M.js → chunk-ZN5TKAVR.js} +125 -10
  115. package/chunks/{chunk-XBLG564H.js → chunk-ZP5XDLSA.js} +10 -10
  116. package/chunks/{config-utils-37FHWPTP.js → config-utils-GPLIABL2.js} +21 -20
  117. package/chunks/{contextCommand-R4JUBV5N.js → contextCommand-NCUQUDBY.js} +18 -17
  118. package/chunks/{core-runtime-6U4OXU5C.js → core-runtime-WKYKWVYU.js} +23 -21
  119. package/chunks/{create-sub-session-LLUYAGZN.js → create-sub-session-PPLXB3JJ.js} +17 -16
  120. package/chunks/{daemon-UI6SQSBV.js → daemon-2CKIAO3I.js} +2 -2
  121. package/chunks/{daemon-git-worktree-guard-O2UTNFJC.js → daemon-git-worktree-guard-73ZWOLKL.js} +17 -16
  122. package/chunks/{daemon-status-provider-7GMAKSTX.js → daemon-status-provider-OK7VONJG.js} +22 -21
  123. package/chunks/{daemon-trust-policy-VNP76VMO.js → daemon-trust-policy-CAUCREG2.js} +22 -21
  124. package/chunks/{daemon-trust-policy-monitor-TD5O3BZA.js → daemon-trust-policy-monitor-3Y36OOEQ.js} +22 -21
  125. package/chunks/{deferred-core-runtime-NJM63YJS.js → deferred-core-runtime-Q7WFWYD3.js} +17 -16
  126. package/chunks/{dist-STAGIFNB.js → dist-6YDUH3BB.js} +388 -102
  127. package/chunks/{dist-XJ25G6OH.js → dist-BNQVF565.js} +2 -8
  128. package/chunks/{dist-NQ2636VT.js → dist-F34J4FZX.js} +1 -1
  129. package/chunks/{dist-OR2ZQTXZ.js → dist-F6JLAJLE.js} +1 -1
  130. package/chunks/{dist-WZTUKIDR.js → dist-NP7QKLVG.js} +2 -2
  131. package/chunks/{dist-M4CBX53H.js → dist-UFTFGI6I.js} +1 -1
  132. package/chunks/{dist-5I4HLUTO.js → dist-XLV33CLY.js} +1 -2
  133. package/chunks/{dist-24TCWK5H.js → dist-Y5KC3IHW.js} +1 -2
  134. package/chunks/{dist-FDISN4AK.js → dist-ZDNJK74R.js} +3 -7
  135. package/chunks/{edit-GL7OA6RV.js → edit-YJD6IETK.js} +10 -10
  136. package/chunks/{enterPlanMode-VC4BCSZE.js → enterPlanMode-EFPVTWIH.js} +10 -10
  137. package/chunks/{environment-BI6IBAZJ.js → environment-HP3AXFTB.js} +19 -18
  138. package/chunks/{errors-D6G2ZM2R.js → errors-22ON46G7.js} +19 -18
  139. package/chunks/{exitPlanMode-DX446CA6.js → exitPlanMode-MOQUNCBH.js} +10 -10
  140. package/chunks/{fast-path-MAYDLJIP.js → fast-path-2X7BPMXX.js} +3 -3
  141. package/chunks/{glob-TVKRFY36.js → glob-Y7ACIB3P.js} +10 -10
  142. package/chunks/{goal-tools-CA6YANRN.js → goal-tools-DABMICUC.js} +10 -10
  143. package/chunks/{handleAutoUpdate-AW4ZAHON.js → handleAutoUpdate-MCAMHYDI.js} +19 -18
  144. package/chunks/{i18n-IH5CRAY7.js → i18n-C3GDCALP.js} +17 -16
  145. package/chunks/{initializer-UBR37ZNM.js → initializer-4URDQL2G.js} +22 -21
  146. package/chunks/{installationInfo-Y52756EC.js → installationInfo-LBOL6SBV.js} +17 -16
  147. package/chunks/{list-7V5JDZPO.js → list-JOGBAC2R.js} +25 -24
  148. package/chunks/{list-agents-I5TRH3J7.js → list-agents-2CXPGJUE.js} +3 -3
  149. package/chunks/{llm-QDB6JVF5.js → llm-2KPNSAVY.js} +65 -59
  150. package/chunks/{llm-content-generator-EO6MZCEO.js → llm-content-generator-GR3FOHLB.js} +2 -2
  151. package/chunks/{loadedSettingsAdapter-I3YQKMC4.js → loadedSettingsAdapter-DVKROEJD.js} +22 -21
  152. package/chunks/{loggingContentGenerator-MNXYUGDG.js → loggingContentGenerator-P4K6K5W4.js} +12 -12
  153. package/chunks/{managed-npm-update-EA3EXPTO.js → managed-npm-update-VWBKHNIN.js} +17 -16
  154. package/chunks/{mcp-QTAJ544Y.js → mcp-6YYNSYLK.js} +22 -21
  155. package/chunks/{monitor-6FQKQOTP.js → monitor-A255TNZR.js} +10 -10
  156. package/chunks/{nonInteractiveCli-MRCTZL5X.js → nonInteractiveCli-LXGIKQAT.js} +55 -54
  157. package/chunks/{notebook-edit-BQQCKI7K.js → notebook-edit-5UYHS2DM.js} +10 -10
  158. package/chunks/{open-with-auth-D6JD6LDS.js → open-with-auth-6MVIHMXB.js} +1 -1
  159. package/chunks/{openaiContentGenerator-TTSKXNVH.js → openaiContentGenerator-A6MAMEO5.js} +7 -7
  160. package/chunks/{pidfile-KPIS6RIT.js → pidfile-B7DZC4TP.js} +20 -17
  161. package/chunks/{processUtils-ZCASPKK4.js → processUtils-BPZ2MCZS.js} +2 -2
  162. package/chunks/{prompt-terminal-ledger-D6HM6TV7.js → prompt-terminal-ledger-FYYTAOXS.js} +18 -17
  163. package/chunks/{qwenContentGenerator-GGZEFLBD.js → qwenContentGenerator-4IOJFD4S.js} +13 -13
  164. package/chunks/{read-file-VE5GDFLP.js → read-file-A4H4O3VQ.js} +2 -2
  165. package/chunks/{resumeHistoryUtils-HSSGMYDC.js → resumeHistoryUtils-YQQ43E4N.js} +19 -18
  166. package/chunks/{ripGrep-SEJE7AA6.js → ripGrep-W32NWFTA.js} +3 -3
  167. package/chunks/{run-qwen-serve-OJYVH7N6.js → run-qwen-serve-WBSWWIRV.js} +216 -64
  168. package/chunks/{runtime-KGMQQFJD.js → runtime-VRVBX2E5.js} +29 -26
  169. package/chunks/{scheduled-tasks-7H5HWHYD.js → scheduled-tasks-D65KJDA3.js} +20 -19
  170. package/chunks/{scheduler-BE42AKDG.js → scheduler-M2YPN7Z7.js} +19 -18
  171. package/chunks/{send-message-AWKUDJBH.js → send-message-76BKWKFZ.js} +3 -3
  172. package/chunks/{serve-KZVKYMSL.js → serve-BE3H2P6P.js} +22 -21
  173. package/chunks/{server-PJRALPJQ.js → server-FLY5JERG.js} +84 -148
  174. package/chunks/{session-IHITXU2S.js → session-JVN62R5K.js} +85 -57
  175. package/chunks/{session-attachments-root-GQ2TUI3Y.js → session-attachments-root-7ACGLHXA.js} +17 -16
  176. package/chunks/{session-pr-refresh-H43LULTE.js → session-pr-refresh-TQS57SDK.js} +19 -18
  177. package/chunks/{settings-RKEQQDFC.js → settings-D44YMZFT.js} +21 -20
  178. package/chunks/{shell-6PJ444U5.js → shell-3VE6I4V5.js} +10 -10
  179. package/chunks/{skill-Q3UP7B5V.js → skill-FHEGRRZU.js} +2 -2
  180. package/chunks/{skill-settings-LZR5YRRW.js → skill-settings-VHEJMBFL.js} +21 -20
  181. package/chunks/{spawnChannel-WM3DT2BF.js → spawnChannel-T6MX2ZDN.js} +17 -16
  182. package/chunks/{standalone-update-E5474IBI.js → standalone-update-QUGHFMCS.js} +18 -17
  183. package/chunks/{start-opentui-ui-WLWZNQ2I.js → start-opentui-ui-IHIIZ2LE.js} +438 -203
  184. package/chunks/{startInteractiveUI-FBQSGWGO.js → startInteractiveUI-LR7K2ARZ.js} +1171 -1234
  185. package/chunks/{task-create-PMAFST2T.js → task-create-MWXJFRRM.js} +3 -3
  186. package/chunks/{task-list-R2HSY2NC.js → task-list-EYO3FE57.js} +2 -2
  187. package/chunks/{task-update-JYC57USF.js → task-update-2JJJRHMT.js} +3 -3
  188. package/chunks/{team-create-VIGUFUT4.js → team-create-GY3VFY47.js} +10 -10
  189. package/chunks/{team-delete-CBHVBTPB.js → team-delete-IQZ6XGFI.js} +2 -2
  190. package/chunks/{team-plan-approval-HQVZA3MD.js → team-plan-approval-BQPGZOT5.js} +10 -10
  191. package/chunks/{terminal-image-renderer-LUKNCOVM.js → terminal-image-renderer-YNYW5CQG.js} +17 -16
  192. package/chunks/{theme-manager-LOENKYLY.js → theme-manager-U6CIK3GM.js} +17 -16
  193. package/chunks/{tool-search-ZIFAQCE2.js → tool-search-XI3QWD5I.js} +2 -2
  194. package/chunks/{total-session-admission-FUUJH3QH.js → total-session-admission-3SNSJJ32.js} +18 -17
  195. package/chunks/{trustedFolders-C76KYROP.js → trustedFolders-OVAQKNV5.js} +18 -17
  196. package/chunks/{update-relaunch-4G2SRXKX.js → update-relaunch-XV5O74E3.js} +5 -5
  197. package/chunks/{updateCheck-EIZIO7HI.js → updateCheck-CHUYWD6L.js} +17 -16
  198. package/chunks/{useAutoAcceptIndicator-EAA6KSY4.js → useAutoAcceptIndicator-VKSVIXZC.js} +23 -22
  199. package/chunks/{validateNonInterActiveAuth-BRX22QCN.js → validateNonInterActiveAuth-ZNUTD3E5.js} +53 -52
  200. package/chunks/{version-E56RU7PR.js → version-EK7VAGSI.js} +3 -1
  201. package/chunks/{web-fetch-AAUCD7RM.js → web-fetch-24KZO763.js} +2 -2
  202. package/chunks/{web-search-HFUQF44Q.js → web-search-CRNXKZ2X.js} +184 -7
  203. package/chunks/{web-shell-static-POZHGGXE.js → web-shell-static-BFDESDD4.js} +5 -4
  204. package/chunks/{workflow-3MABM53N.js → workflow-HD5NYMW5.js} +201 -65
  205. package/chunks/{workspace-providers-status-2FRLBZ5I.js → workspace-providers-status-MAM42IZS.js} +24 -23
  206. package/chunks/{workspace-registration-store-YL7HLYYI.js → workspace-registration-store-HKLJEDQX.js} +1 -2
  207. package/chunks/{workspace-registry-BNRP2ELW.js → workspace-registry-7RDDOBLN.js} +18 -17
  208. package/chunks/{workspace-runtime-coordinator-WKGF7VHS.js → workspace-runtime-coordinator-LEPDPXJO.js} +18 -17
  209. package/chunks/{workspace-service-4MYO72MM.js → workspace-service-5IFDCNN3.js} +23 -22
  210. package/chunks/{workspace-skills-status-SU66TJLZ.js → workspace-skills-status-FJ3HNH4H.js} +22 -21
  211. package/chunks/{workspace-trust-reconciler-D5QT7WQB.js → workspace-trust-reconciler-PQFHIWLR.js} +23 -22
  212. package/chunks/{write-file-NVPQE2AZ.js → write-file-ERG67ZFX.js} +11 -11
  213. package/chunks/{zoom-image-RJHC66WG.js → zoom-image-WQYEC3SR.js} +2 -2
  214. package/cli.js +12 -12
  215. package/export-transcript-document.js +82 -82
  216. package/package.json +4 -4
  217. package/web-shell/assets/{abnfDiagram-VCTEODGH-DHc6plZn.js → abnfDiagram-VCTEODGH-BRLgQbnT.js} +1 -1
  218. package/web-shell/assets/{arc-BQ9m8TDV.js → arc-qAF9_XsR.js} +1 -1
  219. package/web-shell/assets/{architectureDiagram-5GKGNRK7-D5ap3oVB.js → architectureDiagram-5GKGNRK7-BorUttEz.js} +1 -1
  220. package/web-shell/assets/{blockDiagram-NRAW4CY4-BIbnyNph.js → blockDiagram-NRAW4CY4-Bj0qZVxu.js} +1 -1
  221. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BRsdx_iG.js → c4Diagram-UCG6FXSJ-BTqJis32.js} +1 -1
  222. package/web-shell/assets/channel-COIuCrVH.js +1 -0
  223. package/web-shell/assets/{chunk-2Q5K7J3B-3lf1fNlx.js → chunk-2Q5K7J3B-RrQ5X8m-.js} +1 -1
  224. package/web-shell/assets/{chunk-5VM5RSS4-DP8VNRc4.js → chunk-5VM5RSS4-uUjDl8wO.js} +1 -1
  225. package/web-shell/assets/{chunk-F27PBJKO-DrohDmZ6.js → chunk-F27PBJKO-C3JhpyzI.js} +1 -1
  226. package/web-shell/assets/{chunk-G27WJ6UU-UZ2QhSx6.js → chunk-G27WJ6UU-C8ZNFs7F.js} +1 -1
  227. package/web-shell/assets/{chunk-JWPE2WC7-BIMHVcZK.js → chunk-JWPE2WC7-DNpXtEOs.js} +1 -1
  228. package/web-shell/assets/{chunk-LCL6LL3I-izRxdSDd.js → chunk-LCL6LL3I-DagA2ZLw.js} +1 -1
  229. package/web-shell/assets/{chunk-POPQ4Y6H-CXADD4PP.js → chunk-POPQ4Y6H-R23uH7Xm.js} +1 -1
  230. package/web-shell/assets/{chunk-SVP7TREG-B96d8Y_1.js → chunk-SVP7TREG-Qz9RN_BR.js} +1 -1
  231. package/web-shell/assets/{chunk-XXDRQBXY-CF2sVQpv.js → chunk-XXDRQBXY-jYb1_hni.js} +1 -1
  232. package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +1 -0
  233. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +1 -0
  234. package/web-shell/assets/{cose-bilkent-JH36ORCC-CT6tXVAS.js → cose-bilkent-JH36ORCC-Cv2OunpE.js} +1 -1
  235. package/web-shell/assets/{cynefin-OW5HDTMX-X1NS4vtV.js → cynefin-OW5HDTMX-LH42KFJx.js} +1 -1
  236. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DNsKNOT4.js → cynefinDiagram-5FMLGOSQ-Dha4_OoR.js} +1 -1
  237. package/web-shell/assets/{dagre-3AP2YEHR-9-AHKqsb.js → dagre-3AP2YEHR-Br5lnUKD.js} +1 -1
  238. package/web-shell/assets/{diagram-S7CK7UJ4-Bjgms7j6.js → diagram-S7CK7UJ4-dpKq2bBX.js} +1 -1
  239. package/web-shell/assets/{diagram-UQ7AKVKN-h6bCprbE.js → diagram-UQ7AKVKN-BAgHWpXr.js} +1 -1
  240. package/web-shell/assets/{diagram-VSXAHHWV-4SbQXVLt.js → diagram-VSXAHHWV-GRRzpyE2.js} +1 -1
  241. package/web-shell/assets/{diagram-VX7I27RA-B5gPCzzB.js → diagram-VX7I27RA-BNFiaYpG.js} +1 -1
  242. package/web-shell/assets/{diagram-Z3DM3KII-DFJXIA3A.js → diagram-Z3DM3KII-BisZzB_h.js} +1 -1
  243. package/web-shell/assets/{ebnfDiagram-PWID7BFC-FwyaU7VY.js → ebnfDiagram-PWID7BFC-B1xbwycf.js} +1 -1
  244. package/web-shell/assets/{erDiagram-SSCWMZ5O-8vJQh2te.js → erDiagram-SSCWMZ5O-CQMzbGE5.js} +1 -1
  245. package/web-shell/assets/{flowDiagram-A5DVABFB-BzA_1gMN.js → flowDiagram-A5DVABFB-CZ_Zondl.js} +1 -1
  246. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-Co-ABbVX.js → ganttDiagram-EL5Y4UJY-BTh2ShxS.js} +1 -1
  247. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DW_FcyrX.js → gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js} +1 -1
  248. package/web-shell/assets/{index-Bu-rZoJ-.js → index-CI1ysIEv.js} +478 -474
  249. package/web-shell/assets/index-CpxXGH-8.css +36 -0
  250. package/web-shell/assets/{index-BbMXfhNG.js → index-DWoFMu5x.js} +1 -1
  251. package/web-shell/assets/{infoDiagram-RXCK75RN-BEgfhUFN.js → infoDiagram-RXCK75RN-C0QpudbG.js} +1 -1
  252. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-DCsMxQmc.js → ishikawaDiagram-5VMMS53U-a6B741uT.js} +1 -1
  253. package/web-shell/assets/{journeyDiagram-EYS64GPL-DyIEYoHz.js → journeyDiagram-EYS64GPL-Dbht9ICp.js} +1 -1
  254. package/web-shell/assets/{kanban-definition-3QL26DDD-CkxjqCNr.js → kanban-definition-3QL26DDD-D4OFR8-h.js} +1 -1
  255. package/web-shell/assets/{layout-BEWc0Al9.js → layout-Dvdh5jRH.js} +1 -1
  256. package/web-shell/assets/{linear-CNuNxirL.js → linear-Dvc6KIW2.js} +1 -1
  257. package/web-shell/assets/{mermaid.core-DZBre674.js → mermaid.core-CB36RfIb.js} +6 -6
  258. package/web-shell/assets/{mindmap-definition-FBJOCRG2-CpafFz_F.js → mindmap-definition-FBJOCRG2-Fmqo1CjP.js} +1 -1
  259. package/web-shell/assets/{pegDiagram-XKGWAZYB-DfZqk_dq.js → pegDiagram-XKGWAZYB-CCxYBoA4.js} +1 -1
  260. package/web-shell/assets/{pieDiagram-E7YTZNPT-S0UWXlgC.js → pieDiagram-E7YTZNPT-BVHKQFzt.js} +1 -1
  261. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-dd37_Ohj.js → quadrantDiagram-AXDQQJYC-l95IznwR.js} +1 -1
  262. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CH8NJZ7u.js → railroadDiagram-O6MQD6OU-BlLdRdXp.js} +1 -1
  263. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CFdqWYih.js → requirementDiagram-EFPCY7ZU-BkDLBR5w.js} +1 -1
  264. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CsddcEGD.js → sankeyDiagram-P5KCCOFB-jAIqRp65.js} +1 -1
  265. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BZ270mGw.js → sequenceDiagram-WJ2MYXX4-f-soZYPr.js} +1 -1
  266. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CGaS4DBV.js → sizeCapture-X5ZJPWSS-BzOuAfB2.js} +1 -1
  267. package/web-shell/assets/{stateDiagram-HBIQ2CUA-COpIzMu6.js → stateDiagram-HBIQ2CUA-BPLSs12r.js} +1 -1
  268. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +1 -0
  269. package/web-shell/assets/{swimlanes-XN3QIQJK-CMF889m3.js → swimlanes-XN3QIQJK-D-9E_RIR.js} +1 -1
  270. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +8 -0
  271. package/web-shell/assets/{timeline-definition-24CTP7MA-BelnxYz5.js → timeline-definition-24CTP7MA-CT56K-gV.js} +1 -1
  272. package/web-shell/assets/{vennDiagram-4TSXK5OY-CU-NRqIB.js → vennDiagram-4TSXK5OY-B-vi4IyO.js} +1 -1
  273. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CDNKqWh-.js → wardleyDiagram-VM6X3IG4-C9O7Ju98.js} +1 -1
  274. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CLqguL5D.js → xychartDiagram-S5SC5T6Z-6d8w3jg2.js} +1 -1
  275. package/web-shell/index.html +2 -2
  276. package/chunks/chunk-X35VIWWJ.js +0 -276
  277. package/web-shell/assets/channel-uMMdTrYk.js +0 -1
  278. package/web-shell/assets/classDiagram-DTDB5LWJ-DcY-26Ig.js +0 -1
  279. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DcY-26Ig.js +0 -1
  280. package/web-shell/assets/index-CsPwZ1ut.css +0 -36
  281. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D6qEVAji.js +0 -1
  282. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-mem5Jj4m.js +0 -8
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  listCommand
5
- } from "./chunk-W673V2H3.js";
5
+ } from "./chunk-46MMBZHI.js";
6
6
  import {
7
7
  getErrorMessage as getErrorMessage2
8
- } from "./chunk-VEQBVJYH.js";
8
+ } from "./chunk-R457KFV7.js";
9
9
  import {
10
10
  CUSTOM_SANDBOX_IMAGE_ENV_VAR
11
- } from "./chunk-CG2PDIGD.js";
11
+ } from "./chunk-RM244SCQ.js";
12
12
  import {
13
13
  isOwnInterfaceAddress
14
14
  } from "./chunk-24FVUD5P.js";
15
15
  import {
16
16
  serveCommand
17
- } from "./chunk-QLM7D7W3.js";
17
+ } from "./chunk-QFJZAY7W.js";
18
18
  import {
19
19
  OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
20
20
  ObservedChannelContactStore
@@ -58,12 +58,12 @@ import {
58
58
  } from "./chunk-Y53DG2HA.js";
59
59
  import {
60
60
  CLI_VERSION
61
- } from "./chunk-R2266LQ5.js";
61
+ } from "./chunk-4WMGYG3F.js";
62
62
  import {
63
63
  collectProviderModelsForProtocol,
64
64
  getAuthTypeFromEnv,
65
65
  resolveCliGenerationConfig
66
- } from "./chunk-7GZCCHJL.js";
66
+ } from "./chunk-7LTCFO6T.js";
67
67
  import {
68
68
  resolveSkillSettings
69
69
  } from "./chunk-HWVUSYSN.js";
@@ -81,19 +81,20 @@ import {
81
81
  registerPermissionRelay,
82
82
  registerSessionCleanup,
83
83
  registerToolCallDispatch,
84
+ resolveChannelLocale,
84
85
  selectFirstModel,
85
86
  sessionsPath
86
- } from "./chunk-4JKLPTV6.js";
87
+ } from "./chunk-G3ZUMSFS.js";
87
88
  import {
88
89
  getExtensionManager,
89
90
  requestChoicePluginNonInteractive,
90
91
  requestConsentNonInteractive,
91
92
  requestConsentOrFail,
92
93
  resolveExtensionCommandScope
93
- } from "./chunk-ORREXWOM.js";
94
+ } from "./chunk-TODNHE76.js";
94
95
  import {
95
96
  parseChannelConfig
96
- } from "./chunk-UXDVUFKU.js";
97
+ } from "./chunk-ULZECEIP.js";
97
98
  import {
98
99
  findCliEntryPath
99
100
  } from "./chunk-V6WHFGST.js";
@@ -103,7 +104,7 @@ import {
103
104
  clearAccount,
104
105
  loadAccount,
105
106
  saveAccount
106
- } from "./chunk-45ROPFQY.js";
107
+ } from "./chunk-JYGIJA4W.js";
107
108
  import {
108
109
  canonicalizeWorkspace
109
110
  } from "./chunk-6PLDPT2C.js";
@@ -121,7 +122,7 @@ import {
121
122
  import {
122
123
  normalizeWorkerDiagnostic,
123
124
  sanitizeWorkerDiagnostic
124
- } from "./chunk-GM44O6F7.js";
125
+ } from "./chunk-DARWOZY6.js";
125
126
  import {
126
127
  CHANNEL_DAEMON_WORKER_SENTINEL,
127
128
  CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
@@ -145,6 +146,10 @@ import {
145
146
  import {
146
147
  EXTERNAL_TOOL_GUARD_TOKEN_ENV
147
148
  } from "./chunk-3VUENPWF.js";
149
+ import {
150
+ CHANNEL_WORKER_KILL_GRACE_MS,
151
+ CHANNEL_WORKER_STOP_GRACE_MS
152
+ } from "./chunk-TGNNLRC3.js";
148
153
  import {
149
154
  AcpBridge,
150
155
  ChannelLoopScheduler,
@@ -155,26 +160,23 @@ import {
155
160
  isChannelProactiveDeliveryError,
156
161
  sanitizeLogText,
157
162
  sanitizePromptText
158
- } from "./chunk-XVTCSVBK.js";
159
- import {
160
- CHANNEL_WORKER_KILL_GRACE_MS,
161
- CHANNEL_WORKER_STOP_GRACE_MS
162
- } from "./chunk-5HBA2Z7V.js";
163
+ } from "./chunk-WDVV3LRM.js";
163
164
  import {
165
+ pidFilePath,
164
166
  readServiceInfo,
165
167
  removeServiceInfo,
166
168
  signalService,
167
169
  waitForExit,
168
170
  writeServiceInfo
169
- } from "./chunk-X35VIWWJ.js";
171
+ } from "./chunk-NFXXBWSE.js";
170
172
  import {
171
173
  assembleMcpServers,
172
174
  getPendingGatedMcpServers,
173
175
  mcpCommand
174
- } from "./chunk-W7PXLIZJ.js";
176
+ } from "./chunk-RNAJVXUG.js";
175
177
  import {
176
178
  loadSettings
177
- } from "./chunk-Q2F43WTJ.js";
179
+ } from "./chunk-WBU2PIZ5.js";
178
180
  import {
179
181
  detectSystemLanguage,
180
182
  getCurrentLanguage,
@@ -186,7 +188,7 @@ import {
186
188
  import {
187
189
  isFileSourcedEnvKey,
188
190
  loadEnvironment
189
- } from "./chunk-Y6ZWXM44.js";
191
+ } from "./chunk-5BH2AIEY.js";
190
192
  import {
191
193
  resolveAcpChannelFallback,
192
194
  scrubAndReportInheritedLoaderEnv
@@ -196,13 +198,13 @@ import {
196
198
  } from "./chunk-2EAZ43JQ.js";
197
199
  import {
198
200
  getCliVersion
199
- } from "./chunk-ISPBBKJN.js";
201
+ } from "./chunk-MV5DTLJV.js";
200
202
  import {
201
203
  getPackageJson
202
204
  } from "./chunk-W3N5XAZ6.js";
203
205
  import {
204
206
  isWorkspaceTrusted
205
- } from "./chunk-7RXOEUFF.js";
207
+ } from "./chunk-NX7ZTXFF.js";
206
208
  import {
207
209
  require_strip_json_comments
208
210
  } from "./chunk-NPQ5ZKRP.js";
@@ -224,7 +226,7 @@ import {
224
226
  removeChannelMemoryEntries,
225
227
  removePeerController,
226
228
  updateChannelMemoryEntry
227
- } from "./chunk-BL6B2QS2.js";
229
+ } from "./chunk-GOEVQADN.js";
228
230
  import {
229
231
  hideBin,
230
232
  yargs_default
@@ -265,7 +267,7 @@ import {
265
267
  sanitizeFilenameComponent,
266
268
  unquoteCStylePath,
267
269
  updateSetting
268
- } from "./chunk-43CI6YWJ.js";
270
+ } from "./chunk-HJ5UJQQL.js";
269
271
  import {
270
272
  parsePositiveIntegerEnv
271
273
  } from "./chunk-6PVPNMXU.js";
@@ -278,7 +280,10 @@ import {
278
280
  } from "./chunk-TRWQQBVH.js";
279
281
  import {
280
282
  listLiveSessions
281
- } from "./chunk-B44JBZBB.js";
283
+ } from "./chunk-QQK4L3UU.js";
284
+ import {
285
+ isSameProcess
286
+ } from "./chunk-CH2YDT6X.js";
282
287
  import {
283
288
  APPROVAL_MODES
284
289
  } from "./chunk-JX6XHPTX.js";
@@ -295,7 +300,7 @@ import {
295
300
  } from "./chunk-7OCIQNKX.js";
296
301
  import {
297
302
  parseLineTolerant
298
- } from "./chunk-OIPUQE3S.js";
303
+ } from "./chunk-F2NYVASI.js";
299
304
  import {
300
305
  getAllMemoryFilenames,
301
306
  setMemoryFilename
@@ -304,7 +309,7 @@ import {
304
309
  DEFAULT_QWEN_EMBEDDING_MODEL,
305
310
  VERTEX_ADC_HINT,
306
311
  hasVertexProjectConfigured
307
- } from "./chunk-DTB5BXRG.js";
312
+ } from "./chunk-JO77FGNZ.js";
308
313
  import {
309
314
  atomicWriteFileSync
310
315
  } from "./chunk-XFFRI3WM.js";
@@ -2969,6 +2974,10 @@ function channelMemoryOptions(getBridge, cwd) {
2969
2974
  };
2970
2975
  }
2971
2976
  __name(channelMemoryOptions, "channelMemoryOptions");
2977
+ function isUnverifiablePidfileError(err) {
2978
+ return err instanceof Error && err.code === "channel_service_conflict";
2979
+ }
2980
+ __name(isUnverifiablePidfileError, "isUnverifiablePidfileError");
2972
2981
  async function writeServiceInfoOrExit(channels, cleanup) {
2973
2982
  try {
2974
2983
  writeServiceInfo(channels);
@@ -2980,6 +2989,10 @@ async function writeServiceInfoOrExit(channels, cleanup) {
2980
2989
  );
2981
2990
  process.exit(1);
2982
2991
  }
2992
+ if (isUnverifiablePidfileError(err)) {
2993
+ writeStderrLine(`Error: ${err.message}`);
2994
+ process.exit(1);
2995
+ }
2983
2996
  throw err;
2984
2997
  }
2985
2998
  }
@@ -3163,7 +3176,7 @@ function checkDuplicateInstance() {
3163
3176
  }
3164
3177
  }
3165
3178
  __name(checkDuplicateInstance, "checkDuplicateInstance");
3166
- async function startSingle(name, proxy, cronEnabled, displayLanguage) {
3179
+ async function startSingle(name, proxy, cronEnabled, locale, displayLanguage) {
3167
3180
  checkDuplicateInstance();
3168
3181
  const channelsConfig = loadChannelsConfig();
3169
3182
  await loadChannelsFromExtensions();
@@ -3209,6 +3222,7 @@ async function startSingle(name, proxy, cronEnabled, displayLanguage) {
3209
3222
  const loopController = loopStore ? createChannelLoopController(loopStore) : void 0;
3210
3223
  const channels = /* @__PURE__ */ new Map();
3211
3224
  const channel = await createChannel(name, config2, bridge, {
3225
+ locale,
3212
3226
  router,
3213
3227
  proxy,
3214
3228
  ...displayLanguage ? { displayLanguage } : {},
@@ -3299,7 +3313,7 @@ async function startSingle(name, proxy, cronEnabled, displayLanguage) {
3299
3313
  });
3300
3314
  }
3301
3315
  __name(startSingle, "startSingle");
3302
- async function startAll(proxy, cronEnabled, displayLanguage) {
3316
+ async function startAll(proxy, cronEnabled, locale, displayLanguage) {
3303
3317
  checkDuplicateInstance();
3304
3318
  const channelsConfig = loadChannelsConfig();
3305
3319
  await loadChannelsFromExtensions();
@@ -3350,6 +3364,7 @@ async function startAll(proxy, cronEnabled, displayLanguage) {
3350
3364
  channels.set(
3351
3365
  name,
3352
3366
  await createChannel(name, config2, bridge, {
3367
+ locale,
3353
3368
  router,
3354
3369
  proxy,
3355
3370
  ...displayLanguage ? { displayLanguage } : {},
@@ -3474,21 +3489,47 @@ var startCommand = {
3474
3489
  settings.merged.proxy
3475
3490
  );
3476
3491
  const cronEnabled = isChannelCronEnabled(settings);
3492
+ const locale = resolveChannelLocale(settings.merged.general?.language);
3477
3493
  const displayLanguage = resolveLanguage(
3478
3494
  resolveLanguageSetting(
3479
3495
  settings.merged.general?.language
3480
3496
  )
3481
3497
  );
3482
3498
  if (argv.name) {
3483
- await startSingle(argv.name, proxy, cronEnabled, displayLanguage);
3499
+ await startSingle(argv.name, proxy, cronEnabled, locale, displayLanguage);
3484
3500
  } else {
3485
- await startAll(proxy, cronEnabled, displayLanguage);
3501
+ await startAll(proxy, cronEnabled, locale, displayLanguage);
3486
3502
  }
3487
3503
  }, "handler")
3488
3504
  };
3489
3505
 
3490
3506
  // packages/cli/src/commands/channel/stop.ts
3491
3507
  init_esbuild_shims();
3508
+ function reportUnstoppableService(info, outcome) {
3509
+ const filePath = pidFilePath();
3510
+ if (outcome === "not-permitted") {
3511
+ writeStderrLine(
3512
+ `Permission denied signalling the service (PID ${info.pid}); it may be owned by another user sharing this home. Stop it as that user \u2014 once the process is gone, the record at ${filePath} is swept on the next read.`
3513
+ );
3514
+ return;
3515
+ }
3516
+ if (info.procStart == null) {
3517
+ writeStderrLine(
3518
+ `Could not stop PID ${info.pid}, and the record carries no process token, so this command cannot confirm it is the channel service. If no channel service is running, delete ${filePath} and start again.`
3519
+ );
3520
+ return;
3521
+ }
3522
+ if (outcome === "sent") {
3523
+ writeStderrLine(
3524
+ `Service is still running after SIGKILL; its record at ${filePath} was left in place.`
3525
+ );
3526
+ return;
3527
+ }
3528
+ writeStderrLine(
3529
+ `Failed to signal the service and could not re-verify its process token; its record at ${filePath} was left in place.`
3530
+ );
3531
+ }
3532
+ __name(reportUnstoppableService, "reportUnstoppableService");
3492
3533
  var stopCommand = {
3493
3534
  command: "stop",
3494
3535
  describe: "Stop the running channel service",
@@ -3503,7 +3544,7 @@ var stopCommand = {
3503
3544
  if (argv["daemon-url"]) {
3504
3545
  const token = argv.token ?? process.env[QWEN_SERVER_TOKEN_ENV] ?? process.env[QWEN_DAEMON_TOKEN_ENV];
3505
3546
  try {
3506
- const sdk = await import("./daemon-UI6SQSBV.js");
3547
+ const sdk = await import("./daemon-2CKIAO3I.js");
3507
3548
  const client = new sdk.DaemonClient({
3508
3549
  baseUrl: argv["daemon-url"],
3509
3550
  ...token ? { token } : {}
@@ -3535,25 +3576,34 @@ var stopCommand = {
3535
3576
  process.exit(1);
3536
3577
  }
3537
3578
  writeStdoutLine(`Stopping channel service (PID ${info.pid})...`);
3538
- if (!signalService(info.pid, "SIGTERM")) {
3579
+ const outcome = signalService(info.pid, "SIGTERM", info.procStart);
3580
+ if (outcome !== "sent") {
3581
+ if (isSameProcess(info.pid, info.procStart)) {
3582
+ reportUnstoppableService(info, outcome);
3583
+ process.exit(1);
3584
+ }
3539
3585
  writeStderrLine(
3540
3586
  "Failed to send signal \u2014 process may have already exited."
3541
3587
  );
3542
- removeServiceInfo();
3588
+ removeServiceInfo(info);
3543
3589
  process.exit(0);
3544
3590
  }
3545
- const exited = await waitForExit(info.pid, 5e3);
3591
+ const exited = await waitForExit(info.pid, 5e3, 200, info.procStart);
3546
3592
  if (exited) {
3547
- removeServiceInfo();
3593
+ removeServiceInfo(info);
3548
3594
  writeStdoutLine("Service stopped.");
3549
3595
  } else {
3550
3596
  writeStderrLine(
3551
3597
  "Service did not exit within 5 seconds. Sending SIGKILL..."
3552
3598
  );
3553
- signalService(info.pid, "SIGKILL");
3554
- await waitForExit(info.pid, 2e3);
3555
- removeServiceInfo();
3556
- writeStdoutLine("Service killed.");
3599
+ const killOutcome = signalService(info.pid, "SIGKILL", info.procStart);
3600
+ if (await waitForExit(info.pid, 2e3, 200, info.procStart)) {
3601
+ removeServiceInfo(info);
3602
+ writeStdoutLine("Service killed.");
3603
+ } else {
3604
+ reportUnstoppableService(info, killOutcome);
3605
+ process.exit(1);
3606
+ }
3557
3607
  }
3558
3608
  process.exit(0);
3559
3609
  }, "handler")
@@ -3689,7 +3739,7 @@ var statusCommand = {
3689
3739
  if (argv["daemon-url"]) {
3690
3740
  const token = argv.token ?? process.env[QWEN_SERVER_TOKEN_ENV] ?? process.env[QWEN_DAEMON_TOKEN_ENV];
3691
3741
  try {
3692
- const sdk = await import("./daemon-UI6SQSBV.js");
3742
+ const sdk = await import("./daemon-2CKIAO3I.js");
3693
3743
  const client = new sdk.DaemonClient({
3694
3744
  baseUrl: argv["daemon-url"],
3695
3745
  ...token ? { token } : {}
@@ -3800,7 +3850,7 @@ var reloadCommand = {
3800
3850
  const token = resolveToken(argv.token);
3801
3851
  let sdk;
3802
3852
  try {
3803
- sdk = await import("./daemon-UI6SQSBV.js");
3853
+ sdk = await import("./daemon-2CKIAO3I.js");
3804
3854
  } catch (err) {
3805
3855
  writeStderrLine(
3806
3856
  `[Channel] Failed to load daemon SDK: ${safeChannelCommandErrorMessage(err)}`
@@ -3880,7 +3930,7 @@ var setCommand2 = {
3880
3930
  const selection = names[0] === "all" ? { mode: "all" } : { mode: "names", names };
3881
3931
  let sdk;
3882
3932
  try {
3883
- sdk = await import("./daemon-UI6SQSBV.js");
3933
+ sdk = await import("./daemon-2CKIAO3I.js");
3884
3934
  } catch (error) {
3885
3935
  writeStderrLine(
3886
3936
  `[Channel] Failed to load daemon SDK: ${safeChannelCommandErrorMessage(error)}`
@@ -4038,7 +4088,7 @@ function createDaemonChannelBridgeFacade(bridge, opts) {
4038
4088
  }
4039
4089
  __name(createDaemonChannelBridgeFacade, "createDaemonChannelBridgeFacade");
4040
4090
  async function loadDaemonSdk() {
4041
- return await import("./daemon-UI6SQSBV.js");
4091
+ return await import("./daemon-2CKIAO3I.js");
4042
4092
  }
4043
4093
  __name(loadDaemonSdk, "loadDaemonSdk");
4044
4094
  function selectedChannelNames(channelsConfig, selection) {
@@ -4195,6 +4245,7 @@ async function runChannelDaemonWorker(opts) {
4195
4245
  void 0,
4196
4246
  settings.merged.proxy
4197
4247
  );
4248
+ const locale = resolveChannelLocale(settings.merged.general?.language);
4198
4249
  const displayLanguage = resolveLanguage(
4199
4250
  resolveLanguageSetting(
4200
4251
  settings.merged.general?.language
@@ -4311,6 +4362,7 @@ async function runChannelDaemonWorker(opts) {
4311
4362
  name,
4312
4363
  await abortableStartup(
4313
4364
  createChannel(name, config2, bridgeFacade, {
4365
+ locale,
4314
4366
  ...proxy ? { proxy } : {},
4315
4367
  ...displayLanguage ? { displayLanguage } : {},
4316
4368
  router: createdRouter,
@@ -6704,6 +6756,7 @@ function filterCommandsIn(commonDir, gitDir) {
6704
6756
  }
6705
6757
  const filters = /* @__PURE__ */ new Set();
6706
6758
  const unread = /* @__PURE__ */ new Set();
6759
+ const dangling = /* @__PURE__ */ new Set();
6707
6760
  const visited = /* @__PURE__ */ new Set();
6708
6761
  const read = /* @__PURE__ */ __name((file) => {
6709
6762
  const r = spawnSync2(
@@ -6737,12 +6790,17 @@ function filterCommandsIn(commonDir, gitDir) {
6737
6790
  const visit = /* @__PURE__ */ __name((file, depth, via) => {
6738
6791
  let real;
6739
6792
  try {
6740
- real = realpathSync3(file);
6741
- } catch {
6793
+ real = realpathSync3.native(file);
6794
+ } catch (e) {
6742
6795
  if (via !== null) {
6743
- unread.add(
6744
- `${via} -> ${file} (missing \u2014 git ignores a dangling include; this screen refuses it)`
6745
- );
6796
+ const code2 = e?.code;
6797
+ if (code2 === "ENOENT") {
6798
+ dangling.add(`${via} -> ${file} (missing \u2014 git ignores it)`);
6799
+ } else {
6800
+ unread.add(
6801
+ `${via} -> ${file} (could not be resolved: ${code2 ?? "unknown"} \u2014 not screened)`
6802
+ );
6803
+ }
6746
6804
  }
6747
6805
  return;
6748
6806
  }
@@ -6784,20 +6842,24 @@ function filterCommandsIn(commonDir, gitDir) {
6784
6842
  }
6785
6843
  let target;
6786
6844
  if (value.startsWith("~/")) {
6787
- target = join7(process.env["HOME"] || homedir(), value.slice(2));
6845
+ target = `${process.env["HOME"] || homedir()}${sep3}${value.slice(2)}`;
6788
6846
  } else if (value.startsWith("~")) {
6789
6847
  unread.add(
6790
6848
  `${key} -> ${value} (another user's home \u2014 not resolved here)`
6791
6849
  );
6792
6850
  continue;
6793
6851
  } else {
6794
- target = resolve4(dirname3(file), value);
6852
+ target = isAbsolute3(value) ? value : `${dirname3(file)}${sep3}${value}`;
6795
6853
  }
6796
6854
  visit(target, depth + 1, `${key} (in ${file})`);
6797
6855
  }
6798
6856
  }, "visit");
6799
6857
  for (const candidate of candidates) visit(candidate, 0, null);
6800
- return { filters: [...filters], unread: [...unread] };
6858
+ return {
6859
+ filters: [...filters],
6860
+ unread: [...unread],
6861
+ dangling: [...dangling]
6862
+ };
6801
6863
  }
6802
6864
  __name(filterCommandsIn, "filterCommandsIn");
6803
6865
  function describeFilterScreen(hits) {
@@ -6830,7 +6892,8 @@ function filterBlankEnv(filterKeys) {
6830
6892
  return env;
6831
6893
  }
6832
6894
  __name(filterBlankEnv, "filterBlankEnv");
6833
- function localFilterCommands(worktree) {
6895
+ var UNRESOLVED_REPO = "the repository's git directories could not be resolved (git rev-parse failed) \u2014 not screened";
6896
+ function screenForTree(worktree) {
6834
6897
  const discover = /* @__PURE__ */ __name((flag) => {
6835
6898
  const r = spawnSync2("git", ["rev-parse", "--path-format=absolute", flag], {
6836
6899
  cwd: worktree,
@@ -6844,15 +6907,22 @@ function localFilterCommands(worktree) {
6844
6907
  }, "discover");
6845
6908
  const commonDir = discover("--git-common-dir");
6846
6909
  const gitDir = discover("--git-dir");
6847
- if (commonDir === null || gitDir === null) {
6848
- return [
6849
- "the repository's git directories could not be resolved (git rev-parse failed) \u2014 not screened"
6850
- ];
6851
- }
6852
- const screen = filterCommandsIn(commonDir, gitDir);
6853
- return [...screen.filters, ...screen.unread];
6910
+ if (commonDir === null || gitDir === null) return null;
6911
+ return filterCommandsIn(commonDir, gitDir);
6912
+ }
6913
+ __name(screenForTree, "screenForTree");
6914
+ function localFilterCommands(worktree) {
6915
+ const screen = screenForTree(worktree);
6916
+ if (screen === null) return [UNRESOLVED_REPO];
6917
+ return [...screen.filters, ...screen.unread, ...screen.dangling];
6854
6918
  }
6855
6919
  __name(localFilterCommands, "localFilterCommands");
6920
+ function checkoutFilterCommands(worktree) {
6921
+ const screen = screenForTree(worktree);
6922
+ if (screen === null) return [UNRESOLVED_REPO];
6923
+ return [...screen.filters, ...screen.unread];
6924
+ }
6925
+ __name(checkoutFilterCommands, "checkoutFilterCommands");
6856
6926
  function discardWorktree(cwd, tree) {
6857
6927
  let symlink = false;
6858
6928
  try {
@@ -7118,11 +7188,12 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
7118
7188
  }
7119
7189
  }
7120
7190
  const screen = filterCommandsIn(commonDir, realpathSync3(gitDir));
7121
- if (screen.unread.length > 0) {
7191
+ const notReadToTheBottom = [...screen.unread, ...screen.dangling];
7192
+ if (notReadToTheBottom.length > 0) {
7122
7193
  return {
7123
7194
  paths: [],
7124
7195
  total: 0,
7125
- unmeasured: `the residue measurement would run under repo-local config this screen could not read to the bottom: ${describeFilterScreen(screen.unread)} \u2014 a content filter reached that way would execute on the index refresh, and a filter the screen cannot see it cannot blank; remove the include, or the file it names, if it is not yours`
7196
+ unmeasured: `the residue measurement would run under repo-local config this screen could not read to the bottom: ${describeFilterScreen(notReadToTheBottom)} \u2014 a content filter reached that way would execute on the index refresh, and a filter the screen cannot see it cannot blank; remove the include, or the file it names, if it is not yours`
7126
7197
  };
7127
7198
  }
7128
7199
  filterBlanks = filterBlankEnv(screen.filters);
@@ -39191,6 +39262,16 @@ function classifyProbeRun(exitCode, stdout, probes, stderr = "") {
39191
39262
  });
39192
39263
  }
39193
39264
  __name(classifyProbeRun, "classifyProbeRun");
39265
+ var CHECKOUT_INERT = [
39266
+ "-c",
39267
+ "core.hooksPath=/dev/null/no-hooks",
39268
+ "-c",
39269
+ "core.fsmonitor="
39270
+ ];
39271
+ function filterScreenRefusal(hits, rewrite) {
39272
+ return `the repository's local config defines content filter(s), or includes config this screen could not read to the bottom: ${describeFilterScreen(hits.map(inertPath))} \u2014 ${rewrite}`;
39273
+ }
39274
+ __name(filterScreenRefusal, "filterScreenRefusal");
39194
39275
  function git4(cwd, ...args) {
39195
39276
  const r = spawnSync10("git", args, {
39196
39277
  cwd,
@@ -39366,14 +39447,15 @@ function restoreProbeTreeTracked(probeTree) {
39366
39447
  } catch (e) {
39367
39448
  return e instanceof Error ? e.message : String(e);
39368
39449
  }
39369
- const inert = [
39370
- "-c",
39371
- "core.hooksPath=/dev/null/no-hooks",
39372
- "-c",
39373
- "core.fsmonitor="
39374
- ];
39450
+ const filters = checkoutFilterCommands(probeTree);
39451
+ if (filters.length > 0) {
39452
+ return filterScreenRefusal(
39453
+ filters,
39454
+ "this tree's restore would EXECUTE them"
39455
+ );
39456
+ }
39375
39457
  for (const args of [
39376
- [...inert, "checkout", "--force", "HEAD", "--", "."],
39458
+ [...CHECKOUT_INERT, "checkout", "--force", "HEAD", "--", "."],
39377
39459
  // `-ffdx`, because `-fd` honors the ignore rules — and those belong to the
39378
39460
  // commit under test, so a plant named to match one of them (a committed
39379
39461
  // `.gitignore` line and a file to match it) survived every restore. The
@@ -39381,7 +39463,7 @@ function restoreProbeTreeTracked(probeTree) {
39381
39463
  // rather than built, and it is the only ignored thing in this tree the
39382
39464
  // probes cannot run without. Everything else ignored — a built `dist`, a
39383
39465
  // planted config — goes.
39384
- [...inert, "clean", "-ffdx", "-e", "node_modules"]
39466
+ [...CHECKOUT_INERT, "clean", "-ffdx", "-e", "node_modules"]
39385
39467
  ]) {
39386
39468
  const r = spawnSync10("git", args, {
39387
39469
  cwd: probeTree,
@@ -39390,7 +39472,9 @@ function restoreProbeTreeTracked(probeTree) {
39390
39472
  });
39391
39473
  if (r.error) return r.error.message;
39392
39474
  if (r.status !== 0) {
39393
- return (r.stderr ?? "").toString().trim() || `git ${args[2]} exited ${r.status}`;
39475
+ return (r.stderr ?? "").toString().trim() || // The subcommand, not `args[2]`: that index is a `-c` from the inert
39476
+ // pair, so the message read "git -c exited 1" and named nothing.
39477
+ `git ${args[CHECKOUT_INERT.length]} exited ${r.status}`;
39394
39478
  }
39395
39479
  }
39396
39480
  const bits = spawnSync10(
@@ -39630,6 +39714,17 @@ function runOneHunkProbe(probeTree, hunk, probes, deadlineAt, now = Date.now, de
39630
39714
  detail: "the probe target was relinked through a symlink before the reverse patch applied \u2014 nothing was neutralised"
39631
39715
  };
39632
39716
  }
39717
+ const applyFilters = checkoutFilterCommands(probeTree);
39718
+ if (applyFilters.length > 0) {
39719
+ return {
39720
+ ...meta,
39721
+ verdict: "inconclusive",
39722
+ detail: filterScreenRefusal(
39723
+ applyFilters,
39724
+ "this reverse-apply would EXECUTE them"
39725
+ )
39726
+ };
39727
+ }
39633
39728
  const applied = spawnSync10("git", ["apply", "--reverse", "-"], {
39634
39729
  cwd: probeTree,
39635
39730
  input: hunk.patch,
@@ -39937,8 +40032,25 @@ async function runTestEfficacy(args) {
39937
40032
  let created = false;
39938
40033
  let sweep;
39939
40034
  try {
40035
+ const creationFilters = checkoutFilterCommands(worktree);
40036
+ if (creationFilters.length > 0) {
40037
+ throw new Error(
40038
+ filterScreenRefusal(
40039
+ creationFilters,
40040
+ "creating the probe tree would EXECUTE them"
40041
+ )
40042
+ );
40043
+ }
39940
40044
  sweep = discardWorktree(worktree, probeTree);
39941
- git4(worktree, "worktree", "add", "--detach", probeTree, headSha);
40045
+ git4(
40046
+ worktree,
40047
+ ...CHECKOUT_INERT,
40048
+ "worktree",
40049
+ "add",
40050
+ "--detach",
40051
+ probeTree,
40052
+ headSha
40053
+ );
39942
40054
  created = true;
39943
40055
  } catch (e) {
39944
40056
  const detail = worktreeCreateFailureDetail(
@@ -40027,7 +40139,7 @@ async function runTestEfficacy(args) {
40027
40139
  );
40028
40140
  if (harnessValidated === null) {
40029
40141
  noteMutants(
40030
- `the positive control could not be set up (${greenProbes[0]} could not be read in the probe tree), so the harness was NOT validated this run \u2014 read every survivor below as unconfirmed by a control`
40142
+ `the positive control could not be set up (the probe target was relinked, the probe tree could not be restored, or ${greenProbes[0]} could not be read in it), so the harness was NOT validated this run \u2014 read every survivor below as unconfirmed by a control`
40031
40143
  );
40032
40144
  }
40033
40145
  }
@@ -40133,7 +40245,23 @@ async function runTestEfficacy(args) {
40133
40245
  (existsAtBase(probeTree, base, p) ? modified : added).push(p);
40134
40246
  }
40135
40247
  if (modified.length > 0) {
40136
- git4(probeTree, "checkout", base, "--", ...modified);
40248
+ const revertFilters = checkoutFilterCommands(probeTree);
40249
+ if (revertFilters.length > 0) {
40250
+ throw new Error(
40251
+ filterScreenRefusal(
40252
+ revertFilters,
40253
+ "this revert's checkout would EXECUTE them"
40254
+ )
40255
+ );
40256
+ }
40257
+ git4(
40258
+ probeTree,
40259
+ ...CHECKOUT_INERT,
40260
+ "checkout",
40261
+ base,
40262
+ "--",
40263
+ ...modified
40264
+ );
40137
40265
  }
40138
40266
  for (const p of added) safeRmWithin(probeTree, p);
40139
40267
  const collectable = probes.filter(
@@ -43565,10 +43693,10 @@ var updateCommand3 = {
43565
43693
  stdioHelpers,
43566
43694
  { updateEventEmitter }
43567
43695
  ] = await Promise.all([
43568
- import("./settings-RKEQQDFC.js"),
43569
- import("./updateCheck-EIZIO7HI.js"),
43570
- import("./installationInfo-Y52756EC.js"),
43571
- import("./standalone-update-E5474IBI.js"),
43696
+ import("./settings-D44YMZFT.js"),
43697
+ import("./updateCheck-CHUYWD6L.js"),
43698
+ import("./installationInfo-LBOL6SBV.js"),
43699
+ import("./standalone-update-QUGHFMCS.js"),
43572
43700
  import("./stdioHelpers-AY6XCDY2.js"),
43573
43701
  import("./updateEventEmitter-5MKC7BLQ.js")
43574
43702
  ]);
@@ -44672,7 +44800,7 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
44672
44800
  disabledSkillNamesProvider: bareMode || safeMode ? void 0 : disabledSkillNamesProvider,
44673
44801
  enabledSkillNamesProvider: bareMode || safeMode ? void 0 : enabledSkillNamesProvider,
44674
44802
  terminalImageRenderSupportProvider: interactive ? async () => {
44675
- const { getTerminalImageRenderSupport } = await import("./terminal-image-renderer-LUKNCOVM.js");
44803
+ const { getTerminalImageRenderSupport } = await import("./terminal-image-renderer-YNYW5CQG.js");
44676
44804
  return getTerminalImageRenderSupport();
44677
44805
  } : void 0,
44678
44806
  disabledSkillLevels: bareMode || safeMode || !Array.isArray(settings.skills?.disabledLevels) ? void 0 : settings.skills.disabledLevels.filter(isSkillLevel),
@@ -44830,7 +44958,9 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
44830
44958
  memoryAgentTimeoutMinutes: settings.memory?.agentTimeoutMinutes,
44831
44959
  memoryAgentMaxTurns: settings.memory?.agentMaxTurns,
44832
44960
  fastModel: settings.fastModel || void 0,
44833
- webSearch: bareMode || safeMode ? void 0 : resolveWebSearchSettings(settings),
44961
+ // Bare and safe mode must switch the tool off explicitly: `undefined`
44962
+ // means "derive it" now that WebSearch is opt-out.
44963
+ webSearch: bareMode || safeMode ? { enabled: false } : resolveWebSearchSettings(settings),
44834
44964
  visionModel: settings.visionModel || void 0,
44835
44965
  compactionModel: settings.compactionModel || void 0,
44836
44966
  imageModel: settings.imageModel || void 0,