@qwen-code/qwen-code 0.22.3 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/README.md +30 -0
  2. package/bundled/computer-use/SKILL.md +116 -180
  3. package/bundled/goal-draft/SKILL.md +5 -1
  4. package/bundled/qc-helper/docs/common-workflow.md +32 -0
  5. package/bundled/qc-helper/docs/configuration/auth.md +6 -6
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +8 -2
  7. package/bundled/qc-helper/docs/configuration/settings.md +63 -58
  8. package/bundled/qc-helper/docs/extension/introduction.md +1 -1
  9. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  10. package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
  11. package/bundled/qc-helper/docs/features/auto-mode.md +34 -17
  12. package/bundled/qc-helper/docs/features/channels/dingtalk.md +4 -2
  13. package/bundled/qc-helper/docs/features/channels/dws.md +6 -2
  14. package/bundled/qc-helper/docs/features/channels/overview.md +5 -2
  15. package/bundled/qc-helper/docs/features/code-review.md +2 -2
  16. package/bundled/qc-helper/docs/features/commands.md +79 -1
  17. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  18. package/bundled/qc-helper/docs/features/goals.md +9 -3
  19. package/bundled/qc-helper/docs/features/headless.md +16 -1
  20. package/bundled/qc-helper/docs/features/hooks.md +8 -3
  21. package/bundled/qc-helper/docs/features/memory.md +1 -0
  22. package/bundled/qc-helper/docs/features/output-styles.md +38 -0
  23. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +17 -7
  24. package/bundled/qc-helper/docs/qwen-serve.md +74 -55
  25. package/bundled/review/SKILL.md +16 -7
  26. package/bundled/review/references/posting.md +3 -3
  27. package/chunks/MaxSizedBox-B3D7545A.js +111 -0
  28. package/chunks/{StandaloneSessionPicker-2FJAOLGG.js → StandaloneSessionPicker-QUMO4LLQ.js} +88 -86
  29. package/chunks/{acp-startup-profiler-GNYAL6LI.js → acp-startup-profiler-M4X5F3VK.js} +2 -2
  30. package/chunks/{acpAgent-2ZMIJAFV.js → acpAgent-2GTFCIEP.js} +2041 -444
  31. package/chunks/{agent-X5WX3L2I.js → agent-XKF5SZWU.js} +46 -46
  32. package/chunks/agent-headless-OC2IB55D.js +85 -0
  33. package/chunks/{anthropicContentGenerator-YVTB6QX7.js → anthropicContentGenerator-L76MR5OR.js} +53 -20
  34. package/chunks/{artifact-tool-XSMPHZBT.js → artifact-tool-MYCL2QCS.js} +3 -4
  35. package/chunks/{askUserQuestion-4SWJY65V.js → askUserQuestion-THQZMG44.js} +45 -7
  36. package/chunks/bridge-IHSBI2YJ.js +118 -0
  37. package/chunks/{build-INBK7IXX.js → build-63BIOYWK.js} +1 -1
  38. package/chunks/{ca-7HPYOYSZ.js → ca-BNU7YNDE.js} +3 -0
  39. package/chunks/{channel-management-service-HQ6KDS7C.js → channel-management-service-4MTCEGJB.js} +4 -4
  40. package/chunks/channel-settings-store-BVKWAI2T.js +121 -0
  41. package/chunks/{channel-worker-group-6NA6BBZV.js → channel-worker-group-47F4ISUZ.js} +7 -7
  42. package/chunks/{channel-worker-manager-NEZ2J6RK.js → channel-worker-manager-I5Y44GYR.js} +51 -10
  43. package/chunks/{channel-worker-supervisor-FKU7DIHJ.js → channel-worker-supervisor-6VCLUXFE.js} +4 -4
  44. package/chunks/{chunk-PPKZ7JOE.js → chunk-22UH7VTP.js} +1 -1
  45. package/chunks/chunk-24FVUD5P.js +49 -0
  46. package/chunks/{chunk-MZCJWS5Y.js → chunk-2M3EWQNG.js} +20 -0
  47. package/chunks/{chunk-7T52W4SW.js → chunk-32LU3APX.js} +1 -1
  48. package/chunks/{chunk-42IDLQWS.js → chunk-373DQUVA.js} +48 -13
  49. package/chunks/{chunk-MSBO7X2W.js → chunk-37JFWFCD.js} +1 -1
  50. package/chunks/{chunk-3JXM2CVW.js → chunk-3AKCBZVW.js} +3 -3
  51. package/chunks/{chunk-TVC6HQ2U.js → chunk-3JQZVCBI.js} +2 -2
  52. package/chunks/{chunk-2LNNVAUV.js → chunk-3L724BJ5.js} +246 -15
  53. package/chunks/{chunk-E7REAOTN.js → chunk-47ECGEJC.js} +4 -0
  54. package/chunks/{chunk-WNPDGUJO.js → chunk-47RYEQW5.js} +2 -3
  55. package/chunks/{chunk-TZBSGJ6C.js → chunk-4BGDFKQE.js} +7 -7
  56. package/chunks/{chunk-PZ66FRIC.js → chunk-4F7GQGXB.js} +11772 -4773
  57. package/chunks/{chunk-DMLVSW7L.js → chunk-4HVH57J3.js} +713 -9
  58. package/chunks/{chunk-CMHFCLBU.js → chunk-4LIFGNI4.js} +1 -1
  59. package/chunks/{chunk-3SZC4VP4.js → chunk-4M24B5J5.js} +88 -49
  60. package/chunks/{chunk-BOWFGCEU.js → chunk-4PSDSCW3.js} +3 -3
  61. package/chunks/chunk-4UANMABT.js +1026 -0
  62. package/chunks/{chunk-M3QRM3DE.js → chunk-54C6PIGT.js} +5 -5
  63. package/chunks/{chunk-HP5LR5HL.js → chunk-5EIOJGCR.js} +4 -4
  64. package/chunks/{chunk-64REQJJ2.js → chunk-5H5S4UY5.js} +3 -3
  65. package/chunks/chunk-5IENVM7Z.js +35 -0
  66. package/chunks/{chunk-I6LYRJPB.js → chunk-5Q5RC2WE.js} +2 -2
  67. package/chunks/{chunk-WGY3AVGM.js → chunk-5RTTI4GE.js} +79 -5
  68. package/chunks/{chunk-KID24ZFN.js → chunk-64QH2UC6.js} +13 -1
  69. package/chunks/{chunk-MF7HCQWZ.js → chunk-65HWLGA7.js} +3 -3
  70. package/chunks/{chunk-OU5APVWO.js → chunk-6A2D4QSO.js} +13 -7
  71. package/chunks/chunk-6HUXPLB5.js +110 -0
  72. package/chunks/{chunk-VQUGEVGR.js → chunk-7IKXTGZT.js} +1 -1
  73. package/chunks/{chunk-UTLCH2FK.js → chunk-7JMGTOH7.js} +437 -136
  74. package/chunks/{chunk-7LOELM2I.js → chunk-7RB56BRJ.js} +3 -3
  75. package/chunks/{chunk-NIFYWDYN.js → chunk-7TBU7PU2.js} +1 -1
  76. package/chunks/{chunk-V2NDP3I4.js → chunk-7XL4WRXM.js} +2 -2
  77. package/chunks/chunk-ADJD4LZF.js +210 -0
  78. package/chunks/{chunk-T7KMERIX.js → chunk-ADYN7P2Y.js} +2 -2
  79. package/chunks/{chunk-TPI7O7HR.js → chunk-AHYTURFB.js} +1 -1
  80. package/chunks/{chunk-LUEHOUHM.js → chunk-AI35S34R.js} +3 -3
  81. package/chunks/{chunk-CIZCL2MW.js → chunk-ALUYNJPM.js} +1486 -2172
  82. package/chunks/{chunk-ABS25QER.js → chunk-ANVG3BVV.js} +1 -1
  83. package/chunks/{chunk-6ZPDLGHN.js → chunk-AZJLY2XZ.js} +5 -5
  84. package/chunks/{chunk-A3LWD5MK.js → chunk-BA4WJC4L.js} +1 -1
  85. package/chunks/{chunk-W3JH33JE.js → chunk-BFY33IB4.js} +18 -10
  86. package/chunks/{chunk-N4X7G4J2.js → chunk-BHTYRHJF.js} +1 -1
  87. package/chunks/{chunk-TEBDFQBZ.js → chunk-BJXCYUGM.js} +11 -6
  88. package/chunks/{chunk-7VMIMAVB.js → chunk-C2VWOXHS.js} +8 -8
  89. package/chunks/{chunk-XHF7WQ6B.js → chunk-C4TIXFDZ.js} +16 -5
  90. package/chunks/chunk-CHEIIBT3.js +40 -0
  91. package/chunks/chunk-CVX63TFJ.js +348 -0
  92. package/chunks/{chunk-RXFQM6FQ.js → chunk-DMEUXLSS.js} +16 -1
  93. package/chunks/{chunk-EKSCLBBF.js → chunk-DQCKVAF5.js} +23 -5
  94. package/chunks/{chunk-734C6JGI.js → chunk-DSX7KQPM.js} +5195 -666
  95. package/chunks/{chunk-4CMJKUND.js → chunk-DTVQSSNM.js} +67 -2
  96. package/chunks/{chunk-BKWNKLZB.js → chunk-DYTW3QVG.js} +24 -9
  97. package/chunks/{chunk-C2X7KY45.js → chunk-E4JNFXNI.js} +3 -3
  98. package/chunks/{chunk-UHQFIS7N.js → chunk-EAHOJF6V.js} +28 -4
  99. package/chunks/{chunk-YLSQLSH7.js → chunk-EBDGRBZX.js} +24 -16
  100. package/chunks/{chunk-DJBQCO2E.js → chunk-EFTPIZIC.js} +412 -3
  101. package/chunks/{chunk-6DIGWMGT.js → chunk-EIJT2PQ6.js} +2 -2
  102. package/chunks/{chunk-4TT3IVGA.js → chunk-EIY7SUPZ.js} +1 -1
  103. package/chunks/{chunk-XQFT3QUF.js → chunk-ENYUKMFK.js} +1 -1
  104. package/chunks/{chunk-ZWJDJ6RU.js → chunk-EVFDRBUM.js} +157 -153
  105. package/chunks/{chunk-4VPCTGH6.js → chunk-EWRW2WQC.js} +15 -9
  106. package/chunks/{chunk-VBCPNIQD.js → chunk-F33GFWPR.js} +47 -184
  107. package/chunks/{chunk-ERFDKH32.js → chunk-F47DITLZ.js} +19 -8
  108. package/chunks/{chunk-73RM4POK.js → chunk-F7NF2IOE.js} +7 -7
  109. package/chunks/{chunk-EB6QRGHM.js → chunk-FD5SJOWT.js} +10 -7
  110. package/chunks/{chunk-SS5SDCD3.js → chunk-FRICLXCZ.js} +7 -7
  111. package/chunks/{chunk-NU7RKEZR.js → chunk-FUO5V5KI.js} +14 -7
  112. package/chunks/{chunk-G6FECKTJ.js → chunk-G5PBOQWI.js} +9 -6
  113. package/chunks/{chunk-CAJTKR6W.js → chunk-G7HBEEX7.js} +15 -9
  114. package/chunks/{chunk-4QHPPXK2.js → chunk-GB4UKWY5.js} +2 -2
  115. package/chunks/{chunk-QYMAKPY5.js → chunk-GH2S4GD5.js} +350 -12
  116. package/chunks/{chunk-LHBUKJG2.js → chunk-GXUTFQXK.js} +28 -25
  117. package/chunks/{chunk-KJO2LBUK.js → chunk-H43PSPYS.js} +5 -5
  118. package/chunks/{chunk-XSG6G3G6.js → chunk-HJBHMANB.js} +12 -14
  119. package/chunks/chunk-HRPFBHW7.js +336 -0
  120. package/chunks/{chunk-6PJOTWAN.js → chunk-HT5S5TRQ.js} +1 -1
  121. package/chunks/{chunk-HCOBAG2L.js → chunk-HWVUSYSN.js} +3 -8
  122. package/chunks/{chunk-2OUD5T67.js → chunk-I2TMJPCV.js} +213 -185
  123. package/chunks/{chunk-CLWO3B77.js → chunk-I4NRYS6A.js} +11 -11
  124. package/chunks/{chunk-V7EESTJV.js → chunk-I5N4EAS6.js} +1 -1
  125. package/chunks/{chunk-K5KXUXWC.js → chunk-IG4W5SJR.js} +3 -3
  126. package/chunks/{chunk-FROAFEFB.js → chunk-IPATA3T2.js} +3 -3
  127. package/chunks/{chunk-NKLP3DCK.js → chunk-IQAFKVXS.js} +1 -1
  128. package/chunks/{chunk-AYHQZBJ4.js → chunk-IRKQ4YYX.js} +3 -3
  129. package/chunks/{chunk-J3NNHTV6.js → chunk-J5TTWBZK.js} +6 -0
  130. package/chunks/{chunk-QFCDF5PL.js → chunk-JHN7UIDW.js} +1 -1
  131. package/chunks/{chunk-AVNATYLY.js → chunk-JJKNYRFY.js} +1 -1
  132. package/chunks/{chunk-CQH5KTKC.js → chunk-JR42V4UY.js} +1 -1
  133. package/chunks/chunk-JS73NNWF.js +30 -0
  134. package/chunks/{chunk-NV55WWD6.js → chunk-JUARRUMA.js} +802 -2011
  135. package/chunks/chunk-JX6XHPTX.js +26 -0
  136. package/chunks/{chunk-5JTIYALA.js → chunk-JZWOCUZ3.js} +1 -1
  137. package/chunks/{chunk-P2G476QN.js → chunk-KEVYJSI4.js} +13 -13
  138. package/chunks/{chunk-B466ZSHZ.js → chunk-KFN2IZYR.js} +3 -3
  139. package/chunks/{chunk-JWALNCLT.js → chunk-KGV55H53.js} +1 -1
  140. package/chunks/{chunk-23RFD54N.js → chunk-KHP66DFN.js} +1 -1
  141. package/chunks/{chunk-2SXSLSQE.js → chunk-KM3XVTMO.js} +12 -6
  142. package/chunks/{chunk-GPGU4S2N.js → chunk-KMU3ZHH4.js} +3 -3
  143. package/chunks/chunk-KOGW3YWJ.js +2054 -0
  144. package/chunks/{chunk-NMOD2FXQ.js → chunk-L26ONV2Y.js} +8 -8
  145. package/chunks/chunk-L34XSHIZ.js +28 -0
  146. package/chunks/{chunk-SEONHUS3.js → chunk-LAUEEBDL.js} +2 -0
  147. package/chunks/{chunk-3WK3QDNV.js → chunk-LB3WQQJK.js} +2 -2
  148. package/chunks/{chunk-URE3QBBB.js → chunk-LEPCWS5A.js} +3 -3
  149. package/chunks/{chunk-36GSQ3MM.js → chunk-LHBNR6EU.js} +2 -2
  150. package/chunks/{chunk-V4264FEG.js → chunk-LKODFJRD.js} +1 -1
  151. package/chunks/{chunk-PADPMMYM.js → chunk-LOBDDFYK.js} +5 -29
  152. package/chunks/{chunk-BXDAPVQU.js → chunk-LU77UT4D.js} +28 -4
  153. package/chunks/{chunk-RFIDDFAL.js → chunk-M4KFODIP.js} +1 -1
  154. package/chunks/{chunk-CFJY4DGX.js → chunk-M4LBBSVP.js} +4 -2
  155. package/chunks/{chunk-KYWTPLBJ.js → chunk-MOF6VZN2.js} +2 -2
  156. package/chunks/{chunk-DJPASAUV.js → chunk-MP6YZ4RK.js} +4829 -3638
  157. package/chunks/{chunk-T26EAKDL.js → chunk-N2TNM3QB.js} +2 -6
  158. package/chunks/{chunk-2TNL5KPM.js → chunk-N4QWUPDM.js} +7 -0
  159. package/chunks/{chunk-7S226YTK.js → chunk-NFIDVZND.js} +11 -1
  160. package/chunks/{chunk-ZEYFMJQA.js → chunk-NQ4L2CMD.js} +83 -18
  161. package/chunks/{chunk-ZZUKP7HV.js → chunk-NRL5CUZT.js} +1 -1
  162. package/chunks/{chunk-WXEA74YB.js → chunk-NSUKQ4DN.js} +9 -3
  163. package/chunks/chunk-NUHOLAQ6.js +59 -0
  164. package/chunks/{chunk-DJEZ55D4.js → chunk-NVVJTUSL.js} +336 -140
  165. package/chunks/{chunk-3XKLXHGK.js → chunk-NXKOVOM5.js} +9 -9
  166. package/chunks/{chunk-5Q372OFJ.js → chunk-O4KNCAX4.js} +57 -10
  167. package/chunks/{chunk-GOXKNSDZ.js → chunk-O5CD7T4T.js} +40 -9
  168. package/chunks/{chunk-XIQ5HQ2F.js → chunk-OBTWL6ZW.js} +1 -1
  169. package/chunks/{chunk-PDQGMSZK.js → chunk-ODZF64DM.js} +1 -1
  170. package/chunks/{chunk-5MK45KZ3.js → chunk-OHOO527W.js} +1 -1
  171. package/chunks/{chunk-36LGBEM6.js → chunk-OHU2H5CS.js} +1 -1
  172. package/chunks/{chunk-JB4JIVTJ.js → chunk-OKTNXDVO.js} +1 -1
  173. package/chunks/{chunk-CETB5XY4.js → chunk-ORFIYTI2.js} +1 -1
  174. package/chunks/{chunk-7E7UCJHS.js → chunk-OSHQMOBS.js} +18 -17
  175. package/chunks/chunk-OSSTATJF.js +1310 -0
  176. package/chunks/chunk-P6UIF2OW.js +400 -0
  177. package/chunks/{chunk-U54AYGEC.js → chunk-PB7JBAHF.js} +15 -49
  178. package/chunks/{chunk-Y5S7LBOZ.js → chunk-PCRBLMIN.js} +17 -3
  179. package/chunks/{chunk-WAOIHTJS.js → chunk-PDAKFU7M.js} +1 -1
  180. package/chunks/{chunk-YTDVNSUQ.js → chunk-QAK5475D.js} +1 -1
  181. package/chunks/{chunk-ST5MDGH3.js → chunk-QI27MKNQ.js} +27 -19
  182. package/chunks/{chunk-MK2GIB46.js → chunk-QJGYU5PG.js} +1 -1
  183. package/chunks/{chunk-SMPR7SPO.js → chunk-QJNDUTOL.js} +45 -239
  184. package/chunks/{chunk-MQM5PJML.js → chunk-QJVZLILI.js} +1 -1
  185. package/chunks/{chunk-B5PHIJGI.js → chunk-QKDNS6FU.js} +2 -2
  186. package/chunks/{chunk-ZU4UDIWX.js → chunk-QQD2GART.js} +15 -9
  187. package/chunks/{chunk-62GQFYID.js → chunk-RAFQIHN2.js} +3 -3
  188. package/chunks/{chunk-MO3FC2WT.js → chunk-RJUVTJEZ.js} +1 -1
  189. package/chunks/{chunk-M6FOJXW3.js → chunk-RKW36UWC.js} +1 -1
  190. package/chunks/{chunk-GBJBJ4HX.js → chunk-RM4WT2XB.js} +4 -26
  191. package/chunks/{chunk-VGIFXISB.js → chunk-RN3YGDCA.js} +7 -5
  192. package/chunks/{chunk-DYXFD5RO.js → chunk-S2T7H5MI.js} +1 -1
  193. package/chunks/{chunk-FTF2YIZ5.js → chunk-S6H3ELPG.js} +1 -1
  194. package/chunks/{chunk-4NDLQAY2.js → chunk-SI7WDR3U.js} +524 -16
  195. package/chunks/{chunk-2YOHKHYR.js → chunk-SRF4KTAG.js} +6 -6
  196. package/chunks/{chunk-ZZMSC3RG.js → chunk-STCVJXQB.js} +24 -24
  197. package/chunks/{chunk-ST5V3ZOC.js → chunk-SULZPKTA.js} +3 -3
  198. package/chunks/{chunk-6X7EU5TI.js → chunk-SX2QIMJV.js} +9 -7
  199. package/chunks/{chunk-V5J4J5TP.js → chunk-TJYRTS4S.js} +2 -20
  200. package/chunks/{chunk-C3PEFRKD.js → chunk-TMKTOTMQ.js} +5 -5
  201. package/chunks/{chunk-ISKH4QX3.js → chunk-TQHPVKO6.js} +4 -4
  202. package/chunks/{chunk-HVC3PNVC.js → chunk-TSZSGQ3N.js} +1 -1
  203. package/chunks/{chunk-ICURCKIU.js → chunk-U4DJ5XB3.js} +594 -91
  204. package/chunks/{chunk-TTX2JUE6.js → chunk-U6D2PPMN.js} +1 -1
  205. package/chunks/{chunk-GVIVASYK.js → chunk-UAKRDON5.js} +4 -4
  206. package/chunks/{chunk-D5LUXLUH.js → chunk-UJ4DUYIH.js} +18 -4
  207. package/chunks/{chunk-VTHREBQM.js → chunk-UKYXYWI2.js} +2 -2
  208. package/chunks/{chunk-ZYMLPEZQ.js → chunk-UM2FFKXN.js} +3 -3
  209. package/chunks/{chunk-2OBKDPZZ.js → chunk-UPFRILIL.js} +2 -2
  210. package/chunks/{chunk-2HYKTO7V.js → chunk-UUASLXHW.js} +55 -6
  211. package/chunks/chunk-V5U2NZNJ.js +29 -0
  212. package/chunks/{chunk-P5Y23G2L.js → chunk-V7RNNPGC.js} +1 -18
  213. package/chunks/{chunk-Q2MSPKIJ.js → chunk-VBWD6C27.js} +1 -1
  214. package/chunks/chunk-VGHZT6JR.js +51 -0
  215. package/chunks/{chunk-MPNBVAEU.js → chunk-VNAYZAFX.js} +4 -4
  216. package/chunks/chunk-VPSIC437.js +780 -0
  217. package/chunks/{chunk-AIAOIFY4.js → chunk-VWTSRH6C.js} +92 -17
  218. package/chunks/{chunk-4K7KNVWH.js → chunk-VYIUNFEA.js} +3 -3
  219. package/chunks/{chunk-EQSBPBZ3.js → chunk-WP4AX3XD.js} +5 -7
  220. package/chunks/{chunk-BFPESSTR.js → chunk-XEAAO654.js} +1 -1
  221. package/chunks/{chunk-RU7BK6B3.js → chunk-XLXAZLDR.js} +3 -3
  222. package/chunks/{chunk-EFWRMA2I.js → chunk-YPWZTR7F.js} +3 -3
  223. package/chunks/{chunk-XF63PKEN.js → chunk-ZDFQGHZH.js} +1 -1
  224. package/chunks/{chunk-OZ6KS6KW.js → chunk-ZGCKTAL5.js} +6 -1
  225. package/chunks/chunk-ZHO2CW6D.js +205 -0
  226. package/chunks/chunk-ZJ2LM2SI.js +198 -0
  227. package/chunks/{chunk-AYFA7MZV.js → chunk-ZKFTS3OV.js} +6 -6
  228. package/chunks/{chunk-HMJ2P3SV.js → chunk-ZL4HFSL6.js} +91 -29
  229. package/chunks/{chunk-DJECZIJX.js → chunk-ZTPGUFQV.js} +30 -8
  230. package/chunks/{chunk-7EQQR46F.js → chunk-ZVP4PWBU.js} +1 -1
  231. package/chunks/chunk-bdqvmfwv-ZTSOWAFE.js +17446 -0
  232. package/chunks/config-utils-LVSYDLHZ.js +114 -0
  233. package/chunks/contextCommand-TZD7UAJK.js +107 -0
  234. package/chunks/{core-runtime-AXB6SK5D.js → core-runtime-B4UKKIAQ.js} +63 -62
  235. package/chunks/{create-sub-session-23ITIELI.js → create-sub-session-LUPWEUHR.js} +3 -3
  236. package/chunks/{create-sub-session-4QNE64MR.js → create-sub-session-NJ24B4US.js} +94 -66
  237. package/chunks/{cron-create-KJ4IY6PP.js → cron-create-CRSPET3H.js} +4 -4
  238. package/chunks/{cron-delete-MBLQCAYY.js → cron-delete-DB77SZTU.js} +4 -4
  239. package/chunks/{cron-list-DWH2PQ47.js → cron-list-U2JNYWV6.js} +4 -4
  240. package/chunks/{daemon-3GNHB3M2.js → daemon-RKDGBFLK.js} +613 -102
  241. package/chunks/{daemon-git-worktree-guard-IVAJJWYK.js → daemon-git-worktree-guard-O2HPOBAB.js} +62 -61
  242. package/chunks/daemon-status-provider-GRRVCJFW.js +117 -0
  243. package/chunks/daemon-trust-policy-YJL442BK.js +113 -0
  244. package/chunks/{daemon-trust-policy-monitor-KGGROSIV.js → daemon-trust-policy-monitor-JL7F4Y4Q.js} +68 -67
  245. package/chunks/{de-X6HLSIFE.js → de-T4BLOKEC.js} +3 -0
  246. package/chunks/deferred-core-runtime-S32AYVZI.js +115 -0
  247. package/chunks/{devtools-JCG4K2NZ.js → devtools-VDRJYPZF.js} +1 -1
  248. package/chunks/{discovery-X2NV535U.js → discovery-TUM3ZQ6U.js} +2 -2
  249. package/chunks/{display-image-BE7I6ZB6.js → display-image-73C7XNRK.js} +5 -5
  250. package/chunks/{dist-LVZCXVPF.js → dist-62OZ7QXB.js} +44 -26
  251. package/chunks/{dist-GFN5DCBX.js → dist-EDHQIBYD.js} +152 -63
  252. package/chunks/{dist-N6W6E753.js → dist-GT64AAUR.js} +135 -26
  253. package/chunks/{dist-6BPYWHVD.js → dist-JVXT4VUJ.js} +14 -7
  254. package/chunks/{dist-4WXLCBDR.js → dist-L6URO6CK.js} +12 -5
  255. package/chunks/{dist-5VXFRTWU.js → dist-LXFYIJNG.js} +866 -172
  256. package/chunks/{dist-SWQMYP2Q.js → dist-PDGNRVPY.js} +27 -8
  257. package/chunks/{dist-NSV4NBPK.js → dist-QAF5DO3Y.js} +380 -83
  258. package/chunks/{dist-HZNT6GQS.js → dist-ZCJLKQSP.js} +28 -14
  259. package/chunks/earlyInputCapture-BBPCIVZG.js +108 -0
  260. package/chunks/{edit-LEQLAGPZ.js → edit-SUGXY63Y.js} +47 -47
  261. package/chunks/{en-YLXBXM4Z.js → en-2RATMNX7.js} +5 -0
  262. package/chunks/{enter-worktree-35QCAAFP.js → enter-worktree-B6USKSIK.js} +7 -7
  263. package/chunks/{enterPlanMode-ONQN3WHE.js → enterPlanMode-MDX4RVVL.js} +48 -48
  264. package/chunks/{environment-UANTR7A4.js → environment-VN6RXDVN.js} +63 -62
  265. package/chunks/errors-UEY36PIT.js +114 -0
  266. package/chunks/{exit-worktree-XQD6D543.js → exit-worktree-DLQ73SJH.js} +10 -8
  267. package/chunks/exitPlanMode-EPHIEDAA.js +83 -0
  268. package/chunks/{fast-path-WUL7UZ6H.js → fast-path-Y73R42LV.js} +8 -7
  269. package/chunks/{fast-path-settings-XH426LUU.js → fast-path-settings-MFUR3IWK.js} +3 -3
  270. package/chunks/{fr-FTZWF462.js → fr-BGHGYX6A.js} +3 -0
  271. package/chunks/{glob-Y54QUWDY.js → glob-DMGH7EZN.js} +47 -47
  272. package/chunks/goal-tools-3RF3PXCL.js +99 -0
  273. package/chunks/{grep-5GPICQBU.js → grep-AJVLCVXC.js} +9 -7
  274. package/chunks/handleAutoUpdate-HVWQT2AU.js +110 -0
  275. package/chunks/i18n-5OR7NTRZ.js +125 -0
  276. package/chunks/{image-gen-J6FDGUZP.js → image-gen-VOIDOHOB.js} +8 -8
  277. package/chunks/initializer-JE5RQSOE.js +114 -0
  278. package/chunks/installationInfo-KO3CCSCK.js +108 -0
  279. package/chunks/{ja-2GL5FKYJ.js → ja-G3FTD5XE.js} +3 -0
  280. package/chunks/{keychain-token-storage-37XPR34V.js → keychain-token-storage-REZVMJA6.js} +2 -2
  281. package/chunks/list-3IORSFIY.js +117 -0
  282. package/chunks/list-agents-SBMONIUK.js +128 -0
  283. package/chunks/{llm-NSAVK5V3.js → llm-K26SUDVK.js} +223 -140
  284. package/chunks/{llm-content-generator-AY2QKXHE.js → llm-content-generator-TT6EAUD4.js} +11 -12
  285. package/chunks/loadedSettingsAdapter-KLLFZF3M.js +111 -0
  286. package/chunks/{loggingContentGenerator-DSFQHXIF.js → loggingContentGenerator-EYQBA4M4.js} +66 -65
  287. package/chunks/{loop-wakeup-XJFONSQ7.js → loop-wakeup-QA6SHCZT.js} +5 -5
  288. package/chunks/{ls-3VAT2J7A.js → ls-HEJNCEYO.js} +4 -4
  289. package/chunks/{lsp-5W7IRUBH.js → lsp-WOQKNZP6.js} +2 -2
  290. package/chunks/{managed-npm-update-TSWENTK5.js → managed-npm-update-HIJTODQT.js} +61 -60
  291. package/chunks/mcp-A2UEHETW.js +111 -0
  292. package/chunks/{monitor-RW4GWJHB.js → monitor-DKNZQAB2.js} +46 -46
  293. package/chunks/{node-QKLNSZMX.js → node-UETAYMMO.js} +3 -3
  294. package/chunks/nonInteractiveCli-YA47F2F4.js +190 -0
  295. package/chunks/{notebook-edit-CQNYS5OR.js → notebook-edit-MGHTRL2D.js} +47 -47
  296. package/chunks/{open-with-auth-YN3QZHVM.js → open-with-auth-D6JD6LDS.js} +3 -3
  297. package/chunks/{openaiContentGenerator-J6QIF7EX.js → openaiContentGenerator-ZJIEQ3ZJ.js} +26 -28
  298. package/chunks/pidfile-ETHAZNMY.js +112 -0
  299. package/chunks/{processUtils-GPHNANKZ.js → processUtils-UY3SAJJZ.js} +2 -2
  300. package/chunks/prompt-terminal-ledger-GZ747VYE.js +106 -0
  301. package/chunks/{pt-XN2YWJVM.js → pt-D73IFYT7.js} +3 -0
  302. package/chunks/{qwenContentGenerator-WWDXPYQI.js → qwenContentGenerator-VI4KATRY.js} +58 -58
  303. package/chunks/{qwenOAuth2-OF5WRBQT.js → qwenOAuth2-7AOCKSOQ.js} +7 -7
  304. package/chunks/{read-file-FQUQHC6N.js → read-file-P7F4P7LV.js} +11 -13
  305. package/chunks/{read-mcp-resource-XD257PGJ.js → read-mcp-resource-GLAGB6R7.js} +2 -2
  306. package/chunks/{record-artifact-VW23GS4F.js → record-artifact-SWVR7NSU.js} +4 -4
  307. package/chunks/renderer-selection-M4UN63VJ.js +99 -0
  308. package/chunks/{report-findings-AO5VYFLR.js → report-findings-AL5YW3KI.js} +5 -5
  309. package/chunks/{request-shutdown-BCLA3JV2.js → request-shutdown-5YK4IZ54.js} +8 -7
  310. package/chunks/resumeHistoryUtils-DPZKFW24.js +119 -0
  311. package/chunks/ripGrep-C7LJKUPZ.js +37 -0
  312. package/chunks/{ru-OLTMFJEW.js → ru-QMISLKRH.js} +3 -0
  313. package/chunks/{run-qwen-serve-5X6IDZER.js → run-qwen-serve-OGTEEUR2.js} +589 -251
  314. package/chunks/{runtime-HK27GMPF.js → runtime-LNBLEMZS.js} +73 -72
  315. package/chunks/scheduled-tasks-FLDYZQOF.js +128 -0
  316. package/chunks/{scheduler-WD4MHMO5.js → scheduler-73YXGUGW.js} +62 -61
  317. package/chunks/{sdk-exporters-grpc-G5IT4XS4.js → sdk-exporters-grpc-MXTVSE3C.js} +2 -2
  318. package/chunks/{sdk-exporters-http-TTU2CHBU.js → sdk-exporters-http-3JO5TJNU.js} +4 -4
  319. package/chunks/{sdk-impl-UUMVYMAL.js → sdk-impl-HZAUUTHJ.js} +6 -6
  320. package/chunks/{send-message-AJ4OCUBV.js → send-message-JC7NJTY6.js} +166 -35
  321. package/chunks/serve-3UR2H4CV.js +119 -0
  322. package/chunks/{server-GO2N5DH7.js → server-AOYZVVOM.js} +2904 -860
  323. package/chunks/{session-IFNHTUBT.js → session-UAWFNFGI.js} +119 -114
  324. package/chunks/session-attachments-root-ZCGXQQTR.js +104 -0
  325. package/chunks/{session-pr-refresh-I3UBWMVP.js → session-pr-refresh-CT2INROL.js} +157 -88
  326. package/chunks/{settings-L6N54CU6.js → settings-BHRGDASJ.js} +67 -66
  327. package/chunks/{shell-4Y5LLW6N.js → shell-YHOGC7TO.js} +46 -46
  328. package/chunks/{skill-YOWTRAKQ.js → skill-ZGBKNCHQ.js} +131 -97
  329. package/chunks/skill-settings-AKSP665O.js +119 -0
  330. package/chunks/spawnChannel-N25MBB6F.js +112 -0
  331. package/chunks/standalone-update-XGPWJDRN.js +119 -0
  332. package/chunks/start-opentui-ui-FZ4USOU7.js +55342 -0
  333. package/chunks/{startInteractiveUI-XDFSHBZD.js → startInteractiveUI-E2WQJUOA.js} +3509 -4706
  334. package/chunks/{syntheticOutput-ML43GEFN.js → syntheticOutput-HJNZSEHN.js} +3 -3
  335. package/chunks/{task-create-QN4LYRSE.js → task-create-6RSD54S5.js} +12 -12
  336. package/chunks/{task-list-JPLGK45U.js → task-list-IQSACPOM.js} +34 -11
  337. package/chunks/{task-stop-CXEH5L2D.js → task-stop-HE2LRQNW.js} +2 -2
  338. package/chunks/{task-update-IWEOJFV2.js → task-update-XAJ2NYOA.js} +13 -14
  339. package/chunks/{team-create-OOPXCDBA.js → team-create-SOKMYSQU.js} +54 -55
  340. package/chunks/{team-delete-RZVVSGCY.js → team-delete-NGNNKGMG.js} +25 -8
  341. package/chunks/{team-plan-approval-DSX5EWAT.js → team-plan-approval-U7ZWXYAY.js} +46 -46
  342. package/chunks/terminal-image-renderer-KKM4OBLO.js +117 -0
  343. package/chunks/theme-manager-GQHF3A7T.js +103 -0
  344. package/chunks/{todoWrite-WDJNQEMW.js → todoWrite-5UTVUXHA.js} +39 -9
  345. package/chunks/{tool-search-J5Q6U7DN.js → tool-search-IAI2RVWT.js} +21 -19
  346. package/chunks/total-session-admission-G4CGCSTG.js +113 -0
  347. package/chunks/trustedFolders-D2I3FDPB.js +123 -0
  348. package/chunks/{update-relaunch-SIKHLHVR.js → update-relaunch-5RWKZAL3.js} +5 -5
  349. package/chunks/updateCheck-ZXOQDFEI.js +119 -0
  350. package/chunks/useAutoAcceptIndicator-6EK4QGAH.js +121 -0
  351. package/chunks/{validateNonInterActiveAuth-JUDQP6V4.js → validateNonInterActiveAuth-QPFEKATS.js} +113 -109
  352. package/chunks/{version-C63GDDWN.js → version-JKNG7YDH.js} +1 -1
  353. package/chunks/{web-fetch-FOQZMNSC.js → web-fetch-X3AHIIHW.js} +16 -19
  354. package/chunks/{web-search-PUJTBFUC.js → web-search-K2FMOGS5.js} +10 -11
  355. package/chunks/{web-shell-static-HNB4FDOE.js → web-shell-static-POZHGGXE.js} +5 -4
  356. package/chunks/{workflow-Y5IPINVH.js → workflow-TOLPAK5G.js} +213 -119
  357. package/chunks/workspace-providers-status-PCJK3RC7.js +115 -0
  358. package/chunks/{workspace-registration-store-SMJWI2AI.js → workspace-registration-store-KQWVVW4Y.js} +2 -1
  359. package/chunks/workspace-registry-YNIOB6HJ.js +122 -0
  360. package/chunks/workspace-runtime-coordinator-WG2RNEN7.js +123 -0
  361. package/chunks/workspace-service-G4ZNBOFH.js +127 -0
  362. package/chunks/workspace-skills-status-FMTPPMWC.js +114 -0
  363. package/chunks/{workspace-trust-reconciler-PLIDLJZX.js → workspace-trust-reconciler-IBDFQBQS.js} +76 -77
  364. package/chunks/wrapper-JH3IFHT2.js +35 -0
  365. package/chunks/write-file-YTLFY2S5.js +88 -0
  366. package/chunks/{zh-UNY63FR3.js → zh-25DF7OGK.js} +5 -0
  367. package/chunks/{zh-TW-RPTMRTHG.js → zh-TW-5EDMZVGK.js} +5 -0
  368. package/chunks/{zoom-image-LYQD7BQA.js → zoom-image-IFXSN74N.js} +11 -13
  369. package/cli.js +131 -90
  370. package/locales/ca.js +6 -0
  371. package/locales/de.js +6 -0
  372. package/locales/en.js +9 -0
  373. package/locales/fr.js +6 -0
  374. package/locales/ja.js +6 -0
  375. package/locales/pt.js +6 -0
  376. package/locales/ru.js +6 -0
  377. package/locales/zh-TW.js +9 -0
  378. package/locales/zh.js +9 -0
  379. package/package.json +3 -3
  380. package/web-shell/assets/{abnfDiagram-VCTEODGH-TRCMSA_6.js → abnfDiagram-VCTEODGH-Cxf7xE_Z.js} +1 -1
  381. package/web-shell/assets/{arc-D9Uls5b3.js → arc-ESi1eNkE.js} +1 -1
  382. package/web-shell/assets/{architectureDiagram-5GKGNRK7-Bwb8jPXg.js → architectureDiagram-5GKGNRK7-D9l7-bDo.js} +1 -1
  383. package/web-shell/assets/{blockDiagram-NRAW4CY4-DHj71TSX.js → blockDiagram-NRAW4CY4-Bc8DEasw.js} +1 -1
  384. package/web-shell/assets/{c4Diagram-UCG6FXSJ-uKBBdbyr.js → c4Diagram-UCG6FXSJ-Dimb2Hmh.js} +1 -1
  385. package/web-shell/assets/channel-B7ohGDil.js +1 -0
  386. package/web-shell/assets/{chunk-2Q5K7J3B-BZd0Phrl.js → chunk-2Q5K7J3B-jVDmOpAQ.js} +1 -1
  387. package/web-shell/assets/{chunk-5VM5RSS4-7KNeNBqN.js → chunk-5VM5RSS4-DbG_SwdB.js} +1 -1
  388. package/web-shell/assets/{chunk-F27PBJKO-BeboS7Fi.js → chunk-F27PBJKO-QEc4cY1v.js} +1 -1
  389. package/web-shell/assets/{chunk-G27WJ6UU-RV3JONoj.js → chunk-G27WJ6UU-iJ36lQ3X.js} +1 -1
  390. package/web-shell/assets/{chunk-JWPE2WC7-Yw9FCFsP.js → chunk-JWPE2WC7-DuArnVtF.js} +1 -1
  391. package/web-shell/assets/{chunk-LCL6LL3I-GIMnydDe.js → chunk-LCL6LL3I-DxOf1zwL.js} +1 -1
  392. package/web-shell/assets/{chunk-POPQ4Y6H-Cfrux7bL.js → chunk-POPQ4Y6H-lVLu9Ild.js} +1 -1
  393. package/web-shell/assets/{chunk-SVP7TREG-BlvIN0CO.js → chunk-SVP7TREG-C6XYlIer.js} +1 -1
  394. package/web-shell/assets/{chunk-XXDRQBXY-DMs7Rr4t.js → chunk-XXDRQBXY-CiG2j2Ji.js} +1 -1
  395. package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +1 -0
  396. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +1 -0
  397. package/web-shell/assets/{cose-bilkent-JH36ORCC-DNGqTNwI.js → cose-bilkent-JH36ORCC-DGVHMMVm.js} +1 -1
  398. package/web-shell/assets/{cynefin-OW5HDTMX-CojMpaoH.js → cynefin-OW5HDTMX-D6cgpCnH.js} +1 -1
  399. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DF07YXGo.js → cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js} +1 -1
  400. package/web-shell/assets/{dagre-3AP2YEHR-17-4WtCH.js → dagre-3AP2YEHR-B4ABMIG-.js} +1 -1
  401. package/web-shell/assets/{diagram-S7CK7UJ4-G3Wuyz9m.js → diagram-S7CK7UJ4-DgCkp_Lm.js} +1 -1
  402. package/web-shell/assets/{diagram-UQ7AKVKN-nyWIKZ8P.js → diagram-UQ7AKVKN-FG0FNokz.js} +1 -1
  403. package/web-shell/assets/{diagram-VSXAHHWV-tKHhmYSC.js → diagram-VSXAHHWV-JgkP9qg-.js} +1 -1
  404. package/web-shell/assets/{diagram-VX7I27RA-CpDf1hYk.js → diagram-VX7I27RA-ADh2x83l.js} +1 -1
  405. package/web-shell/assets/{diagram-Z3DM3KII-Cah2IFXG.js → diagram-Z3DM3KII-yXqoYF1J.js} +1 -1
  406. package/web-shell/assets/{ebnfDiagram-PWID7BFC-DNaCkgxy.js → ebnfDiagram-PWID7BFC-Duk83Ek_.js} +1 -1
  407. package/web-shell/assets/{erDiagram-SSCWMZ5O-CAdRgcf1.js → erDiagram-SSCWMZ5O-DMdvxySG.js} +1 -1
  408. package/web-shell/assets/{flowDiagram-A5DVABFB-CMUJAShL.js → flowDiagram-A5DVABFB-DHjVgSji.js} +1 -1
  409. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-o-_MUNey.js → ganttDiagram-EL5Y4UJY-DMM9DkCE.js} +1 -1
  410. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js → gitGraphDiagram-WWUBYQGX-t_ug9vO8.js} +1 -1
  411. package/web-shell/assets/index-BGZRqbRo.css +36 -0
  412. package/web-shell/assets/index-DRri_6_x.js +2067 -0
  413. package/web-shell/assets/{index-BK_NKxiJ.js → index-zqvnpGHv.js} +1 -1
  414. package/web-shell/assets/{infoDiagram-RXCK75RN-qJPeZbGP.js → infoDiagram-RXCK75RN-eT1fANNm.js} +1 -1
  415. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-7Om4vNo1.js → ishikawaDiagram-5VMMS53U-k3evzZNn.js} +1 -1
  416. package/web-shell/assets/{journeyDiagram-EYS64GPL-BNtXqmBW.js → journeyDiagram-EYS64GPL-CGim3EAi.js} +1 -1
  417. package/web-shell/assets/{kanban-definition-3QL26DDD-COgFec8P.js → kanban-definition-3QL26DDD-WHfJo-22.js} +1 -1
  418. package/web-shell/assets/{layout-B9n81PC9.js → layout-DkqIaFlJ.js} +1 -1
  419. package/web-shell/assets/{linear-Bb6nXZQq.js → linear-Bdkd3mCz.js} +1 -1
  420. package/web-shell/assets/{mermaid.core-Cgrm3JVT.js → mermaid.core-CGw0LkT_.js} +6 -6
  421. package/web-shell/assets/{mindmap-definition-FBJOCRG2-TKwLTjnG.js → mindmap-definition-FBJOCRG2-C9V4rBvo.js} +1 -1
  422. package/web-shell/assets/{pegDiagram-XKGWAZYB-BJPuvlpi.js → pegDiagram-XKGWAZYB-CwoI2T5G.js} +1 -1
  423. package/web-shell/assets/{pieDiagram-E7YTZNPT-D01VkNsW.js → pieDiagram-E7YTZNPT-DaTmBmPG.js} +1 -1
  424. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-C4hHsiv-.js → quadrantDiagram-AXDQQJYC-plh6MyGI.js} +1 -1
  425. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CuEO4xK2.js → railroadDiagram-O6MQD6OU-D_b-S0iK.js} +1 -1
  426. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D5J_vIo5.js → requirementDiagram-EFPCY7ZU-zUzTN7VE.js} +1 -1
  427. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-DQKY223V.js → sankeyDiagram-P5KCCOFB-m6AhoD0l.js} +1 -1
  428. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D27YV_cm.js → sequenceDiagram-WJ2MYXX4-Cwhzsine.js} +1 -1
  429. package/web-shell/assets/{sizeCapture-X5ZJPWSS-TJg8UcwV.js → sizeCapture-X5ZJPWSS-CcZuKIae.js} +1 -1
  430. package/web-shell/assets/{stateDiagram-HBIQ2CUA-CmnPzUIx.js → stateDiagram-HBIQ2CUA-CFoiJwD_.js} +1 -1
  431. package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +1 -0
  432. package/web-shell/assets/{swimlanes-XN3QIQJK-ByeP3_Nu.js → swimlanes-XN3QIQJK-CgS9hcaV.js} +1 -1
  433. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +8 -0
  434. package/web-shell/assets/{timeline-definition-24CTP7MA-BsFA5juR.js → timeline-definition-24CTP7MA-Dzzc05t9.js} +1 -1
  435. package/web-shell/assets/{vennDiagram-4TSXK5OY-DREP2ECo.js → vennDiagram-4TSXK5OY-DemK0f7Y.js} +1 -1
  436. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-iyd9lKi2.js → wardleyDiagram-VM6X3IG4-CquLxtMr.js} +1 -1
  437. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CVr1_j9q.js → xychartDiagram-S5SC5T6Z-BTBKTM5g.js} +1 -1
  438. package/web-shell/index.html +196 -2
  439. package/chunks/MaxSizedBox-X42SXBJH.js +0 -110
  440. package/chunks/agent-headless-IZM25LJA.js +0 -85
  441. package/chunks/bridge-ME6QXZNA.js +0 -119
  442. package/chunks/channel-settings-store-PEOI7XCG.js +0 -120
  443. package/chunks/chunk-7J6OTNGO.js +0 -424
  444. package/chunks/chunk-BWORX6FA.js +0 -135
  445. package/chunks/chunk-CPBF7KYF.js +0 -51
  446. package/chunks/chunk-H72BQNM3.js +0 -645
  447. package/chunks/chunk-JHYH6PYQ.js +0 -3096
  448. package/chunks/chunk-SS4MRMKE.js +0 -3525
  449. package/chunks/chunk-T4EFG2P5.js +0 -113
  450. package/chunks/chunk-XZA32HII.js +0 -19
  451. package/chunks/chunk-ZYNTSXWK.js +0 -32
  452. package/chunks/config-utils-R6M3TA34.js +0 -113
  453. package/chunks/contextCommand-ZCAP23J6.js +0 -106
  454. package/chunks/daemon-status-provider-K3SJ5C2U.js +0 -117
  455. package/chunks/daemon-trust-policy-DOR3YG62.js +0 -112
  456. package/chunks/deferred-core-runtime-WOYLUQQ7.js +0 -114
  457. package/chunks/earlyInputCapture-OHBEVO4K.js +0 -107
  458. package/chunks/errors-WAK6KFBC.js +0 -113
  459. package/chunks/exitPlanMode-UEYBG6P5.js +0 -83
  460. package/chunks/goal-tools-PTD3MBA7.js +0 -411
  461. package/chunks/handleAutoUpdate-FP3NWNSG.js +0 -109
  462. package/chunks/i18n-INIU5X7A.js +0 -124
  463. package/chunks/initializer-TYODV6GE.js +0 -113
  464. package/chunks/installationInfo-AAPKYDSZ.js +0 -107
  465. package/chunks/list-TUODDN6J.js +0 -116
  466. package/chunks/list-agents-DI3YFTDT.js +0 -80
  467. package/chunks/loadedSettingsAdapter-KJCLZ3C4.js +0 -110
  468. package/chunks/mcp-MWSAPFOL.js +0 -110
  469. package/chunks/nonInteractiveCli-JXKL343Q.js +0 -185
  470. package/chunks/pidfile-QOIQZFT2.js +0 -111
  471. package/chunks/prompt-terminal-ledger-FOMFTYOM.js +0 -105
  472. package/chunks/resumeHistoryUtils-NSGF3UCB.js +0 -118
  473. package/chunks/ripGrep-4CAT6SKV.js +0 -39
  474. package/chunks/scheduled-tasks-MN2ZZ5P6.js +0 -127
  475. package/chunks/serve-2XCHPPGG.js +0 -118
  476. package/chunks/skill-settings-ZL4JY5UE.js +0 -118
  477. package/chunks/spawnChannel-ZST6XJVJ.js +0 -112
  478. package/chunks/standalone-update-THVU3OKY.js +0 -118
  479. package/chunks/terminal-image-renderer-KS25G33E.js +0 -114
  480. package/chunks/theme-manager-YMZNG45F.js +0 -102
  481. package/chunks/total-session-admission-PVN64JVV.js +0 -114
  482. package/chunks/trustedFolders-FATSC4YI.js +0 -122
  483. package/chunks/updateCheck-D3YG2WCD.js +0 -118
  484. package/chunks/useAutoAcceptIndicator-ILINOSAS.js +0 -120
  485. package/chunks/workspace-providers-status-IJ4VHFMB.js +0 -114
  486. package/chunks/workspace-registry-BTGZIMPK.js +0 -123
  487. package/chunks/workspace-service-SIN67ITC.js +0 -126
  488. package/chunks/workspace-skills-status-F3RKCUIX.js +0 -113
  489. package/chunks/write-file-PAIGB33C.js +0 -88
  490. package/web-shell/assets/channel-CXjVLaBa.js +0 -1
  491. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +0 -1
  492. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +0 -1
  493. package/web-shell/assets/index-Ci-z4zWY.js +0 -1913
  494. package/web-shell/assets/index-LDlXZRHA.css +0 -36
  495. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +0 -1
  496. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +0 -8
  497. /package/chunks/{chunk-FOGQO4FG.js → chunk-JA5CBKRP.js} +0 -0
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-UHQFIS7N.js";
5
+ } from "./chunk-EAHOJF6V.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -5,26 +5,26 @@ import {
5
5
  } from "./chunk-57OAHC2Y.js";
