@qwen-code/qwen-code 0.21.2 → 0.21.3

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 (351) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +41 -38
  2. package/bundled/qc-helper/docs/features/channels/github.md +7 -0
  3. package/bundled/qc-helper/docs/features/channels/gitlab.md +6 -0
  4. package/bundled/qc-helper/docs/features/code-review.md +78 -23
  5. package/bundled/qc-helper/docs/features/commands.md +2 -0
  6. package/bundled/qc-helper/docs/features/hooks.md +115 -18
  7. package/bundled/qc-helper/docs/features/memory.md +27 -0
  8. package/bundled/qc-helper/docs/features/skills.md +46 -1
  9. package/bundled/qc-helper/docs/features/sub-agents.md +42 -9
  10. package/bundled/qc-helper/docs/features/tool-use-summaries.md +7 -7
  11. package/bundled/qc-helper/docs/qwen-serve.md +21 -1
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +13 -13
  13. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -1
  14. package/bundled/review/DESIGN.md +167 -32
  15. package/bundled/review/SKILL.md +156 -32
  16. package/chunks/{MaxSizedBox-TQBQ247P.js → MaxSizedBox-OJR636GP.js} +40 -38
  17. package/chunks/{StandaloneSessionPicker-2HPTKCLX.js → StandaloneSessionPicker-AMMBF5UY.js} +62 -59
  18. package/chunks/{acp-startup-profiler-2C4A5ZTJ.js → acp-startup-profiler-3RICG2YW.js} +2 -2
  19. package/chunks/{acpAgent-PS6EDGH3.js → acpAgent-M57LVIQA.js} +662 -560
  20. package/chunks/{agent-VDOUB35F.js → agent-PE37ARLM.js} +36 -34
  21. package/chunks/{agent-headless-EO53EFS2.js → agent-headless-45ASME4R.js} +36 -34
  22. package/chunks/{anthropicContentGenerator-OFHSZJBF.js → anthropicContentGenerator-WCBYB6JG.js} +337 -27
  23. package/chunks/{artifact-tool-RDN2W7ND.js → artifact-tool-TBOYEKTY.js} +2 -2
  24. package/chunks/{askUserQuestion-OZERWH5R.js → askUserQuestion-23Y5WZFJ.js} +2 -2
  25. package/chunks/{bridge-W7AZSRZQ.js → bridge-K3ZRPO4D.js} +42 -40
  26. package/chunks/{ca-6W3SK7OQ.js → ca-4OJN75WT.js} +46 -5
  27. package/chunks/{channel-management-service-5S7YCWX5.js → channel-management-service-IXJ2MZTS.js} +7 -7
  28. package/chunks/{channel-settings-store-JFVRSNER.js → channel-settings-store-PEAR3IME.js} +43 -41
  29. package/chunks/{channel-worker-group-OVWGYMZS.js → channel-worker-group-NDG4WOOZ.js} +8 -8
  30. package/chunks/{channel-worker-manager-H55GKOQA.js → channel-worker-manager-ZCW6UW34.js} +8 -8
  31. package/chunks/{channel-worker-supervisor-CABBXYHK.js → channel-worker-supervisor-ATGFTZRN.js} +4 -4
  32. package/chunks/{chunk-W3UKBMSI.js → chunk-22YFMJBW.js} +84 -8
  33. package/chunks/{chunk-6MPDY6ZG.js → chunk-24ER7UV4.js} +1 -1
  34. package/chunks/{chunk-QDK4F2N5.js → chunk-2DNKEBXY.js} +1 -1
  35. package/chunks/{chunk-D6MDRSZ6.js → chunk-2LZCLQIS.js} +22 -11
  36. package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
  37. package/chunks/{chunk-KR32NIAN.js → chunk-2MI7ZTRT.js} +10 -10
  38. package/chunks/{chunk-LHKCY7DY.js → chunk-2UISUFHQ.js} +3 -3
  39. package/chunks/{chunk-JXVC2PL3.js → chunk-33FNCQSY.js} +2 -2
  40. package/chunks/{chunk-NBD76HUW.js → chunk-3LGZEYOF.js} +2 -2
  41. package/chunks/{chunk-CO2U743O.js → chunk-3MWNROHB.js} +4 -4
  42. package/chunks/{chunk-E2BHWIDT.js → chunk-3RXUYQJI.js} +6 -2
  43. package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
  44. package/chunks/{chunk-LYI2PZDK.js → chunk-3XF4WT3B.js} +2 -2
  45. package/chunks/{chunk-N4ACHWNH.js → chunk-432XCUHF.js} +1 -1
  46. package/chunks/{chunk-FNDXMN7I.js → chunk-4AGGSHCH.js} +774 -205
  47. package/chunks/{chunk-DUNI4EBW.js → chunk-4K3RV3OA.js} +80 -50
  48. package/chunks/{chunk-L2E5GFAG.js → chunk-4LKVQFHM.js} +2 -2
  49. package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
  50. package/chunks/{chunk-JLZ3RBQG.js → chunk-5JPVOYWA.js} +144 -11
  51. package/chunks/{chunk-6TAASXWL.js → chunk-5VYFXHY2.js} +3 -3
  52. package/chunks/{chunk-EU5TBFJI.js → chunk-6NE5NTHJ.js} +2 -2
  53. package/chunks/{chunk-XQK4XXTN.js → chunk-6O5DVH27.js} +1 -1
  54. package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
  55. package/chunks/{chunk-3APUUXRF.js → chunk-A5YZ3FA2.js} +2 -1
  56. package/chunks/{chunk-SHN4KHDK.js → chunk-A6SX5TAH.js} +3 -3
  57. package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
  58. package/chunks/{chunk-Q3T5KA2V.js → chunk-BFHXDAR7.js} +1 -1
  59. package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
  60. package/chunks/{chunk-P5VC5USY.js → chunk-BKGA75MU.js} +1 -1
  61. package/chunks/{chunk-2KKCCLPT.js → chunk-BKXTHMOZ.js} +1 -1
  62. package/chunks/{chunk-V4XNUDPE.js → chunk-BSKUTHLO.js} +15 -7
  63. package/chunks/{chunk-MM7TH7ZM.js → chunk-CFDR3GNL.js} +18 -3
  64. package/chunks/{chunk-E2FN6SM7.js → chunk-CIUUYB23.js} +5 -5
  65. package/chunks/{chunk-A7Y5H4TX.js → chunk-D2GPKXCQ.js} +7 -7
  66. package/chunks/{chunk-JCJ7LKNA.js → chunk-DIEFUBV6.js} +1644 -1570
  67. package/chunks/{chunk-GL4JOZXU.js → chunk-DSGJLHM3.js} +4 -4
  68. package/chunks/{chunk-675H6PLP.js → chunk-DYA25Y7U.js} +1 -1
  69. package/chunks/{chunk-3I6DUGQD.js → chunk-E4WHKETF.js} +32 -4
  70. package/chunks/{chunk-CU47KXB5.js → chunk-EGYJRIDF.js} +6 -6
  71. package/chunks/{chunk-6CQWRWUC.js → chunk-EIMKVOSF.js} +3 -3
  72. package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
  73. package/chunks/{chunk-NHFEMWAZ.js → chunk-FF75UUB2.js} +1 -1
  74. package/chunks/{chunk-L32VV3ZJ.js → chunk-FG63DZQA.js} +12 -12
  75. package/chunks/{chunk-FCYYAB4S.js → chunk-FHPKHXHT.js} +3 -3
  76. package/chunks/{chunk-GJ2GBPBD.js → chunk-FXVHVCNA.js} +5 -5
  77. package/chunks/{chunk-56Z7QEAQ.js → chunk-GMSBXEH4.js} +16 -16
  78. package/chunks/chunk-GOFAQQZA.js +132 -0
  79. package/chunks/{chunk-YUFIEIWC.js → chunk-GTM6IHBB.js} +2 -2
  80. package/chunks/{chunk-HIVKI6O6.js → chunk-H35Q5CEG.js} +9 -7
  81. package/chunks/{chunk-FJ5WUMUQ.js → chunk-H36SETQS.js} +1 -1
  82. package/chunks/{chunk-AUOULH6Q.js → chunk-H6FIBBXK.js} +1610 -2196
  83. package/chunks/{chunk-VEMNQMHA.js → chunk-H6ZYP74A.js} +5 -13
  84. package/chunks/{chunk-TTJZAIFP.js → chunk-HEBW74ZW.js} +3 -3
  85. package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
  86. package/chunks/{chunk-44F4LBWZ.js → chunk-HIXVWF7I.js} +56 -18
  87. package/chunks/{chunk-EQNUDTL6.js → chunk-HUIQ4FYC.js} +2 -2
  88. package/chunks/{chunk-5NNHICSA.js → chunk-I7JDGNG6.js} +3 -3
  89. package/chunks/{chunk-PVNQRENX.js → chunk-IF6K42YJ.js} +1 -1
  90. package/chunks/{chunk-PJOHNFIY.js → chunk-IWGTGH4G.js} +5 -5
  91. package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
  92. package/chunks/{chunk-CNTR4GR6.js → chunk-JELIWHXD.js} +1 -1
  93. package/chunks/{chunk-V25K5ID7.js → chunk-K2J5JZ6B.js} +1 -1
  94. package/chunks/{chunk-IGTHU3T4.js → chunk-KKN2IE7Q.js} +1 -1
  95. package/chunks/{chunk-TZTAV5RH.js → chunk-KVUBYJDM.js} +2 -2
  96. package/chunks/{chunk-3F2WDAV6.js → chunk-KXWERR6P.js} +14 -14
  97. package/chunks/{chunk-JJPKFJBT.js → chunk-L7FTDKCD.js} +3 -3
  98. package/chunks/chunk-LBOVL47Y.js +29 -0
  99. package/chunks/{chunk-FS674JW4.js → chunk-LBWNSLJK.js} +3 -3
  100. package/chunks/{chunk-I5BT7ADR.js → chunk-LGT3YMLN.js} +4 -4
  101. package/chunks/{chunk-UV6KF7T3.js → chunk-LZV2BZPL.js} +3 -3
  102. package/chunks/{chunk-P755N4CS.js → chunk-M5LIY7Y6.js} +6 -6
  103. package/chunks/{chunk-YGE3IXJP.js → chunk-M744OFVE.js} +1 -1
  104. package/chunks/{chunk-NTDH4IML.js → chunk-MCXMWLFT.js} +7 -7
  105. package/chunks/chunk-MISUEWB4.js +8749 -0
  106. package/chunks/{chunk-TEGJSJDF.js → chunk-MOHAWIAW.js} +2 -2
  107. package/chunks/{chunk-KXDONCPU.js → chunk-MTR4JWQJ.js} +4 -4
  108. package/chunks/{chunk-RSVPYAGK.js → chunk-MUEJ4R3E.js} +5 -5
  109. package/chunks/{chunk-PCK4B6LR.js → chunk-N42C2FU3.js} +1 -1
  110. package/chunks/{chunk-WWCMSZII.js → chunk-NW57GHNL.js} +71 -7
  111. package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
  112. package/chunks/{chunk-QARJNL2V.js → chunk-O2ZYHG33.js} +5 -4
  113. package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
  114. package/chunks/{chunk-GURGAJTX.js → chunk-PDDYAXL2.js} +4 -1
  115. package/chunks/chunk-PWCQRLM5.js +1170 -0
  116. package/chunks/{chunk-VMX5RZQH.js → chunk-Q3G5L5KF.js} +18 -9
  117. package/chunks/{chunk-DQ2O5QOJ.js → chunk-QDWLUXKP.js} +1 -1
  118. package/chunks/chunk-QL4TN4HS.js +59 -0
  119. package/chunks/{chunk-E6CJ2SMM.js → chunk-QMBEW7EW.js} +2 -2
  120. package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
  121. package/chunks/{chunk-DEEABGH2.js → chunk-QPSYIV2O.js} +3320 -536
  122. package/chunks/{chunk-Q5WZTTWE.js → chunk-QWDVZH24.js} +6 -8
  123. package/chunks/{chunk-2LEOZTBT.js → chunk-QWW6I2UO.js} +111 -26
  124. package/chunks/{chunk-LOY7RWQG.js → chunk-QYPT3QUD.js} +3 -3
  125. package/chunks/{chunk-6PQPKTXP.js → chunk-R7XNRHYD.js} +1 -1
  126. package/chunks/{chunk-7SJN2IWT.js → chunk-RCXCGZG6.js} +5 -5
  127. package/chunks/{chunk-HX6RLYUO.js → chunk-RL6J3BPE.js} +4 -4
  128. package/chunks/{chunk-Z3S5EMOW.js → chunk-RPYYTL7E.js} +60 -12
  129. package/chunks/{chunk-MB32MS4U.js → chunk-RR224BUP.js} +215 -174
  130. package/chunks/{chunk-H6I4PGRV.js → chunk-SKSF3LGQ.js} +4 -4
  131. package/chunks/{chunk-77V3VIKL.js → chunk-SQ3YD5MI.js} +9 -9
  132. package/chunks/{chunk-CBBP4BMC.js → chunk-SRY26X4H.js} +72 -206
  133. package/chunks/{chunk-RDJOB6S3.js → chunk-TXABHVZD.js} +1 -1
  134. package/chunks/{chunk-R2XWGR75.js → chunk-TYERNYH4.js} +2 -2
  135. package/chunks/chunk-TZTBZ25J.js +222 -0
  136. package/chunks/{chunk-45IOTAUS.js → chunk-U25CMJYY.js} +1 -1
  137. package/chunks/{chunk-7ULQIS27.js → chunk-UEJESCS7.js} +1 -1
  138. package/chunks/{chunk-HC45LTEN.js → chunk-UH7Z7Y45.js} +1 -1
  139. package/chunks/{chunk-CPZAH673.js → chunk-UKZEXS6K.js} +2 -0
  140. package/chunks/{chunk-54YCNSK5.js → chunk-UQDFEU47.js} +4113 -10152
  141. package/chunks/{chunk-XP4L6KS3.js → chunk-URN76TKR.js} +2 -2
  142. package/chunks/{chunk-XUGZYLDH.js → chunk-UWSXFI6E.js} +1 -1
  143. package/chunks/{chunk-AOHY3QJ3.js → chunk-VA5NLVPT.js} +3 -3
  144. package/chunks/{chunk-PZEXDV3H.js → chunk-VUNRNRN6.js} +71 -43
  145. package/chunks/{chunk-FANRZEAJ.js → chunk-VWOVHOTT.js} +1 -1
  146. package/chunks/{chunk-QTHQ6Z5X.js → chunk-WK4TJUEA.js} +1 -1
  147. package/chunks/{chunk-ZPZ7ZJEE.js → chunk-WUC6ZFXO.js} +1 -1
  148. package/chunks/{chunk-7KAXXBER.js → chunk-WY2ENRDN.js} +3 -3
  149. package/chunks/{chunk-TIRRPCFS.js → chunk-X6QNZOTC.js} +1 -1
  150. package/chunks/{chunk-KWHKHSIS.js → chunk-X6WUYMOV.js} +8 -8
  151. package/chunks/{chunk-IIUGIWWY.js → chunk-XC2VAFVZ.js} +1 -1
  152. package/chunks/{chunk-D4HTUMGX.js → chunk-XC656O42.js} +3 -3
  153. package/chunks/{chunk-RG64CDT2.js → chunk-XMJO6C44.js} +131 -48
  154. package/chunks/{chunk-ZMOJ7ISP.js → chunk-XUMAD5IT.js} +1 -1
  155. package/chunks/{chunk-THVU3RNH.js → chunk-YAVY33G4.js} +1 -1
  156. package/chunks/{chunk-YANIWTRZ.js → chunk-YPUHMQXV.js} +1 -1
  157. package/chunks/{chunk-QCXGC7QB.js → chunk-YU6TBRTA.js} +3 -3
  158. package/chunks/{chunk-OFZKFPYG.js → chunk-YWMDTMAU.js} +3 -3
  159. package/chunks/{chunk-DSFHVTWD.js → chunk-YXEVDA66.js} +2 -2
  160. package/chunks/{chunk-JE2CEOBO.js → chunk-ZGSUFIL5.js} +4 -4
  161. package/chunks/{chunk-BBIQAX4V.js → chunk-ZJES4C3I.js} +30 -18
  162. package/chunks/{computer-use-5QWCFNKD.js → computer-use-UJMK6JQU.js} +36 -34
  163. package/chunks/{config-utils-WADIDWGG.js → config-utils-7COTJMWK.js} +4 -4
  164. package/chunks/{contextCommand-4Z7T7TUM.js → contextCommand-4YABGF4S.js} +40 -38
  165. package/chunks/{core-runtime-6N4EFC2Q.js → core-runtime-7M4VM3DA.js} +36 -34
  166. package/chunks/{create-sub-session-AEREHZBQ.js → create-sub-session-HOFDW4N7.js} +39 -37
  167. package/chunks/{create-sub-session-62YZWVAY.js → create-sub-session-J32WC64U.js} +2 -2
  168. package/chunks/{cron-create-6E7GIQTG.js → cron-create-HMFSHIAR.js} +4 -4
  169. package/chunks/{cron-delete-JD26XY3W.js → cron-delete-ZJFHOX57.js} +4 -4
  170. package/chunks/{cron-list-CUWFB44G.js → cron-list-ZEX2NBMN.js} +4 -4
  171. package/chunks/{daemon-PCNCI5YU.js → daemon-CCIX4BMG.js} +47 -6
  172. package/chunks/{daemon-status-provider-DDF7C5M7.js → daemon-status-provider-W2U5Q3J5.js} +47 -45
  173. package/chunks/{daemon-trust-policy-Q4KSOJTR.js → daemon-trust-policy-IFICWPXP.js} +42 -40
  174. package/chunks/{daemon-trust-policy-monitor-V6FTE3IY.js → daemon-trust-policy-monitor-GX7EO6FW.js} +42 -40
  175. package/chunks/{de-SY6O76BF.js → de-A6TI4LBB.js} +46 -5
  176. package/chunks/{deferred-core-runtime-GHJ5GQHK.js → deferred-core-runtime-U36OOOKE.js} +36 -34
  177. package/chunks/display-image-VS3TXYQH.js +184 -0
  178. package/chunks/{dist-ZHXOBXDN.js → dist-3BMEUGTG.js} +1 -1
  179. package/chunks/{dist-26BIMQT6.js → dist-4KAX7CCL.js} +289 -27
  180. package/chunks/{dist-OAOC5OV4.js → dist-7JGAAQSC.js} +2 -2
  181. package/chunks/{dist-SL2LUMML.js → dist-A7H2KKUC.js} +1 -1
  182. package/chunks/{dist-2PERFI23.js → dist-DPPHJAVL.js} +3 -3
  183. package/chunks/{dist-PVEAFLHY.js → dist-HVBMEYWK.js} +1 -1
  184. package/chunks/{dist-ULIG4M5H.js → dist-NEBRI7WO.js} +67 -15
  185. package/chunks/{dist-WGMNT3JQ.js → dist-SFQ34F4M.js} +24 -6
  186. package/chunks/{earlyInputCapture-TQXLLISD.js → earlyInputCapture-5ZWDH3SB.js} +37 -35
  187. package/chunks/{edit-FJEUV6KZ.js → edit-J7SW6UP6.js} +36 -34
  188. package/chunks/{en-NBK3JKCE.js → en-L4UQDLWW.js} +57 -6
  189. package/chunks/{enter-worktree-7GE3TZ4P.js → enter-worktree-NRLOHRB6.js} +36 -34
  190. package/chunks/{enterPlanMode-KR5TMPCJ.js → enterPlanMode-GDSTEFSM.js} +36 -34
  191. package/chunks/{environment-SWL3CMB3.js → environment-KHYEKG5W.js} +39 -37
  192. package/chunks/{errors-XQE7BGZV.js → errors-VNLAJV3O.js} +39 -37
  193. package/chunks/{exit-worktree-CHKTYNCV.js → exit-worktree-ARVID7DF.js} +36 -34
  194. package/chunks/{exitPlanMode-QYAG6LWX.js → exitPlanMode-4ZFY7KUH.js} +36 -34
  195. package/chunks/{fast-path-Z2K7W6DC.js → fast-path-KA65VREJ.js} +9 -5
  196. package/chunks/{fr-4KG5V7UT.js → fr-QF7RI5ZE.js} +46 -5
  197. package/chunks/{gemini-YU4XKEDG.js → gemini-5PMCNPF7.js} +149 -90
  198. package/chunks/{geminiContentGenerator-ZZX6NBO4.js → geminiContentGenerator-NFSYJ4HA.js} +6 -6
  199. package/chunks/{glob-VYF5CXSX.js → glob-F3EAUDAX.js} +36 -34
  200. package/chunks/{goal-tools-HGO6VXPB.js → goal-tools-SPQ5M6D3.js} +3 -3
  201. package/chunks/{grep-5DP5ZUTW.js → grep-UJMPVZER.js} +36 -34
  202. package/chunks/{handleAutoUpdate-UVBJ56DL.js → handleAutoUpdate-MG4FRZPN.js} +42 -40
  203. package/chunks/{i18n-UQNYHEUD.js → i18n-EVHV4ZF3.js} +38 -36
  204. package/chunks/{image-gen-WHPIZNWF.js → image-gen-UC7XVHI7.js} +9 -9
  205. package/chunks/{initializer-GMIICF4W.js → initializer-O5B6HUBI.js} +43 -41
  206. package/chunks/{installationInfo-4MGG4WVI.js → installationInfo-2LIKCNVX.js} +37 -35
  207. package/chunks/{ja-F3GSQXMF.js → ja-URQESVGW.js} +46 -5
  208. package/chunks/{keychain-token-storage-IKO4G53C.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
  209. package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
  210. package/chunks/{list-CPN2W334.js → list-BPKIE3Z4.js} +45 -43
  211. package/chunks/{list-agents-PXJ7ZUFB.js → list-agents-TWEGRJWO.js} +2 -2
  212. package/chunks/{loadedSettingsAdapter-ZQAV5NDO.js → loadedSettingsAdapter-NGLFF4V4.js} +42 -40
  213. package/chunks/{loggingContentGenerator-5E7W4IEP.js → loggingContentGenerator-7TFESRG5.js} +52 -37
  214. package/chunks/{loop-wakeup-Y26NQZ5I.js → loop-wakeup-6LLEOQYV.js} +5 -5
  215. package/chunks/{ls-ONQTTMQR.js → ls-H5WX22VK.js} +4 -4
  216. package/chunks/{lsp-YGHHRGMD.js → lsp-G6FXYEIS.js} +2 -2
  217. package/chunks/{managed-npm-update-MKKAXYXA.js → managed-npm-update-CLZGGV7F.js} +39 -37
  218. package/chunks/{mcp-V5NTJF6X.js → mcp-X5OZOOXX.js} +42 -40
  219. package/chunks/{monitor-CO3ASY6E.js → monitor-TGSVSAZZ.js} +36 -34
  220. package/chunks/nonInteractiveCli-GUMJ5JLG.js +150 -0
  221. package/chunks/{notebook-edit-Z7AEE6FM.js → notebook-edit-EZISE7IC.js} +36 -34
  222. package/chunks/{openaiContentGenerator-CA3MQOP3.js → openaiContentGenerator-ZAKS5A6P.js} +18 -18
  223. package/chunks/{pidfile-NL7MKDRU.js → pidfile-PCMBX4LR.js} +37 -35
  224. package/chunks/{processUtils-PB5K2DYH.js → processUtils-2CSVE5BW.js} +2 -2
  225. package/chunks/{pt-EQ33KWEN.js → pt-EEEQXRUI.js} +46 -5
  226. package/chunks/{qwenContentGenerator-JYFNDCOS.js → qwenContentGenerator-S3H6PIC4.js} +42 -40
  227. package/chunks/{qwenOAuth2-W2ALKQDD.js → qwenOAuth2-MNU425VE.js} +8 -8
  228. package/chunks/{read-file-IEOR5H5W.js → read-file-HXJXHBI6.js} +10 -10
  229. package/chunks/{read-mcp-resource-U2IJN5HM.js → read-mcp-resource-DRZSI3HE.js} +2 -2
  230. package/chunks/{record-artifact-MGPJ7EG4.js → record-artifact-IPIRWMFY.js} +3 -3
  231. package/chunks/{resumeHistoryUtils-BNBTP5AS.js → resumeHistoryUtils-4QAMC2S6.js} +44 -42
  232. package/chunks/{ripGrep-UMQODKEB.js → ripGrep-MCETPF2E.js} +36 -34
  233. package/chunks/{ru-7OZAUKGG.js → ru-WGZDYQAB.js} +46 -5
  234. package/chunks/{run-qwen-serve-RN2R6QQW.js → run-qwen-serve-3NMODTXV.js} +219 -55
  235. package/chunks/{runtime-QFJ2MJF5.js → runtime-AQOV7DVP.js} +49 -45
  236. package/chunks/{scheduler-AMYUFOZI.js → scheduler-DN7SZ6ZE.js} +36 -34
  237. package/chunks/{sdk-exporters-http-4BQANSJ6.js → sdk-exporters-http-IKNWQJNV.js} +2 -2
  238. package/chunks/{sdk-impl-Z4VXWVFX.js → sdk-impl-7CUUMQDB.js} +2 -2
  239. package/chunks/{send-message-PMP4ATVM.js → send-message-HGCVVDTZ.js} +5 -4
  240. package/chunks/{serve-EIIYJVX3.js → serve-WZB45HVT.js} +42 -40
  241. package/chunks/{server-EP2LLAPD.js → server-GOTZFEEZ.js} +616 -387
  242. package/chunks/{session-GMPZBLOW.js → session-23LOFLWN.js} +149 -87
  243. package/chunks/{settings-LN7RNKBS.js → settings-LI2ORVXC.js} +41 -39
  244. package/chunks/{shell-EM2OWU5X.js → shell-GLC6OP3C.js} +36 -34
  245. package/chunks/{skill-T5VPSK73.js → skill-C7W6M4GO.js} +27 -14
  246. package/chunks/{skill-settings-GMR3GMNY.js → skill-settings-W25NCK5I.js} +41 -39
  247. package/chunks/{spawnChannel-YPCU62DI.js → spawnChannel-OHJLEBLD.js} +38 -36
  248. package/chunks/{standalone-update-JAKIM2NF.js → standalone-update-E4V5V7WT.js} +39 -37
  249. package/chunks/{startInteractiveUI-YETQWGYF.js → startInteractiveUI-FKILLW7Q.js} +1815 -1034
  250. package/chunks/{syntheticOutput-D7E6ZFKR.js → syntheticOutput-EYL7DWO7.js} +3 -3
  251. package/chunks/{task-create-NFCYD43L.js → task-create-CSCEG4SM.js} +10 -9
  252. package/chunks/{task-list-TAVMGEVD.js → task-list-6CVQPORX.js} +6 -6
  253. package/chunks/{task-stop-ZDF2UJRM.js → task-stop-Y5ZTFVRX.js} +2 -2
  254. package/chunks/{task-update-6L7LHGEX.js → task-update-C52LNFU5.js} +10 -9
  255. package/chunks/{team-create-LFJ6HGNY.js → team-create-HBIJ7NHT.js} +36 -34
  256. package/chunks/{team-delete-DPGGRQBU.js → team-delete-CE7DC53R.js} +6 -6
  257. package/chunks/{team-plan-approval-C2KLSDGO.js → team-plan-approval-IBJOKS4J.js} +36 -34
  258. package/chunks/terminal-image-renderer-BOQJPVLB.js +89 -0
  259. package/chunks/{theme-manager-JQ3ZGBP5.js → theme-manager-NSS7VLUD.js} +37 -35
  260. package/chunks/{todoWrite-2UO5G6G6.js → todoWrite-YKAA57W2.js} +107 -36
  261. package/chunks/{tool-search-FAZBFRJZ.js → tool-search-DEAS54VG.js} +13 -12
  262. package/chunks/{total-session-admission-5CALIVYO.js → total-session-admission-4LWTX3WD.js} +43 -41
  263. package/chunks/{trustedFolders-KOPSP44S.js → trustedFolders-NF3J2TA7.js} +38 -36
  264. package/chunks/{update-relaunch-6QL2TICS.js → update-relaunch-WUHRH5V3.js} +5 -5
  265. package/chunks/{updateCheck-4Q6RIKFW.js → updateCheck-7EG4BLBH.js} +41 -39
  266. package/chunks/{useAutoAcceptIndicator-Q5BMKZV3.js → useAutoAcceptIndicator-ZRV56GVP.js} +46 -44
  267. package/chunks/{validateNonInterActiveAuth-GKOC5F6Z.js → validateNonInterActiveAuth-WC2FPE3I.js} +86 -84
  268. package/chunks/{version-VSATY2LD.js → version-6SS7KCUP.js} +1 -1
  269. package/chunks/{web-fetch-JCLKL6NL.js → web-fetch-Y5QQMPKA.js} +13 -13
  270. package/chunks/{web-search-DSQTFUBX.js → web-search-QKKEU723.js} +8 -8
  271. package/chunks/{workflow-M6QAVKVJ.js → workflow-PWIU6Q2M.js} +418 -304
  272. package/chunks/{workspace-providers-status-YKLTLMJA.js → workspace-providers-status-B2DM6FNK.js} +45 -43
  273. package/chunks/{workspace-registration-store-5DMGKU64.js → workspace-registration-store-7Y33TTHJ.js} +2 -2
  274. package/chunks/{workspace-registry-PTYUSYXX.js → workspace-registry-TSNJKLPC.js} +43 -41
  275. package/chunks/{workspace-service-25ML3T47.js → workspace-service-4I2QHDX4.js} +50 -48
  276. package/chunks/{workspace-skills-status-YKZWOYRX.js → workspace-skills-status-HVXNWVGR.js} +44 -42
  277. package/chunks/{workspace-trust-reconciler-5FI2S3OS.js → workspace-trust-reconciler-RDBBGMWP.js} +49 -47
  278. package/chunks/{write-file-AY7VLP5X.js → write-file-RQ4DG5RY.js} +36 -34
  279. package/chunks/{zh-H3YDK5QW.js → zh-72XPUG5P.js} +54 -6
  280. package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-LTB4SRH3.js} +54 -6
  281. package/chunks/{zoom-image-S4LJZMD5.js → zoom-image-O5YCB7WN.js} +10 -10
  282. package/cli.js +32 -48
  283. package/locales/ca.js +60 -4
  284. package/locales/de.js +62 -4
  285. package/locales/en.js +76 -6
  286. package/locales/fr.js +64 -4
  287. package/locales/ja.js +61 -4
  288. package/locales/pt.js +60 -4
  289. package/locales/ru.js +63 -4
  290. package/locales/zh-TW.js +67 -6
  291. package/locales/zh.js +67 -6
  292. package/package.json +3 -3
  293. package/web-shell/assets/{arc-xjArKHU2.js → arc-Bd7d781i.js} +1 -1
  294. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BgrQDNYG.js → architectureDiagram-3BPJPVTR-CpnOJqNE.js} +1 -1
  295. package/web-shell/assets/{blockDiagram-GPEHLZMM-CXxWC-1_.js → blockDiagram-GPEHLZMM-NxVTiWnk.js} +1 -1
  296. package/web-shell/assets/{c4Diagram-AAUBKEIU-Dx1tLm3v.js → c4Diagram-AAUBKEIU-BWT75l82.js} +1 -1
  297. package/web-shell/assets/channel-A434sWK5.js +1 -0
  298. package/web-shell/assets/{chunk-2J33WTMH-CBxjogVR.js → chunk-2J33WTMH-Dzz03hk6.js} +1 -1
  299. package/web-shell/assets/{chunk-4BX2VUAB-izb-rY5W.js → chunk-4BX2VUAB-DRF-egfm.js} +1 -1
  300. package/web-shell/assets/{chunk-55IACEB6-NzLyvSb8.js → chunk-55IACEB6-Co15vq5x.js} +1 -1
  301. package/web-shell/assets/{chunk-727SXJPM-DVyKb0dl.js → chunk-727SXJPM-DHSUk1J7.js} +1 -1
  302. package/web-shell/assets/{chunk-AQP2D5EJ-BtqL7NzB.js → chunk-AQP2D5EJ-Br8u_E2R.js} +1 -1
  303. package/web-shell/assets/{chunk-FMBD7UC4-iNpdKIO0.js → chunk-FMBD7UC4-DXbPTnqF.js} +1 -1
  304. package/web-shell/assets/{chunk-ND2GUHAM-DI7cbFmX.js → chunk-ND2GUHAM-BleQdi4d.js} +1 -1
  305. package/web-shell/assets/{chunk-QZHKN3VN-3Y_-xFYs.js → chunk-QZHKN3VN-CqgBf-95.js} +1 -1
  306. package/web-shell/assets/classDiagram-4FO5ZUOK-CwPuhldB.js +1 -0
  307. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwPuhldB.js +1 -0
  308. package/web-shell/assets/{cose-bilkent-S5V4N54A--raRatZn.js → cose-bilkent-S5V4N54A-WS7b13Yg.js} +1 -1
  309. package/web-shell/assets/{dagre-BM42HDAG-B8SU70mO.js → dagre-BM42HDAG-v_55ki8o.js} +1 -1
  310. package/web-shell/assets/{diagram-2AECGRRQ-ewgoakXo.js → diagram-2AECGRRQ-DaYAjbdK.js} +1 -1
  311. package/web-shell/assets/{diagram-5GNKFQAL-Bm_JLTnS.js → diagram-5GNKFQAL-D_Hy-L64.js} +1 -1
  312. package/web-shell/assets/{diagram-KO2AKTUF-DEIUjUy9.js → diagram-KO2AKTUF-dB06cZyD.js} +1 -1
  313. package/web-shell/assets/{diagram-LMA3HP47-C2Wmrpj-.js → diagram-LMA3HP47-DzSluD4F.js} +1 -1
  314. package/web-shell/assets/{diagram-OG6HWLK6-CtYe6bFx.js → diagram-OG6HWLK6-Cvb6CeXQ.js} +1 -1
  315. package/web-shell/assets/{erDiagram-TEJ5UH35-DfpHcWLV.js → erDiagram-TEJ5UH35-7eB2Hmov.js} +1 -1
  316. package/web-shell/assets/{flowDiagram-I6XJVG4X-CAiUhio5.js → flowDiagram-I6XJVG4X-B08iGCw_.js} +1 -1
  317. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CYc7ezr4.js → ganttDiagram-6RSMTGT7-BgsrCHq-.js} +1 -1
  318. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-70lbkcRS.js → gitGraphDiagram-PVQCEYII-DQLurQ2i.js} +1 -1
  319. package/web-shell/assets/{index-Ww86nT9f.js → index-B_1Z0Mgr.js} +1 -1
  320. package/web-shell/assets/index-Bi1dP2mU.css +5 -0
  321. package/web-shell/assets/index-DJ-z1Oba.js +1756 -0
  322. package/web-shell/assets/{infoDiagram-5YYISTIA-C7e8DWPa.js → infoDiagram-5YYISTIA-DXZGO8qB.js} +1 -1
  323. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BYLr2op-.js → ishikawaDiagram-YF4QCWOH-g7gbuH2w.js} +1 -1
  324. package/web-shell/assets/{journeyDiagram-JHISSGLW-hEibAHKX.js → journeyDiagram-JHISSGLW-euefICGn.js} +1 -1
  325. package/web-shell/assets/{kanban-definition-UN3LZRKU-F2rt8Uhp.js → kanban-definition-UN3LZRKU-Dws8-mjG.js} +1 -1
  326. package/web-shell/assets/{linear-DPhyNezd.js → linear-C63F0tyh.js} +1 -1
  327. package/web-shell/assets/{mermaid.core-ZUtnug0n.js → mermaid.core-fLrhp_4-.js} +5 -5
  328. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DDWcMoi8.js → mindmap-definition-RKZ34NQL-qRkydfT-.js} +1 -1
  329. package/web-shell/assets/{pieDiagram-4H26LBE5-CTRKzw1_.js → pieDiagram-4H26LBE5-BZ0wQaKN.js} +1 -1
  330. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CAEwYG_z.js → quadrantDiagram-W4KKPZXB-Fjq6GbSZ.js} +1 -1
  331. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CRjnH9D9.js → requirementDiagram-4Y6WPE33-CqWvjLHU.js} +1 -1
  332. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-LPQT_sOd.js → sankeyDiagram-5OEKKPKP-VcXX6PVZ.js} +1 -1
  333. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js → sequenceDiagram-3UESZ5HK-BJSRtxFr.js} +1 -1
  334. package/web-shell/assets/{stateDiagram-AJRCARHV-CIUdqOXu.js → stateDiagram-AJRCARHV-Dt9zUwmZ.js} +1 -1
  335. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CCxQt56w.js +1 -0
  336. package/web-shell/assets/{timeline-definition-PNZ67QCA-BcilneZF.js → timeline-definition-PNZ67QCA-DQwlNRws.js} +1 -1
  337. package/web-shell/assets/{vennDiagram-CIIHVFJN-BljwiiH1.js → vennDiagram-CIIHVFJN-DwxjUEtQ.js} +1 -1
  338. package/web-shell/assets/{wardley-L42UT6IY-DeKjkYjq.js → wardley-L42UT6IY-D3QdMSpJ.js} +1 -1
  339. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-L3U1H7KG.js → wardleyDiagram-YWT4CUSO-BddN8oK8.js} +1 -1
  340. package/web-shell/assets/{xychartDiagram-2RQKCTM6-IJnWsgMT.js → xychartDiagram-2RQKCTM6-BUNuBrRJ.js} +1 -1
  341. package/web-shell/index.html +2 -2
  342. package/chunks/chunk-4KP2F2TE.js +0 -82
  343. package/chunks/chunk-HGT6JR3U.js +0 -177
  344. package/chunks/nonInteractiveCli-ZJYEOO7U.js +0 -148
  345. package/web-shell/assets/channel-B1cyk94G.js +0 -1
  346. package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +0 -1
  347. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +0 -1
  348. package/web-shell/assets/index-C1k3PDuU.css +0 -5
  349. package/web-shell/assets/index-DZLIXILO.js +0 -1750
  350. package/web-shell/assets/insert-DmRbh9Rv.svg +0 -1
  351. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +0 -1
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-3F2WDAV6.js";
5
+ } from "./chunk-KXWERR6P.js";
6
6
  import {
7
7
  SessionReferenceService,
8
8
  SessionService,
9
9
  readManyFiles,
10
10
  stripTerminalControlSequences
11
- } from "./chunk-54YCNSK5.js";
11
+ } from "./chunk-UQDFEU47.js";
12
12
  import {
13
13
  emptyMcpResourceText,
14
14
  formatMcpResourceContents,
@@ -16,14 +16,15 @@ import {
16
16
  } from "./chunk-ZPJWUGCS.js";
17
17
  import {
18
18
  shouldRunVisionBridge
19
- } from "./chunk-DUNI4EBW.js";
19
+ } from "./chunk-4K3RV3OA.js";
20
20
  import {
21
21
  Storage,
22
22
  getErrorMessage,
23
23
  isNodeError,
24
24
  isSubpath,
25
- unescapePath
26
- } from "./chunk-E2BHWIDT.js";
25
+ unescapePath,
26
+ unescapeShellSpecials
27
+ } from "./chunk-3RXUYQJI.js";
27
28
  import {
28
29
  init_esbuild_shims
29
30
  } from "./chunk-5O2XNYP6.js";