6
6
  import {
7
7
  loadSettings
8
- } from "./chunk-AIAOIFY4.js";
8
+ } from "./chunk-VWTSRH6C.js";
9
9
  import {
10
10
  getCurrentLanguage,
11
11
  t
12
- } from "./chunk-CLWO3B77.js";
12
+ } from "./chunk-I4NRYS6A.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-MF7HCQWZ.js";
15
+ } from "./chunk-65HWLGA7.js";
16
16
  import {
17
17
  ExtensionManager,
18
18
  getExtensionDescription,
19
19
  getExtensionDisplayName,
20
20
  require_prompts
21
- } from "./chunk-PZ66FRIC.js";
21
+ } from "./chunk-4F7GQGXB.js";
22
22
  import {
23
23
  stripAnsi
24
24
  } from "./chunk-TWPJO254.js";
25
25
  import {
26
26
  redactUrlCredentials
27
- } from "./chunk-B5PHIJGI.js";
27
+ } from "./chunk-QKDNS6FU.js";
28
28
  import {
29
29
  writeStdoutLine
30
30
  } from "./chunk-7FA2II6K.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-CLWO3B77.js";
5
+ } from "./chunk-I4NRYS6A.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -1,11 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- DEFAULT_QWEN_MODEL
5
- } from "./chunk-XZA32HII.js";
6
3
  import {
7
4
  preloadRuntimeFetchModule
8
- } from "./chunk-PPKZ7JOE.js";
5
+ } from "./chunk-22UH7VTP.js";
9
6
  import {
10
7
  init_esbuild_shims
11
8
  } from "./chunk-5O2XNYP6.js";