@@ -230,7 +231,8 @@ function isSessionId(value) {
230
231
  __name(isSessionId, "isSessionId");
231
232
  function parseSessionRef(pathName) {
232
233
  if (!pathName.startsWith(SESSION_MENTION_PREFIX)) return null;
233
- const remainder = pathName.slice(SESSION_MENTION_PREFIX.length).trim();
234
+ const rawRemainder = pathName.slice(SESSION_MENTION_PREFIX.length).trim();
235
+ const remainder = process.platform === "win32" ? unescapeShellSpecials(rawRemainder) : rawRemainder;
234
236
  if (remainder.length === 0) return null;
235
237
  return isSessionId(remainder) ? { id: remainder } : { title: remainder };
236
238
  }
@@ -368,14 +370,29 @@ async function resolveAtCommandQuery({
368
370
  }
369
371
  const fileDiscovery = config.getFileService();
370
372
  const respectFileIgnore = config.getFileFilteringOptions();
373
+ const configuredProjectTempDir = Storage.getGlobalTempDir();
374
+ const projectTempDir = await fs2.realpath(configuredProjectTempDir).catch(() => path.resolve(configuredProjectTempDir));
371
375
  const pathSpecsToRead = [];
372
376
  const atPathToResolvedSpecMap = /* @__PURE__ */ new Map();
373
377
  const contentLabelsForDisplay = [];
378
+ const displayPaths = /* @__PURE__ */ new Map();
379
+ const displayPathsByCanonicalPath = /* @__PURE__ */ new Map();
374
380
  const ignoredByReason = {
375
381
  git: [],
376
382
  qwen: [],
377
383
  both: []
378
384
  };
385
+ const getIgnoreReason = /* @__PURE__ */ __name((candidate) => {
386
+ const gitIgnored = respectFileIgnore.respectGitIgnore && fileDiscovery.shouldIgnoreFile(candidate, {
387
+ respectGitIgnore: true,
388
+ respectQwenIgnore: false
389
+ });
390
+ const qwenIgnored = respectFileIgnore.respectQwenIgnore && fileDiscovery.shouldIgnoreFile(candidate, {
391
+ respectGitIgnore: false,
392
+ respectQwenIgnore: true
393
+ });
394
+ return gitIgnored && qwenIgnored ? "both" : gitIgnored ? "git" : qwenIgnored ? "qwen" : void 0;
395
+ }, "getIgnoreReason");
379
396
  const mcpServerNames = new Set(Object.keys(config.getMcpServers() || {}));
380
397
  const mcpResourceRefs = [];
381
398
  const mcpServerMentions = [];
@@ -413,7 +430,10 @@ async function resolveAtCommandQuery({
413
430
  )) {
414
431
  sessionMentions.push({ originalAtPath, ref: sessionRef });
415
432
  }
416
- atPathToResolvedSpecMap.set(originalAtPath, pathName);
433
+ atPathToResolvedSpecMap.set(
434
+ originalAtPath,
435
+ buildSessionRef(sessionRef.id ?? sessionRef.title)
436
+ );
417
437
  continue;
418
438
  }
419
439
  const resourceRef = parseMcpResourceRef(pathName, mcpServerNames);
@@ -447,24 +467,16 @@ async function resolveAtCommandQuery({
447
467
  continue;
448
468
  }
449
469
  const workspaceContext = config.getWorkspaceContext();
450
- const projectTempDir = Storage.getGlobalTempDir();
451
470
  const absolutePathName = path.isAbsolute(pathName) ? pathName : path.resolve(workspaceContext.getDirectories()[0] || "", pathName);
452
- if (!isSubpath(projectTempDir, absolutePathName) && !workspaceContext.isPathWithinWorkspace(pathName)) {
471
+ if (!isSubpath(configuredProjectTempDir, absolutePathName) && !isSubpath(projectTempDir, absolutePathName) && !workspaceContext.isPathWithinWorkspace(pathName)) {
453
472
  onDebugMessage(
454
473
  `Path ${pathName} is not in the workspace and will be skipped.`
455
474
  );
456
475
  continue;
457
476
  }
458
- const gitIgnored = respectFileIgnore.respectGitIgnore && fileDiscovery.shouldIgnoreFile(pathName, {
459
- respectGitIgnore: true,
460
- respectQwenIgnore: false
461
- });
462
- const qwenIgnored = respectFileIgnore.respectQwenIgnore && fileDiscovery.shouldIgnoreFile(pathName, {
463
- respectGitIgnore: false,
464
- respectQwenIgnore: true
465
- });
466
- if (gitIgnored || qwenIgnored) {
467
- const reason = gitIgnored && qwenIgnored ? "both" : gitIgnored ? "git" : "qwen";
477
+ const ignoredReason = getIgnoreReason(pathName);
478
+ if (ignoredReason) {
479
+ const reason = ignoredReason;
468
480
  ignoredByReason[reason].push(pathName);
469
481
  const reasonText = reason === "both" ? "ignored by both git and qwen" : reason === "git" ? "git-ignored" : "qwen-ignored";
470
482
  onDebugMessage(`Path ${pathName} is ${reasonText} and will be skipped.`);
@@ -472,17 +484,39 @@ async function resolveAtCommandQuery({
472
484
  }
473
485
  let resolvedSuccessfully = false;
474
486
  let sawNotFound = false;
487
+ let deferredIgnoreReason;
475
488
  for (const dir of config.getWorkspaceContext().getDirectories()) {
476
- let currentPathSpec = pathName;
477
489
  try {
478
490
  const absolutePath = path.resolve(dir, pathName);
479
- const stats = await fs2.stat(absolutePath);
491
+ const canonicalPath = await fs2.realpath(absolutePath);
492
+ const stats = await fs2.stat(canonicalPath);
493
+ if (!isSubpath(configuredProjectTempDir, canonicalPath) && !isSubpath(projectTempDir, canonicalPath) && !workspaceContext.isPathWithinWorkspace(canonicalPath)) {
494
+ onDebugMessage(
495
+ `Path ${pathName} is not in the workspace and will be skipped.`
496
+ );
497
+ continue;
498
+ }
499
+ const canonicalIgnoreReason = getIgnoreReason(canonicalPath);
500
+ if (canonicalIgnoreReason) {
501
+ deferredIgnoreReason = canonicalIgnoreReason;
502
+ const reasonText = canonicalIgnoreReason === "both" ? "ignored by both git and qwen" : canonicalIgnoreReason === "git" ? "git-ignored" : "qwen-ignored";
503
+ onDebugMessage(
504
+ `Path ${pathName} is ${reasonText} and will be skipped.`
505
+ );
506
+ continue;
507
+ }
480
508
  if (stats.isDirectory()) {
481
- currentPathSpec = pathName;
482
509
  onDebugMessage(`Path ${pathName} resolved to directory.`);
483
510
  } else {
484
511
  onDebugMessage(`Path ${pathName} resolved to file: ${absolutePath}`);
485
512
  }
513
+ pathSpecsToRead.push(canonicalPath);
514
+ atPathToResolvedSpecMap.set(originalAtPath, pathName);
515
+ contentLabelsForDisplay.push(pathName);
516
+ displayPaths.set(canonicalPath, pathName);
517
+ const canonicalDisplays = displayPathsByCanonicalPath.get(canonicalPath) ?? /* @__PURE__ */ new Set();
518
+ canonicalDisplays.add(pathName);
519
+ displayPathsByCanonicalPath.set(canonicalPath, canonicalDisplays);
486
520
  resolvedSuccessfully = true;
487
521
  } catch (error) {
488
522
  if (isNodeError(error) && error.code === "ENOENT") {
@@ -495,9 +529,6 @@ async function resolveAtCommandQuery({
495
529
  }
496
530
  }
497
531
  if (resolvedSuccessfully) {
498
- pathSpecsToRead.push(currentPathSpec);
499
- atPathToResolvedSpecMap.set(originalAtPath, currentPathSpec);
500
- contentLabelsForDisplay.push(pathName);
501
532
  break;
502
533
  }
503
534
  }
@@ -506,31 +537,37 @@ async function resolveAtCommandQuery({
506
537
  `Path ${pathName} not found. Path ${pathName} will be skipped.`
507
538
  );
508
539
  }
540
+ if (!resolvedSuccessfully && deferredIgnoreReason) {
541
+ ignoredByReason[deferredIgnoreReason].push(pathName);
542
+ }
509
543
  }
510
- let initialQueryText = "";
511
- for (let i = 0; i < commandParts.length; i++) {
512
- const part = commandParts[i];
513
- if (part.type === "text") {
514
- initialQueryText += part.content;
515
- } else {
516
- const resolvedSpec = atPathToResolvedSpecMap.get(part.content);
517
- if (i > 0 && initialQueryText.length > 0 && !initialQueryText.endsWith(" ")) {
518
- const prevPart = commandParts[i - 1];
519
- if (prevPart.type === "text" || prevPart.type === "atPath" && atPathToResolvedSpecMap.has(prevPart.content)) {
520
- initialQueryText += " ";
521
- }
522
- }
523
- if (resolvedSpec) {
524
- initialQueryText += `@${resolvedSpec}`;
544
+ const buildInitialQueryText = /* @__PURE__ */ __name(() => {
545
+ let text = "";
546
+ for (let i = 0; i < commandParts.length; i++) {
547
+ const part = commandParts[i];
548
+ if (part.type === "text") {
549
+ text += part.content;
525
550
  } else {
526
- if (i > 0 && initialQueryText.length > 0 && !initialQueryText.endsWith(" ") && !part.content.startsWith(" ")) {
527
- initialQueryText += " ";
551
+ const resolvedSpec = atPathToResolvedSpecMap.get(part.content);
552
+ if (i > 0 && text.length > 0 && !text.endsWith(" ")) {
553
+ const prevPart = commandParts[i - 1];
554
+ if (prevPart.type === "text" || prevPart.type === "atPath") {
555
+ text += " ";
556
+ }
557
+ }
558
+ if (resolvedSpec) {
559
+ text += `@${resolvedSpec}`;
560
+ } else {
561
+ if (i > 0 && text.length > 0 && !text.endsWith(" ") && !part.content.startsWith(" ")) {
562
+ text += " ";
563
+ }
564
+ text += part.content;
528
565
  }
529
- initialQueryText += part.content;
530
566
  }
531
567
  }
532
- }
533
- initialQueryText = initialQueryText.trim();
568
+ return text.trim();
569
+ }, "buildInitialQueryText");
570
+ let initialQueryText = buildInitialQueryText();
534
571
  const totalIgnored = ignoredByReason["git"].length + ignoredByReason["qwen"].length + ignoredByReason["both"].length;
535
572
  if (totalIgnored > 0) {
536
573
  const messages = [];
@@ -787,12 +824,58 @@ ${messages.join("\n")}`;
787
824
  );
788
825
  const fileParts = [];
789
826
  let fileDisplays = [];
790
- if (pathSpecsToRead.length > 0) {
827
+ const revalidatedPathSpecs = [];
828
+ const revalidatedDisplayPaths = /* @__PURE__ */ new Map();
829
+ const validatedPathIdentities = /* @__PURE__ */ new Map();
830
+ const pruneSkippedPath = /* @__PURE__ */ __name((approvedPath) => {
831
+ const displayPath = displayPaths.get(approvedPath);
832
+ const displayLabels = displayPathsByCanonicalPath.get(approvedPath) ?? new Set(displayPath ? [displayPath] : []);
833
+ for (const [originalAtPath, resolvedSpec] of atPathToResolvedSpecMap) {
834
+ if (resolvedSpec === approvedPath || displayLabels.has(resolvedSpec)) {
835
+ atPathToResolvedSpecMap.delete(originalAtPath);
836
+ }
837
+ }
838
+ for (let index = contentLabelsForDisplay.length - 1; index >= 0; index--) {
839
+ const label = contentLabelsForDisplay[index];
840
+ if (label === approvedPath || displayLabels.has(label)) {
841
+ contentLabelsForDisplay.splice(index, 1);
842
+ }
843
+ }
844
+ }, "pruneSkippedPath");
845
+ for (const approvedPath of pathSpecsToRead) {
846
+ try {
847
+ const currentPath = await fs2.realpath(approvedPath);
848
+ const stats = await fs2.stat(currentPath);
849
+ if (currentPath === approvedPath && (stats.isFile() || stats.isDirectory()) && (isSubpath(configuredProjectTempDir, currentPath) || isSubpath(projectTempDir, currentPath) || config.getWorkspaceContext().isPathWithinWorkspace(currentPath)) && getIgnoreReason(currentPath) === void 0) {
850
+ revalidatedPathSpecs.push(currentPath);
851
+ const displayPath = displayPaths.get(approvedPath);
852
+ if (displayPath) revalidatedDisplayPaths.set(currentPath, displayPath);
853
+ validatedPathIdentities.set(currentPath, {
854
+ dev: stats.dev,
855
+ ino: stats.ino
856
+ });
857
+ } else {
858
+ pruneSkippedPath(approvedPath);
859
+ onDebugMessage(
860
+ `Path ${approvedPath} failed revalidation and will be skipped.`
861
+ );
862
+ }
863
+ } catch {
864
+ pruneSkippedPath(approvedPath);
865
+ onDebugMessage(
866
+ `Path ${approvedPath} changed before it could be read and will be skipped.`
867
+ );
868
+ }
869
+ }
870
+ initialQueryText = buildInitialQueryText();
871
+ if (revalidatedPathSpecs.length > 0) {
791
872
  try {
792
873
  const result = await readManyFiles(config, {
793
- paths: pathSpecsToRead,
874
+ paths: revalidatedPathSpecs,
794
875
  signal,
795
- preserveUnsupportedImageForBridge: shouldRunVisionBridge(config)
876
+ preserveUnsupportedImageForBridge: shouldRunVisionBridge(config),
877
+ validatedPathIdentities,
878
+ displayPaths: revalidatedDisplayPaths
796
879
  });
797
880
  const parts = Array.isArray(result.contentParts) ? result.contentParts : [result.contentParts];
798
881
  fileDisplays = result.files.map((file, index) => ({
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  AuthType
5
- } from "./chunk-HIVKI6O6.js";
5
+ } from "./chunk-H35Q5CEG.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-E2BHWIDT.js";
5
+ } from "./chunk-3RXUYQJI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-54YCNSK5.js";
5
+ } from "./chunk-UQDFEU47.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTask
5
- } from "./chunk-SHN4KHDK.js";
5
+ } from "./chunk-A6SX5TAH.js";
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-CBBP4BMC.js";
9
+ } from "./chunk-TZTBZ25J.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
12
  } from "./chunk-S6LOFUVP.js";
@@ -15,7 +15,7 @@ import {
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-MM7TH7ZM.js";
18
+ } from "./chunk-CFDR3GNL.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -8,13 +8,13 @@ import {
8
8
  } from "./chunk-3Z43GZUQ.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-3F2WDAV6.js";
11
+ } from "./chunk-KXWERR6P.js";
12
12
  import {
13
13
  So
14
- } from "./chunk-54YCNSK5.js";
14
+ } from "./chunk-UQDFEU47.js";
15
15
  import {
16
16
  createDebugLogger
17
- } from "./chunk-E2BHWIDT.js";
17
+ } from "./chunk-3RXUYQJI.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -14,10 +14,10 @@ import {
14
14
  } from "./chunk-ZBVS26BY.js";
15
15
  import {
16
16
  buildRuntimeFetchOptions
17
- } from "./chunk-Q3T5KA2V.js";
17
+ } from "./chunk-BFHXDAR7.js";
18
18
  import {
19
19
  createDebugLogger
20
- } from "./chunk-E2BHWIDT.js";
20
+ } from "./chunk-3RXUYQJI.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-3F2WDAV6.js";
5
+ } from "./chunk-KXWERR6P.js";
6
+ import {
7
+ createDebugLogger
8
+ } from "./chunk-3RXUYQJI.js";
6
9
  import {
7
10
  writeStderrLine
8
11
  } from "./chunk-OWAK7LMW.js";
9
- import {
10
- createDebugLogger
11
- } from "./chunk-E2BHWIDT.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,23 +2,23 @@
2
2
  "use strict";
3
3
  import {
4
4
  mapSkillConfigToStatus
5
- } from "./chunk-L55JWS76.js";
6
- import {
7
- STATUS_SCHEMA_VERSION
8
- } from "./chunk-GURGAJTX.js";
5
+ } from "./chunk-BGXZBI5B.js";
9
6
  import {
10
7
  resolveSkillSettings
11
8
  } from "./chunk-Z4X5MTRT.js";
12
9
  import {
13
- loadSettings
14
- } from "./chunk-W3UKBMSI.js";
10
+ STATUS_SCHEMA_VERSION
11
+ } from "./chunk-PDDYAXL2.js";
15
12
  import {
16
- writeStderrLine
17
- } from "./chunk-OWAK7LMW.js";
13
+ loadSettings
14
+ } from "./chunk-22YFMJBW.js";
18
15
  import {
19
16
  SkillManager,
20
17
  isSafeModeEnv
21
- } from "./chunk-54YCNSK5.js";
18
+ } from "./chunk-UQDFEU47.js";
19
+ import {
20
+ writeStderrLine
21
+ } from "./chunk-OWAK7LMW.js";
22
22
  import {
23
23
  init_esbuild_shims
24
24
  } from "./chunk-5O2XNYP6.js";
@@ -28,6 +28,12 @@ import {
28
28
 
29
29
  // packages/cli/src/serve/workspace-skills-status.ts
30
30
  init_esbuild_shims();
31
+ var VALID_SKILL_LEVELS = /* @__PURE__ */ new Set([
32
+ "project",
33
+ "user",
34
+ "extension",
35
+ "bundled"
36
+ ]);
31
37
  function createWorkspaceSkillsStatusProvider(options = {}) {
32
38
  const managers = /* @__PURE__ */ new Map();
33
39
  const provider = /* @__PURE__ */ __name((workspaceCwd) => buildWorkspaceSkillsStatus(
@@ -41,8 +47,20 @@ function createWorkspaceSkillsStatusProvider(options = {}) {
41
47
  __name(createWorkspaceSkillsStatusProvider, "createWorkspaceSkillsStatusProvider");
42
48
  async function buildWorkspaceSkillsStatus(workspaceCwd, managers, workspaceTrusted) {
43
49
  try {
50
+ const settings = loadSettings(workspaceCwd, {
51
+ consumeCorruptionEnvVars: false,
52
+ skipLoadEnvironment: !workspaceTrusted,
53
+ skipWorkspaceSettings: !workspaceTrusted,
54
+ workspaceTrusted
55
+ });
44
56
  let skillManager = managers.get(workspaceCwd);
45
57
  if (!skillManager) {
58
+ const rawLevels = !workspaceTrusted || isSafeModeEnv() ? void 0 : settings.merged.skills?.disabledLevels;
59
+ const disabledLevels = new Set(
60
+ Array.isArray(rawLevels) ? rawLevels.filter(
61
+ (v) => typeof v === "string" && VALID_SKILL_LEVELS.has(v)
62
+ ) : []
63
+ );
46
64
  const shim = {
47
65
  // Honor the safe-mode env the same way `Config` does when no explicit
48
66
  // flag is passed, so an operator running in safe mode gets the same
@@ -54,19 +72,13 @@ async function buildWorkspaceSkillsStatus(workspaceCwd, managers, workspaceTrust
54
72
  getProjectRoot: /* @__PURE__ */ __name(() => workspaceCwd, "getProjectRoot"),
55
73
  // Extension skills need active-extension context that only the child
56
74
  // has; omit them here and let the session snapshot surface them.
57
- getActiveExtensions: /* @__PURE__ */ __name(() => [], "getActiveExtensions")
75
+ getActiveExtensions: /* @__PURE__ */ __name(() => [], "getActiveExtensions"),
76
+ getDisabledSkillLevels: /* @__PURE__ */ __name(() => disabledLevels, "getDisabledSkillLevels")
58
77
  };
59
78
  skillManager = new SkillManager(shim);
60
79
  managers.set(workspaceCwd, skillManager);
61
80
  }
62
- const disablements = resolveSkillSettings(
63
- loadSettings(workspaceCwd, {
64
- consumeCorruptionEnvVars: false,
65
- skipLoadEnvironment: !workspaceTrusted,
66
- skipWorkspaceSettings: !workspaceTrusted,
67
- workspaceTrusted
68
- })
69
- ).disablements;
81
+ const disablements = resolveSkillSettings(settings).disablements;
70
82
  const skills = await skillManager.listSkills();
71
83
  return {
72
84
  v: STATUS_SCHEMA_VERSION,
@@ -4,70 +4,72 @@ import {
4
4
  Client,
5
5
  So,
6
6
  StdioClientTransport
7
- } from "./chunk-54YCNSK5.js";
7
+ } from "./chunk-UQDFEU47.js";
8
+ import "./chunk-GOFAQQZA.js";
8
9
  import "./chunk-5M6IDOMF.js";
9
10
  import "./chunk-TWPJO254.js";
10
11
  import "./chunk-H6XPXXMH.js";
11
- import "./chunk-AOHY3QJ3.js";
12
- import "./chunk-5NNHICSA.js";
13
- import "./chunk-SHN4KHDK.js";
14
- import "./chunk-JXVC2PL3.js";
15
- import "./chunk-KRXPRVGL.js";
12
+ import "./chunk-VA5NLVPT.js";
13
+ import "./chunk-I7JDGNG6.js";
14
+ import "./chunk-A6SX5TAH.js";
15
+ import "./chunk-33FNCQSY.js";
16
16
  import "./chunk-6PVPNMXU.js";
17
- import "./chunk-ZMOJ7ISP.js";
17
+ import "./chunk-XUMAD5IT.js";
18
18
  import "./chunk-IRH27ZC2.js";
19
19
  import "./chunk-QHWCP53L.js";
20
- import "./chunk-TEGJSJDF.js";
21
- import "./chunk-TIRRPCFS.js";
20
+ import "./chunk-MOHAWIAW.js";
21
+ import "./chunk-X6QNZOTC.js";
22
22
  import "./chunk-O6GEWCJA.js";
23
23
  import "./chunk-T26EAKDL.js";
24
+ import "./chunk-ZPJWUGCS.js";
24
25
  import "./chunk-CPBF7KYF.js";
25
- import "./chunk-4KP2F2TE.js";
26
- import "./chunk-3APUUXRF.js";
27
- import "./chunk-THVU3RNH.js";
28
- import "./chunk-LHKCY7DY.js";
29
- import "./chunk-6FMJLI5M.js";
30
- import "./chunk-CBBP4BMC.js";
26
+ import "./chunk-MISUEWB4.js";
27
+ import "./chunk-KRXPRVGL.js";
28
+ import "./chunk-A5YZ3FA2.js";
29
+ import "./chunk-YAVY33G4.js";
30
+ import "./chunk-2UISUFHQ.js";
31
+ import "./chunk-HFVW54NL.js";
32
+ import "./chunk-TZTBZ25J.js";
31
33
  import "./chunk-S6LOFUVP.js";
34
+ import "./chunk-SRY26X4H.js";
32
35
  import "./chunk-K623ENWT.js";
33
36
  import "./chunk-AQ37AY7B.js";
34
- import "./chunk-N4ACHWNH.js";
35
- import "./chunk-ZPJWUGCS.js";
36
- import "./chunk-D4HTUMGX.js";
37
+ import "./chunk-432XCUHF.js";
38
+ import "./chunk-XC656O42.js";
37
39
  import "./chunk-NAVJD2PQ.js";
38
- import "./chunk-LOY7RWQG.js";
39
- import "./chunk-E6CJ2SMM.js";
40
+ import "./chunk-QYPT3QUD.js";
41
+ import "./chunk-QMBEW7EW.js";
40
42
  import "./chunk-DGEIYUC3.js";
41
43
  import "./chunk-MPHPFVKK.js";
42
44
  import "./chunk-GLNBDYUX.js";
43
45
  import "./chunk-DJ2GSRLV.js";
44
- import "./chunk-6CQWRWUC.js";
45
- import "./chunk-Z3S5EMOW.js";
46
+ import "./chunk-EIMKVOSF.js";
47
+ import "./chunk-RPYYTL7E.js";
46
48
  import "./chunk-2J3OJGTL.js";
47
49
  import "./chunk-P3QQPMQA.js";
48
- import "./chunk-XQK4XXTN.js";
50
+ import "./chunk-6O5DVH27.js";
49
51
  import "./chunk-GLCZKT5V.js";
50
- import "./chunk-QDK4F2N5.js";
51
- import "./chunk-DUNI4EBW.js";
52
+ import "./chunk-2DNKEBXY.js";
53
+ import "./chunk-4K3RV3OA.js";
52
54
  import "./chunk-VGC4I5JJ.js";
53
- import "./chunk-3I6DUGQD.js";
54
- import "./chunk-7ULQIS27.js";
55
+ import "./chunk-E4WHKETF.js";
56
+ import "./chunk-UEJESCS7.js";
55
57
  import {
56
58
  BaseDeclarativeTool,
57
59
  BaseToolInvocation
58
- } from "./chunk-MM7TH7ZM.js";
59
- import "./chunk-HIVKI6O6.js";
60
+ } from "./chunk-CFDR3GNL.js";
61
+ import "./chunk-H35Q5CEG.js";
60
62
  import "./chunk-46UV252V.js";
61
63
  import "./chunk-ZBVS26BY.js";
62
- import "./chunk-Q3T5KA2V.js";
63
- import "./chunk-R2XWGR75.js";
64
- import "./chunk-HC45LTEN.js";
65
- import "./chunk-QARJNL2V.js";
64
+ import "./chunk-BFHXDAR7.js";
65
+ import "./chunk-TYERNYH4.js";
66
+ import "./chunk-UH7Z7Y45.js";
67
+ import "./chunk-O2ZYHG33.js";
66
68
  import {
67
69
  safeJsonStringify
68
70
  } from "./chunk-W4RQUHY3.js";
69
71
  import "./chunk-G7XXKQYS.js";
70
- import "./chunk-E2BHWIDT.js";
72
+ import "./chunk-3RXUYQJI.js";
71
73
  import "./chunk-VOQXFAY5.js";
72
74
  import "./chunk-75DOP5OR.js";
73
75
  import "./chunk-DMTGGOSA.js";
@@ -5,13 +5,13 @@ import {
5
5
  parseChannelWebhookConfig,
6
6
  parseChannelWebhookConfigLenient,
7
7
  resolveEnvVars
8
- } from "./chunk-I5BT7ADR.js";
9
- import "./chunk-FANRZEAJ.js";
10
- import "./chunk-KWHKHSIS.js";
8
+ } from "./chunk-LGT3YMLN.js";
9
+ import "./chunk-X6WUYMOV.js";
10
+ import "./chunk-VWOVHOTT.js";
11
11
  import {
12
12
  findCliEntryPath
13
13
  } from "./chunk-V6WHFGST.js";
14
- import "./chunk-JCJ7LKNA.js";
14
+ import "./chunk-DIEFUBV6.js";
15
15
  import "./chunk-UDXSXLER.js";
16
16
  import "./chunk-H6XPXXMH.js";
17
17
  import "./chunk-5O2XNYP6.js";