@@ -13,6 +10,10 @@ import {
13
10
  __name
14
11
  } from "./chunk-J2S4EL5Y.js";
15
12
 
13
+ // packages/core/src/utils/default-qwen-model.ts
14
+ init_esbuild_shims();
15
+ var DEFAULT_QWEN_MODEL = "coder-model";
16
+
16
17
  // packages/core/src/config/models.ts
17
18
  init_esbuild_shims();
18
19
  var DEFAULT_QWEN_EMBEDDING_MODEL = "text-embedding-v4";
@@ -410,18 +411,18 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
410
411
  try {
411
412
  if (authType === "openai" /* USE_OPENAI */) {
412
413
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
413
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-J6QIF7EX.js");
414
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-ZJIEQ3ZJ.js");
414
415
  return createOpenAIContentGenerator(generatorConfig, config);
415
416
  }, "loadBaseGenerator");
416
417
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
417
- const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-OF5WRBQT.js");
418
+ const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-7AOCKSOQ.js");
418
419
  try {
419
420
  const qwenClient = await getQwenOauthClient(
420
421
  config,
421
422
  isInitialAuth ? { requireCachedCredentials: true } : void 0
422
423
  );
423
424
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
424
- const { QwenContentGenerator } = await import("./qwenContentGenerator-WWDXPYQI.js");
425
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-VI4KATRY.js");
425
426
  return new QwenContentGenerator(qwenClient, generatorConfig, config);
426
427
  }, "loadBaseGenerator");
427
428
  } catch (error) {
@@ -432,12 +433,12 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
432
433
  }
433
434
  } else if (authType === "anthropic" /* USE_ANTHROPIC */) {
434
435
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
435
- const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-YVTB6QX7.js");
436
+ const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-L76MR5OR.js");
436
437
  return createAnthropicContentGenerator(generatorConfig, config);
437
438
  }, "loadBaseGenerator");
438
439
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
439
440
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
440
- const { createLlmContentGenerator } = await import("./llm-content-generator-AY2QKXHE.js");
441
+ const { createLlmContentGenerator } = await import("./llm-content-generator-TT6EAUD4.js");
441
442
  return createLlmContentGenerator(generatorConfig, config);
442
443
  }, "loadBaseGenerator");
443
444
  } else {
@@ -452,7 +453,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
452
453
  try {
453
454
  const [baseGenerator, { LoggingContentGenerator }] = await Promise.all([
454
455
  loadBaseGenerator(),
455
- import("./loggingContentGenerator-DSFQHXIF.js")
456
+ import("./loggingContentGenerator-EYQBA4M4.js")
456
457
  ]);
457
458
  return new LoggingContentGenerator(
458
459
  baseGenerator,
@@ -467,6 +468,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
467
468
  __name(createContentGenerator, "createContentGenerator");
468
469
 
469
470
  export {
471
+ DEFAULT_QWEN_MODEL,
470
472
  VERTEX_ADC_HINT,
471
473
  DEFAULT_QWEN_EMBEDDING_MODEL,
472
474
  MAINLINE_CODER_MODEL,
@@ -482,6 +484,12 @@ export {
482
484
  resetPreloadedContentGenerator,
483
485
  createContentGenerator
484
486
  };
487
+ /**
488
+ * @license
489
+ * Copyright 2025 Google LLC
490
+ * Copyright 2026 Qwen Team
491
+ * SPDX-License-Identifier: Apache-2.0
492
+ */
485
493
  /**
486
494
  * @license
487
495
  * Copyright 2025 Google LLC
@@ -11,7 +11,7 @@ import {
11
11
  init_esbuild_shims();
12
12
  function mapSkillConfigToStatus(skill, disablements = /* @__PURE__ */ new Map(), opts = {}) {
13
13
  const disablement = disablements.get(skill.name.toLowerCase());
14
- const disabledReason = opts.disabled ? "inactive_extension" : disablement?.reason;
14
+ const disabledReason = opts.disabled ? "inactive_extension" : disablement?.reason ?? (opts.enabled === false ? "default" : void 0);
15
15
  const modelInvocable = skill.disableModelInvocation !== true;
16
16
  return {
17
17
  kind: "skill",
@@ -13,6 +13,10 @@ import {
13
13
  import {
14
14
  isWithinRoot
15
15
  } from "./chunk-MR3PXB6E.js";
16
+ import {
17
+ isUnverifiableIdentityError,
18
+ openNoFollow
19
+ } from "./chunk-6HUXPLB5.js";
16
20
  import {
17
21
  require_proper_lockfile
18
22
  } from "./chunk-MLXTMF7H.js";
@@ -28,7 +32,6 @@ import {
28
32
  init_esbuild_shims();
29
33
  var import_proper_lockfile = __toESM(require_proper_lockfile(), 1);
30
34
  import { createHash } from "node:crypto";
31
- import { constants } from "node:fs";
32
35
  import * as fs from "node:fs/promises";
33
36
  import * as os from "node:os";
34
37
  import * as path from "node:path";
@@ -423,14 +426,16 @@ var WorkspaceRegistrationStore = class {
423
426
  }
424
427
  let file;
425
428
  try {
426
- file = await fs.open(
427
- this.filePath,
428
- (constants.O_RDONLY ?? 0) | (constants.O_NOFOLLOW ?? 0)
429
- );
429
+ file = await openNoFollow(this.filePath);
430
430
  } catch (err) {
431
431
  if (err.code === "ENOENT") {
432
432
  return emptySnapshot(this.primaryWorkspace);
433
433
  }
434
+ if (isUnverifiableIdentityError(err)) {
435
+ throw new WorkspaceRegistrationStoreError(
436
+ "Workspace registration store identity could not be verified"
437
+ );
438
+ }
434
439
  if (err.code === "ELOOP") {
435
440
  throw new WorkspaceRegistrationStoreError(
436
441
  "Workspace registration store must be a regular file"
@@ -563,7 +568,7 @@ var WorkspaceRegistrationStore = class {
563
568
  return removed;
564
569
  }
565
570
  async update(mutate) {
566
- const { atomicWriteFile } = await import("./deferred-core-runtime-WOYLUQQ7.js");
571
+ const { atomicWriteFile } = await import("./deferred-core-runtime-S32AYVZI.js");
567
572
  return withInProcessLock(this.filePath, async () => {
568
573
  const lock = await acquireFileLock(this.filePath);
569
574
  let committed = false;
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  loadSettings
5
- } from "./chunk-AIAOIFY4.js";
5
+ } from "./chunk-VWTSRH6C.js";
6
6
  import {
7
7
  getCurrentLanguage
8
- } from "./chunk-CLWO3B77.js";
8
+ } from "./chunk-I4NRYS6A.js";
9
9
  import {
10
10
  isWorkspaceTrusted
11
- } from "./chunk-MF7HCQWZ.js";
11
+ } from "./chunk-65HWLGA7.js";
12
12
  import {
13
13
  require_strip_json_comments
14
14
  } from "./chunk-NPQ5ZKRP.js";
15
15
  import {
16
16
  hashMcpServerConfig
17
- } from "./chunk-NV55WWD6.js";
17
+ } from "./chunk-JUARRUMA.js";
18
18
  import {
19
19
  Config,
20
20
  ExtensionManager,
@@ -25,18 +25,18 @@ import {
25
25
  isGatedMcpScope,
26
26
  normalizeClaudeMcpServer,
27
27
  runWithTimeout
28
- } from "./chunk-PZ66FRIC.js";
28
+ } from "./chunk-4F7GQGXB.js";
29
29
  import {
30
30
  getMCPServerLastError,
31
31
  getMCPServerStatus
32
- } from "./chunk-QYMAKPY5.js";
32
+ } from "./chunk-GH2S4GD5.js";
33
33
  import {
34
34
  atomicWriteFile
35
- } from "./chunk-23RFD54N.js";
35
+ } from "./chunk-KHP66DFN.js";
36
36
  import {
37
37
  Storage,
38
38
  getErrorMessage
39
- } from "./chunk-UHQFIS7N.js";
39
+ } from "./chunk-EAHOJF6V.js";
40
40
  import {
41
41
  writeStderrLine,
42
42
  writeStdoutLine
@@ -9,10 +9,10 @@ import {
9
9
  publishPendingCompileCache,
10
10
  reportRejectedLoaderKeys,
11
11
  resetLoaderKeyRejectionReportingForTesting
12
- } from "./chunk-MZCJWS5Y.js";
12
+ } from "./chunk-2M3EWQNG.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-MF7HCQWZ.js";
15
+ } from "./chunk-65HWLGA7.js";
16
16
  import {
17
17
  require_main
18
18
  } from "./chunk-5M6IDOMF.js";
@@ -20,7 +20,7 @@ import {
20
20
  QWEN_DIR,
21
21
  Storage,
22
22
  getErrorMessage
23
- } from "./chunk-UHQFIS7N.js";
23
+ } from "./chunk-EAHOJF6V.js";
24
24
  import {
25
25
  init_esbuild_shims
26
26
  } from "./chunk-5O2XNYP6.js";
@@ -428,7 +428,7 @@ function loadEnvironment(settings, startDir = process.cwd()) {
428
428
  publishPendingCompileCache();
429
429
  }
430
430
  __name(loadEnvironment, "loadEnvironment");
431
- function reloadEnvironment(settings, workspaceCwd, workspaceTrusted) {
431
+ function reloadEnvironment(settings, workspaceCwd, workspaceTrusted, options = {}) {
432
432
  const userLevelPaths = getUserLevelEnvPaths();
433
433
  const envFilePaths = findEnvFiles(
434
434
  settings,
@@ -437,6 +437,13 @@ function reloadEnvironment(settings, workspaceCwd, workspaceTrusted) {
437
437
  workspaceTrusted
438
438
  );
439
439
  const parsedEnvFiles = parseEnvFiles(envFilePaths, userLevelPaths);
440
+ if (parsedEnvFiles.readFailed && options.failClosedOnEnvFileReadError) {
441
+ return {
442
+ updatedKeys: [],
443
+ removedKeys: [],
444
+ envFileReadFailed: true
445
+ };
446
+ }
440
447
  if (process.env["CLOUD_SHELL"] === "true") {
441
448
  setUpCloudShellEnvironmentInEnv(process.env, parsedEnvFiles.files);
442
449
  }
@@ -523,7 +530,11 @@ function reloadEnvironment(settings, workspaceCwd, workspaceTrusted) {
523
530
  for (const key of newSettingsEnvKeys.keys()) {
524
531
  settingsEnvSourcedKeys.add(key);
525
532
  }
526
- return { updatedKeys, removedKeys };
533
+ return {
534
+ updatedKeys,
535
+ removedKeys,
536
+ ...dotEnvReadFailed ? { envFileReadFailed: true } : {}
537
+ };
527
538
  }
528
539
  __name(reloadEnvironment, "reloadEnvironment");
529
540
 
@@ -0,0 +1,40 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/core/src/utils/formatters.ts
11
+ init_esbuild_shims();
12
+ var BYTES_PER_KB = 1024;
13
+ var BYTES_PER_MB = BYTES_PER_KB * 1024;
14
+ var BYTES_PER_GB = BYTES_PER_MB * 1024;
15
+ var roundedTo = /* @__PURE__ */ __name((value, digits) => Number(value.toFixed(digits)), "roundedTo");
16
+ var formatMemoryUsage = /* @__PURE__ */ __name((bytes) => {
17
+ if (roundedTo(bytes / BYTES_PER_KB, 1) < 1024) {
18
+ return `${(bytes / BYTES_PER_KB).toFixed(1)} KB`;
19
+ }
20
+ if (roundedTo(bytes / BYTES_PER_MB, 1) < 1024) {
21
+ return `${(bytes / BYTES_PER_MB).toFixed(1)} MB`;
22
+ }
23
+ return `${(bytes / BYTES_PER_GB).toFixed(2)} GB`;
24
+ }, "formatMemoryUsage");
25
+ var JSON_TAG_CHARACTER_ESCAPES = {
26
+ "<": "\\u003c",
27
+ ">": "\\u003e",
28
+ "&": "\\u0026"
29
+ };
30
+ var escapeJsonTagCharacters = /* @__PURE__ */ __name((json) => json.replace(/[<>&]/g, (character) => JSON_TAG_CHARACTER_ESCAPES[character]), "escapeJsonTagCharacters");
31
+
32
+ export {
33
+ formatMemoryUsage,
34
+ escapeJsonTagCharacters
35
+ };
36
+ /**
37
+ * @license
38
+ * Copyright 2025 Google LLC
39
+ * SPDX-License-Identifier: Apache-2.0
40
+ */
@@ -0,0 +1,348 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ isSameProcess,
5
+ readLocalBootId,
6
+ readPidNamespaceId,
7
+ readProcStartToken
8
+ } from "./chunk-373DQUVA.js";
9
+ import {
10
+ atomicWriteJSON
11
+ } from "./chunk-KHP66DFN.js";
12
+ import {
13
+ Storage,
14
+ createDebugLogger
15
+ } from "./chunk-EAHOJF6V.js";
16
+ import {
17
+ init_esbuild_shims
18
+ } from "./chunk-5O2XNYP6.js";
19
+ import {
20
+ __name
21
+ } from "./chunk-J2S4EL5Y.js";
22
+
23
+ // packages/core/src/services/session-registry.ts
24
+ init_esbuild_shims();
25
+ import { createHash } from "node:crypto";
26
+ import * as fs from "node:fs/promises";
27
+ import * as path from "node:path";
28
+ var debugLogger = createDebugLogger("SESSION_REGISTRY");
29
+ var SESSION_REGISTRY_SCHEMA_VERSION = 1;
30
+ var REGISTRY_DIR_MODE = 448;
31
+ var REGISTRY_FILE_MODE = 384;
32
+ var MAX_RECORD_BYTES = 64 * 1024;
33
+ var RECORD_FILENAME = /^\d+\.json$/;
34
+ var TEMP_FILENAME = /^\d+\.json\.[0-9a-f]{12}\.tmp$/;
35
+ var TEMP_MAX_AGE_MS = 5 * 60 * 1e3;
36
+ function getSessionRegistryDir() {
37
+ return path.join(Storage.getGlobalQwenDir(), "sessions");
38
+ }
39
+ __name(getSessionRegistryDir, "getSessionRegistryDir");
40
+ function getSessionRecordPath() {
41
+ return path.join(getSessionRegistryDir(), `${process.pid}.json`);
42
+ }
43
+ __name(getSessionRecordPath, "getSessionRecordPath");
44
+ var registeredRecordPath = null;
45
+ function thisProcessRecordPath() {
46
+ return registeredRecordPath ?? getSessionRecordPath();
47
+ }
48
+ __name(thisProcessRecordPath, "thisProcessRecordPath");
49
+ function deriveSessionName(cwd, sessionId) {
50
+ const base = Array.from(
51
+ path.basename(cwd).normalize("NFC").replace(/[^\p{L}\p{M}\p{N}._-]+/gu, "-").replace(/^-+|-+$/g, "")
52
+ ).slice(0, 32).join("");
53
+ const suffix = createHash("sha256").update(sessionId).digest("hex").slice(0, 2);
54
+ return `${base || "session"}-${suffix}`;
55
+ }
56
+ __name(deriveSessionName, "deriveSessionName");
57
+ async function registerSession(fields) {
58
+ let procStart = readProcStartToken(process.pid);
59
+ if (process.platform === "linux" && procStart === null) {
60
+ procStart = readProcStartToken(process.pid);
61
+ if (procStart === null) {
62
+ debugLogger.debug(
63
+ "registerSession: start token unreadable; refusing to write an impersonable record"
64
+ );
65
+ return false;
66
+ }
67
+ }
68
+ let pidNs = readPidNamespaceId();
69
+ if (process.platform === "linux" && pidNs === null) {
70
+ pidNs = readPidNamespaceId();
71
+ if (pidNs === null) {
72
+ debugLogger.debug(
73
+ "registerSession: namespace id unreadable; refusing to write an unreclaimable record"
74
+ );
75
+ return false;
76
+ }
77
+ }
78
+ const record = {
79
+ schemaVersion: SESSION_REGISTRY_SCHEMA_VERSION,
80
+ pid: process.pid,
81
+ procStart,
82
+ pidNs,
83
+ sessionId: fields.sessionId,
84
+ cwd: fields.cwd,
85
+ name: deriveSessionName(fields.cwd, fields.sessionId),
86
+ startedAt: Date.now(),
87
+ qwenVersion: fields.qwenVersion ?? null
88
+ };
89
+ try {
90
+ const dir = getSessionRegistryDir();
91
+ const filePath = getSessionRecordPath();
92
+ const existing = await readRecord(filePath);
93
+ if (existing.status === "read-error") {
94
+ debugLogger.debug(
95
+ "registerSession: record path read failed transiently; refusing to overwrite an intact record"
96
+ );
97
+ return false;
98
+ }
99
+ if (existing.status === "unsupported-version") {
100
+ debugLogger.debug(
101
+ "registerSession: record path held by a newer-schema record"
102
+ );
103
+ return false;
104
+ }
105
+ if (existing.status === "ok" && !matchesLocalIdentity(existing.record)) {
106
+ debugLogger.debug(
107
+ "registerSession: record path held by a foreign-identity record"
108
+ );
109
+ return false;
110
+ }
111
+ await fs.mkdir(dir, { recursive: true, mode: REGISTRY_DIR_MODE });
112
+ try {
113
+ await fs.chmod(dir, REGISTRY_DIR_MODE);
114
+ } catch (error) {
115
+ const code = error?.code;
116
+ if (code !== "ENOSYS" && code !== "ENOTSUP") throw error;
117
+ }
118
+ await atomicWriteJSON(filePath, record, {
119
+ mode: REGISTRY_FILE_MODE,
120
+ forceMode: true,
121
+ noFollow: true
122
+ });
123
+ registeredRecordPath = filePath;
124
+ return true;
125
+ } catch (error) {
126
+ debugLogger.debug(`registerSession failed: ${describe(error)}`);
127
+ return false;
128
+ }
129
+ }
130
+ __name(registerSession, "registerSession");
131
+ async function patchSessionRecord(patch) {
132
+ try {
133
+ const filePath = thisProcessRecordPath();
134
+ const existing = await readRecord(filePath);
135
+ if (existing.status !== "ok" || !matchesLocalIdentity(existing.record)) {
136
+ return false;
137
+ }
138
+ const record = existing.record;
139
+ const currentToken = readProcStartToken(process.pid);
140
+ if (record.procStart !== null && record.procStart !== currentToken) {
141
+ return false;
142
+ }
143
+ await atomicWriteJSON(
144
+ filePath,
145
+ { ...record, ...patch },
146
+ { mode: REGISTRY_FILE_MODE, forceMode: true, noFollow: true }
147
+ );
148
+ return true;
149
+ } catch (error) {
150
+ debugLogger.debug(`patchSessionRecord failed: ${describe(error)}`);
151
+ return false;
152
+ }
153
+ }
154
+ __name(patchSessionRecord, "patchSessionRecord");
155
+ async function unregisterSession() {
156
+ try {
157
+ const filePath = thisProcessRecordPath();
158
+ registeredRecordPath = null;
159
+ const existing = await readRecord(filePath);
160
+ if (existing.status === "unsupported-version" || existing.status === "read-error") {
161
+ return;
162
+ }
163
+ if (existing.status === "ok" && !matchesLocalIdentity(existing.record)) {
164
+ return;
165
+ }
166
+ await fs.unlink(filePath);
167
+ } catch (error) {
168
+ if (error?.code === "ENOENT") return;
169
+ debugLogger.debug(`unregisterSession failed: ${describe(error)}`);
170
+ }
171
+ }
172
+ __name(unregisterSession, "unregisterSession");
173
+ async function readOwnSessionRecord() {
174
+ try {
175
+ const existing = await readRecord(thisProcessRecordPath());
176
+ if (existing.status !== "ok" || !matchesLocalIdentity(existing.record)) {
177
+ return null;
178
+ }
179
+ const record = existing.record;
180
+ const currentToken = readProcStartToken(process.pid);
181
+ if (record.procStart !== null && record.procStart !== currentToken) {
182
+ return null;
183
+ }
184
+ return record;
185
+ } catch (error) {
186
+ debugLogger.debug(`readOwnSessionRecord failed: ${describe(error)}`);
187
+ return null;
188
+ }
189
+ }
190
+ __name(readOwnSessionRecord, "readOwnSessionRecord");
191
+ async function listLiveSessions() {
192
+ let dir;
193
+ let entries;
194
+ try {
195
+ dir = getSessionRegistryDir();
196
+ entries = await fs.readdir(dir);
197
+ } catch (error) {
198
+ if (error?.code !== "ENOENT") {
199
+ debugLogger.debug(`listLiveSessions readdir failed: ${describe(error)}`);
200
+ }
201
+ return [];
202
+ }
203
+ const ownNamespace = readPidNamespaceId();
204
+ const ownBootId = readLocalBootId();
205
+ const live = [];
206
+ await Promise.all(
207
+ entries.map(async (name) => {
208
+ const filePath = path.join(dir, name);
209
+ if (!RECORD_FILENAME.test(name)) {
210
+ await sweepOrphanedTempFile(filePath, name);
211
+ return;
212
+ }
213
+ const read = await readRecord(filePath);
214
+ if (read.status !== "ok") return;
215
+ const record = read.record;
216
+ if (`${record.pid}.json` !== name) return;
217
+ if (record.pidNs !== ownNamespace) return;
218
+ const recordBootId = record.procStart === null ? null : bootIdOf(record.procStart);
219
+ if (recordBootId !== null && recordBootId !== ownBootId) {
220
+ return;
221
+ }
222
+ if (isSameProcess(record.pid, record.procStart)) {
223
+ live.push(record);
224
+ return;
225
+ }
226
+ const reread = await readRecord(filePath);
227
+ if (reread.status !== "ok" || reread.record.pid !== record.pid || reread.record.pidNs !== record.pidNs || reread.record.procStart !== record.procStart || reread.record.startedAt !== record.startedAt) {
228
+ return;
229
+ }
230
+ try {
231
+ await fs.unlink(filePath);
232
+ } catch {
233
+ }
234
+ })
235
+ );
236
+ return live.sort((a, b) => b.startedAt - a.startedAt);
237
+ }
238
+ __name(listLiveSessions, "listLiveSessions");
239
+ function matchesLocalIdentity(record) {
240
+ if (record.pid !== process.pid) return false;
241
+ if (record.pidNs !== readPidNamespaceId()) return false;
242
+ if (record.procStart === null) return true;
243
+ const ownBootId = readLocalBootId();
244
+ const recordBootId = bootIdOf(record.procStart);
245
+ if (ownBootId === null) return recordBootId === null;
246
+ return recordBootId === null || recordBootId === ownBootId;
247
+ }
248
+ __name(matchesLocalIdentity, "matchesLocalIdentity");
249
+ function bootIdOf(procStart) {
250
+ const sep = procStart.indexOf(":");
251
+ return sep === -1 ? null : procStart.slice(0, sep);
252
+ }
253
+ __name(bootIdOf, "bootIdOf");
254
+ async function sweepOrphanedTempFile(filePath, name) {
255
+ if (!TEMP_FILENAME.test(name)) return;
256
+ try {
257
+ const stat2 = await fs.stat(filePath);
258
+ if (!stat2.isFile()) return;
259
+ if (Date.now() - stat2.mtimeMs < TEMP_MAX_AGE_MS) return;
260
+ await fs.unlink(filePath);
261
+ } catch {
262
+ }
263
+ }
264
+ __name(sweepOrphanedTempFile, "sweepOrphanedTempFile");
265
+ var UNREADABLE = { status: "unreadable" };
266
+ var READ_ERROR = { status: "read-error" };
267
+ var UNSUPPORTED_VERSION = {
268
+ status: "unsupported-version"
269
+ };
270
+ async function readRecord(filePath) {
271
+ let raw;
272
+ try {
273
+ const stat2 = await fs.stat(filePath);
274
+ if (!stat2.isFile() || stat2.size > MAX_RECORD_BYTES) return UNREADABLE;
275
+ raw = await fs.readFile(filePath, "utf8");
276
+ } catch (error) {
277
+ if (error?.code === "ENOENT") {
278
+ return UNREADABLE;
279
+ }
280
+ return READ_ERROR;
281
+ }
282
+ let parsed;
283
+ try {
284
+ parsed = JSON.parse(raw);
285
+ } catch {
286
+ return UNREADABLE;
287
+ }
288
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
289
+ return UNREADABLE;
290
+ }
291
+ const value = parsed;
292
+ const schemaVersion = value["schemaVersion"];
293
+ if (typeof schemaVersion !== "number") return UNREADABLE;
294
+ if (schemaVersion > SESSION_REGISTRY_SCHEMA_VERSION) {
295
+ return UNSUPPORTED_VERSION;
296
+ }
297
+ const pid = value["pid"];
298
+ const sessionId = value["sessionId"];
299
+ const cwd = value["cwd"];
300
+ const name = value["name"];
301
+ const startedAt = value["startedAt"];
302
+ if (typeof pid !== "number" || !Number.isInteger(pid) || pid <= 0 || typeof sessionId !== "string" || typeof cwd !== "string" || typeof name !== "string" || typeof startedAt !== "number" || !Number.isFinite(startedAt)) {
303
+ return UNREADABLE;
304
+ }
305
+ const procStart = value["procStart"];
306
+ const pidNs = value["pidNs"];
307
+ const qwenVersion = value["qwenVersion"];
308
+ const ipcPath = value["ipcPath"];
309
+ const ipcToken = value["ipcToken"];
310
+ return {
311
+ status: "ok",
312
+ record: {
313
+ schemaVersion,
314
+ pid,
315
+ procStart: typeof procStart === "string" ? procStart : null,
316
+ pidNs: typeof pidNs === "number" && Number.isFinite(pidNs) ? pidNs : null,
317
+ sessionId,
318
+ cwd,
319
+ name,
320
+ startedAt,
321
+ qwenVersion: typeof qwenVersion === "string" ? qwenVersion : null,
322
+ // Optional rather than nulled: absent and empty both mean "not
323
+ // messageable", and a record written before this field existed must
324
+ // read back identically to one written after it.
325
+ ...typeof ipcPath === "string" && ipcPath.length > 0 ? { ipcPath } : {},
326
+ ...typeof ipcToken === "string" && ipcToken.length > 0 ? { ipcToken } : {}
327
+ }
328
+ };
329
+ }
330
+ __name(readRecord, "readRecord");
331
+ function describe(error) {
332
+ return error instanceof Error ? `${error.name}: ${error.message}` : String(error);
333
+ }
334
+ __name(describe, "describe");
335
+
336
+ export {
337
+ deriveSessionName,
338
+ registerSession,
339
+ patchSessionRecord,
340
+ unregisterSession,
341
+ readOwnSessionRecord,
342
+ listLiveSessions
343
+ };
344
+ /**
345
+ * @license
346
+ * Copyright 2026 Qwen
347
+ * SPDX-License-Identifier: Apache-2.0
348
+ */