@qwen-code/qwen-code 0.19.11 → 0.19.12-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/bundled/batch/SKILL.md +6 -0
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +11 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +11 -10
  4. package/bundled/qc-helper/docs/features/channels/overview.md +66 -11
  5. package/bundled/qc-helper/docs/features/sub-agents.md +8 -8
  6. package/bundled/qc-helper/docs/features/worktree.md +2 -2
  7. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +42 -7
  8. package/bundled/qc-helper/docs/qwen-serve.md +102 -40
  9. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  10. package/bundled/review/SKILL.md +60 -49
  11. package/bundled/simplify/SKILL.md +1 -1
  12. package/chunks/{MaxSizedBox-L6TGYDM3.js → MaxSizedBox-3KIWAU6Z.js} +31 -32
  13. package/chunks/{StandaloneSessionPicker-AKEQHU5P.js → StandaloneSessionPicker-TF626NO7.js} +45 -46
  14. package/chunks/acp-startup-profiler-N3RHHXJ3.js +25 -0
  15. package/chunks/{acpAgent-PTNBGJDN.js → acpAgent-JDVJXVBO.js} +1863 -507
  16. package/chunks/{agent-AJOMOZPJ.js → agent-BONWC4VY.js} +26 -27
  17. package/chunks/{agent-headless-CYKOMAXS.js → agent-headless-H7HKMGLZ.js} +26 -27
  18. package/chunks/{anthropicContentGenerator-HBRXJSP4.js → anthropicContentGenerator-ZZRGFEES.js} +35 -12
  19. package/chunks/{artifact-tool-MIZLXBLF.js → artifact-tool-PHO5XEGZ.js} +5 -5
  20. package/chunks/{askUserQuestion-XMJVPNWM.js → askUserQuestion-CEPBT47X.js} +2 -47
  21. package/chunks/{bridge-QKISWPCI.js → bridge-ATN2TLWJ.js} +31 -32
  22. package/chunks/{ca-CODEN7TD.js → ca-2SL2BXTK.js} +3 -2
  23. package/chunks/{channel-worker-group-SOUWTFHC.js → channel-worker-group-S3H5QHTI.js} +4 -4
  24. package/chunks/{channel-worker-manager-LOVSV3WW.js → channel-worker-manager-ZJ4HTMO2.js} +4 -4
  25. package/chunks/{channel-worker-supervisor-XW6MHJBQ.js → channel-worker-supervisor-JA6VZ5V5.js} +3 -3
  26. package/chunks/{chunk-ZIXOTAPZ.js → chunk-2DZ7E27L.js} +92 -3
  27. package/chunks/{chunk-L5U3ELZX.js → chunk-335ECZTA.js} +1 -1
  28. package/chunks/{chunk-2FO5GFKZ.js → chunk-3DJY4IFO.js} +1 -1
  29. package/chunks/{chunk-4AGTGMCQ.js → chunk-3PE7OY2G.js} +12 -12
  30. package/chunks/{chunk-QOTQH4CB.js → chunk-4AGBO6RB.js} +27 -10
  31. package/chunks/{chunk-Y66VOBRP.js → chunk-4CA4WUMS.js} +2 -2
  32. package/chunks/{chunk-LQIDP6K5.js → chunk-4CHDYDG3.js} +1 -1
  33. package/chunks/{chunk-574PTLMU.js → chunk-4OVECYBM.js} +407 -92
  34. package/chunks/{chunk-TV6K2FB4.js → chunk-4RPARQ5D.js} +2 -2
  35. package/chunks/{chunk-TL4R5TRK.js → chunk-4W55BHOC.js} +2 -2
  36. package/chunks/{chunk-RCEEXIOO.js → chunk-4XCVGEEX.js} +3 -3
  37. package/chunks/{chunk-3DWIFU7L.js → chunk-53UMEONK.js} +1 -1
  38. package/chunks/{chunk-AU3MFJPL.js → chunk-54KPEDM2.js} +8 -8
  39. package/chunks/{chunk-T76DGHGG.js → chunk-66F4IJ4L.js} +5 -5
  40. package/chunks/{chunk-YLSSEUAM.js → chunk-675SVDMD.js} +354 -278
  41. package/chunks/{chunk-NVTQZXR7.js → chunk-6QGZVKOO.js} +91 -52
  42. package/chunks/{chunk-NJOFRXTM.js → chunk-6TDA4EVC.js} +4200 -3450
  43. package/chunks/{chunk-BYH2JRK3.js → chunk-6WZZHJSZ.js} +5 -5
  44. package/chunks/{chunk-7X7TEQNX.js → chunk-76BFY7AF.js} +13 -0
  45. package/chunks/chunk-7KS72E2N.js +883 -0
  46. package/chunks/{chunk-CF5VJRGC.js → chunk-7LMAKIWE.js} +1 -1
  47. package/chunks/{chunk-WMNXXRGL.js → chunk-7O7WZH7N.js} +31 -31
  48. package/chunks/{chunk-7ZYHLN67.js → chunk-7OZGMFHC.js} +26 -75
  49. package/chunks/{chunk-6WPJRYLZ.js → chunk-7SX6WZNO.js} +3 -3
  50. package/chunks/{chunk-JGUT3LWZ.js → chunk-ANRANWVE.js} +4 -1
  51. package/chunks/{chunk-JD44PNGJ.js → chunk-AWOU24F6.js} +10 -5
  52. package/chunks/{chunk-6WGZDD67.js → chunk-BEFQGC6H.js} +2 -2
  53. package/chunks/{chunk-KXYJPRT5.js → chunk-BEZPRKD3.js} +28 -6
  54. package/chunks/{chunk-FYQ22K62.js → chunk-CHVH4DVN.js} +6 -5
  55. package/chunks/{chunk-LS56TX3M.js → chunk-CMHJEUVB.js} +1 -1
  56. package/chunks/{chunk-FXKOAEXP.js → chunk-CXWUXRD5.js} +14 -14
  57. package/chunks/{chunk-CAHY5ABC.js → chunk-DULSE2SH.js} +1 -1
  58. package/chunks/{chunk-SQ5BK3GO.js → chunk-DYUPBU7H.js} +1 -1
  59. package/chunks/{chunk-FNX3LGAK.js → chunk-E655RDRL.js} +1 -1
  60. package/chunks/{chunk-N5VIZTND.js → chunk-EWPLL4OT.js} +1 -1
  61. package/chunks/{chunk-FSA7ERJ2.js → chunk-F2RR4HO2.js} +1 -1
  62. package/chunks/{chunk-S63Z5V42.js → chunk-F2YCCUXI.js} +4 -4
  63. package/chunks/{chunk-3AYLDB6B.js → chunk-FEZXQXW2.js} +1 -1
  64. package/chunks/{chunk-OWT2CAEQ.js → chunk-GEHSF7MS.js} +105 -12
  65. package/chunks/{chunk-LXLTBIDP.js → chunk-HCCR43AY.js} +1 -1
  66. package/chunks/{chunk-7NMU22Q3.js → chunk-HQ7MDVBO.js} +18 -7
  67. package/chunks/{chunk-KSZKSE23.js → chunk-HVWPSGDY.js} +1 -1
  68. package/chunks/{chunk-YFVO2HOR.js → chunk-HZXU6YZW.js} +5 -5
  69. package/chunks/{chunk-HASK4LMI.js → chunk-IKLWU6YS.js} +13 -6
  70. package/chunks/{chunk-GNBBAQ6J.js → chunk-ILQ42UG6.js} +111 -40
  71. package/chunks/{chunk-THXDQSTA.js → chunk-IQRQVPGN.js} +49 -154
  72. package/chunks/{chunk-SPJQO2CE.js → chunk-J2MKYJKZ.js} +2 -2
  73. package/chunks/{chunk-SUARMD4Q.js → chunk-J6NT5YTN.js} +28 -2
  74. package/chunks/{chunk-TYLOFD2U.js → chunk-JCJPZMJV.js} +1 -1
  75. package/chunks/{chunk-BYB3GF2T.js → chunk-JCYMQU5F.js} +133 -6
  76. package/chunks/{chunk-6EDDYPI3.js → chunk-JUNVFQVY.js} +4 -4
  77. package/chunks/{chunk-CH2XVB47.js → chunk-K7P34F2J.js} +3 -3
  78. package/chunks/{chunk-5VWYKIMW.js → chunk-KANTXY7B.js} +2 -2
  79. package/chunks/{chunk-K7VD4XLT.js → chunk-LHEQDKAR.js} +1 -1
  80. package/chunks/{chunk-A2HWMJVO.js → chunk-LKR7QQ63.js} +3 -3
  81. package/chunks/{chunk-4HUDDSO5.js → chunk-LLIGYAQU.js} +4 -4
  82. package/chunks/{chunk-5Z452MMD.js → chunk-LODZMRXC.js} +154 -83
  83. package/chunks/{chunk-FBU7WRZI.js → chunk-LPHGXXZX.js} +6 -1
  84. package/chunks/{chunk-CPFIQVZJ.js → chunk-LYFDJTXE.js} +1 -1
  85. package/chunks/{chunk-TIOE2OPE.js → chunk-MCYZTKBV.js} +2 -2
  86. package/chunks/{chunk-ZQIYGQCG.js → chunk-MHEZV3OY.js} +506 -143
  87. package/chunks/{chunk-JWICTOXS.js → chunk-NGTQA57Y.js} +2 -2
  88. package/chunks/{chunk-5CNYZ7TN.js → chunk-NJQPQ4IO.js} +7 -7
  89. package/chunks/chunk-NSZJQACR.js +45 -0
  90. package/chunks/{chunk-DOPUYNXO.js → chunk-NUHSLBJZ.js} +7 -7
  91. package/chunks/{chunk-CITWNIXJ.js → chunk-NVUGS23Y.js} +5 -5
  92. package/chunks/{chunk-2Z5UX4KI.js → chunk-OSSDHJDU.js} +1 -1
  93. package/chunks/{chunk-YUZI3WAC.js → chunk-OWAK7LMW.js} +7 -0
  94. package/chunks/{chunk-Y3KFTWVX.js → chunk-OZWJAFFE.js} +6 -6
  95. package/chunks/{chunk-YGYSMY2R.js → chunk-PSISZNIT.js} +1629 -1142
  96. package/chunks/{chunk-4ROQY23C.js → chunk-PTXVHS2O.js} +7 -7
  97. package/chunks/{chunk-OKAIGAYW.js → chunk-QGONRHUS.js} +3 -3
  98. package/chunks/{chunk-PZL23GTM.js → chunk-QR6U5QPP.js} +8 -0
  99. package/chunks/chunk-QSG4ZFG4.js +257 -0
  100. package/chunks/{chunk-BXBDC476.js → chunk-R32BTEZY.js} +5 -5
  101. package/chunks/{chunk-AVEOWVOM.js → chunk-R3VWUU2E.js} +1 -1
  102. package/chunks/{chunk-RP5R7MB6.js → chunk-R4RIMOJL.js} +12 -12
  103. package/chunks/{chunk-ARKANCNX.js → chunk-SGPFJMRP.js} +1 -1
  104. package/chunks/{chunk-3M75MSVA.js → chunk-SMASS3CY.js} +1 -1
  105. package/chunks/{chunk-4IJMTYCB.js → chunk-SNONG66P.js} +818 -29
  106. package/chunks/chunk-TDKQP3M6.js +201 -0
  107. package/chunks/{chunk-VFX7EZIR.js → chunk-TFV3XVAZ.js} +8 -1
  108. package/chunks/{chunk-4LD5APFL.js → chunk-TYQMGACW.js} +1 -0
  109. package/chunks/{chunk-7NFB7LBQ.js → chunk-UE5TZ55T.js} +8 -0
  110. package/chunks/{chunk-F333XEAU.js → chunk-UOA2IHRI.js} +4 -3
  111. package/chunks/{chunk-VRR65QYW.js → chunk-V4PCIS25.js} +5 -1
  112. package/chunks/{chunk-WIEO4CWB.js → chunk-VAJS2E2D.js} +1 -1
  113. package/chunks/{chunk-GLNHPRZT.js → chunk-W4DFAUAO.js} +1 -1
  114. package/chunks/{chunk-STZQCNN3.js → chunk-W7H223ZZ.js} +1 -1
  115. package/chunks/{chunk-6Y6ORE2G.js → chunk-WACI4VES.js} +288 -20
  116. package/chunks/{chunk-WTNZ6DXB.js → chunk-WEPXQKGP.js} +1 -1
  117. package/chunks/{chunk-4BJVSIS3.js → chunk-WHQNBBWW.js} +2 -2
  118. package/chunks/{chunk-QDJ2R4CM.js → chunk-WTHRMVKB.js} +3 -3
  119. package/chunks/{chunk-L4Y55KIS.js → chunk-X6YQWCIJ.js} +1 -1
  120. package/chunks/{chunk-Q6TUALBE.js → chunk-XAAEDML2.js} +1 -1
  121. package/chunks/{chunk-BUAXJVNP.js → chunk-XACBIZJB.js} +3 -3
  122. package/chunks/{chunk-2OG646IN.js → chunk-XFJU7SVP.js} +4 -4
  123. package/chunks/{chunk-KKRTYONM.js → chunk-XSPFQQRE.js} +3 -3
  124. package/chunks/{chunk-V2DXTLUE.js → chunk-Y5UDBQYF.js} +3 -3
  125. package/chunks/{chunk-MQOVXZAF.js → chunk-YN2I5I42.js} +529 -61
  126. package/chunks/{chunk-FMNYGWOD.js → chunk-Z4ZCVYJ5.js} +14 -8
  127. package/chunks/{chunk-SY7NEYX4.js → chunk-ZFHHBRRA.js} +2 -2
  128. package/chunks/{chunk-QYG4BY6Q.js → chunk-ZPVGEMVC.js} +1 -1
  129. package/chunks/{computer-use-VZZMJEQ7.js → computer-use-UY4A72X7.js} +26 -27
  130. package/chunks/{config-utils-IQQT3GCI.js → config-utils-KWTRFP7D.js} +3 -3
  131. package/chunks/{contextCommand-PORKIZSY.js → contextCommand-3DZ2SVH6.js} +30 -31
  132. package/chunks/{create-sub-session-EAB2U5XW.js → create-sub-session-DIJOV6HV.js} +2 -2
  133. package/chunks/{create-sub-session-XVFKHAFW.js → create-sub-session-OT7WXLDO.js} +27 -28
  134. package/chunks/{cron-create-GMVKSXZT.js → cron-create-X462ERYA.js} +4 -4
  135. package/chunks/{cron-delete-VDZKUAVK.js → cron-delete-SL5UJUM3.js} +4 -4
  136. package/chunks/{cron-list-UG7C7RAR.js → cron-list-3MD6SVXI.js} +4 -4
  137. package/chunks/{daemon-IHR6WSPB.js → daemon-ZW6LHOXT.js} +91 -14
  138. package/chunks/{daemon-status-provider-ABLBA3UJ.js → daemon-status-provider-GTZOYSBO.js} +35 -36
  139. package/chunks/{de-NOXPCSYN.js → de-I7ZIYXZC.js} +3 -2
  140. package/chunks/{dist-PX2ERZ6I.js → dist-HCUUS6IH.js} +2 -2
  141. package/chunks/{dist-VYWUKURL.js → dist-O2IP3G5D.js} +1 -1
  142. package/chunks/{dist-GXJVCOS7.js → dist-RZBJT5O2.js} +2 -1
  143. package/chunks/{dist-V2YVLYOW.js → dist-Y54RURGT.js} +3 -1
  144. package/chunks/{dist-DOPL5LSQ.js → dist-YTPTCUAD.js} +1 -1
  145. package/chunks/{dist-4WCQEZIN.js → dist-ZJHKKWUD.js} +1 -1
  146. package/chunks/{earlyInputCapture-DJCU5SPU.js → earlyInputCapture-GGWVGBZ7.js} +27 -28
  147. package/chunks/{edit-O4VV5AO6.js → edit-JN467GIR.js} +27 -28
  148. package/chunks/{en-JFVULHTB.js → en-XE34GKAA.js} +7 -3
  149. package/chunks/{enter-worktree-XQYDDI2I.js → enter-worktree-MMO4VBQE.js} +26 -27
  150. package/chunks/{enterPlanMode-CESVMQBV.js → enterPlanMode-BRZOG4DB.js} +27 -30
  151. package/chunks/{environment-5KXOLZNR.js → environment-LOCDCWMZ.js} +29 -30
  152. package/chunks/{errors-EBUTCBAQ.js → errors-XXSL5HGG.js} +29 -30
  153. package/chunks/{exit-worktree-MWGNSPNX.js → exit-worktree-UD7PI5H5.js} +26 -27
  154. package/chunks/exitPlanMode-EIUETQI6.js +389 -0
  155. package/chunks/{fast-path-6V73F2T2.js → fast-path-ULGAEUVK.js} +2 -2
  156. package/chunks/{fr-HVFNU42H.js → fr-X7KDVZIY.js} +3 -2
  157. package/chunks/{gemini-TEFJZCIZ.js → gemini-KW3APZ4P.js} +133 -80
  158. package/chunks/{geminiContentGenerator-M56BEXWI.js → geminiContentGenerator-4BQ5QHPR.js} +5 -5
  159. package/chunks/{glob-DMYFEEAZ.js → glob-FPKAMR6B.js} +32 -28
  160. package/chunks/{grep-GYE47MD4.js → grep-MOGRCYB4.js} +32 -28
  161. package/chunks/{handleAutoUpdate-OLUY4L7L.js → handleAutoUpdate-QUMRZZOS.js} +33 -34
  162. package/chunks/{i18n-462JC7IY.js → i18n-F3W6YUYP.js} +28 -29
  163. package/chunks/{initializer-Y7WD4D2I.js → initializer-KLU2KAIZ.js} +33 -34
  164. package/chunks/{installationInfo-I2Z3BKCE.js → installationInfo-P3ZP2SIZ.js} +27 -28
  165. package/chunks/{ja-PY5AF544.js → ja-2ICT3KXF.js} +3 -2
  166. package/chunks/{keychain-token-storage-AU22CQI6.js → keychain-token-storage-K23CFKGN.js} +2 -2
  167. package/chunks/{list-XQ5MSAXP.js → list-4X6D5JD2.js} +35 -36
  168. package/chunks/{loadedSettingsAdapter-TQOWYE7C.js → loadedSettingsAdapter-446B6WKA.js} +32 -33
  169. package/chunks/{loop-wakeup-QXWZSCYM.js → loop-wakeup-6H7OENTB.js} +5 -5
  170. package/chunks/{ls-2OUTG3IZ.js → ls-APTSOOS5.js} +4 -4
  171. package/chunks/{lsp-4VMNXZW6.js → lsp-HPACPJAN.js} +2 -2
  172. package/chunks/{mcp-22LLEEVM.js → mcp-JYVOJZOD.js} +32 -33
  173. package/chunks/{monitor-VKG324X3.js → monitor-KY7YH7TL.js} +26 -27
  174. package/chunks/nonInteractiveCli-EK35TLVJ.js +129 -0
  175. package/chunks/{notebook-edit-FJJRBQ3S.js → notebook-edit-IHGW42QK.js} +27 -28
  176. package/chunks/{openaiContentGenerator-4T2OGTR5.js → openaiContentGenerator-FURUCKQJ.js} +13 -14
  177. package/chunks/{pidfile-XL3MDCBM.js → pidfile-WKUVXDMR.js} +27 -28
  178. package/chunks/{processUtils-7UCFN34D.js → processUtils-LHSRN76X.js} +2 -2
  179. package/chunks/{pt-A3PRQXMU.js → pt-JJ4XPIBP.js} +3 -2
  180. package/chunks/{qwenContentGenerator-PQUXJDIZ.js → qwenContentGenerator-NRLM7R36.js} +30 -31
  181. package/chunks/{qwenOAuth2-LEYOU7RU.js → qwenOAuth2-5FNX3AWH.js} +22 -5
  182. package/chunks/{read-file-3EYQML7E.js → read-file-VLEAEXFP.js} +9 -10
  183. package/chunks/{read-mcp-resource-JUFHCKSC.js → read-mcp-resource-C6NT52T6.js} +2 -2
  184. package/chunks/{record-artifact-DWSMBXYY.js → record-artifact-ENCU7QCL.js} +2 -2
  185. package/chunks/{ripGrep-S6WPGQNA.js → ripGrep-MT23EIDD.js} +26 -27
  186. package/chunks/{ru-IBCWUTOC.js → ru-STR4KTW7.js} +3 -2
  187. package/chunks/{run-qwen-serve-NSKBT3HU.js → run-qwen-serve-5HWOQFLI.js} +63 -47
  188. package/chunks/{runtime-LG5ZZ3VH.js → runtime-6IVKJSLW.js} +38 -37
  189. package/chunks/{scheduler-PLX3VVTB.js → scheduler-63GJG75U.js} +26 -27
  190. package/chunks/{send-message-JZ752NWD.js → send-message-5GZ4FX2V.js} +3 -3
  191. package/chunks/{serve-S2ZLRZZR.js → serve-3LL7RRDP.js} +32 -33
  192. package/chunks/{server-5ECMV4TM.js → server-AA24QLPA.js} +1672 -615
  193. package/chunks/{session-ILSONWG4.js → session-LRVCFQQQ.js} +102 -75
  194. package/chunks/{settings-BOE7WWSA.js → settings-ZX3OKUT4.js} +36 -37
  195. package/chunks/{shell-VW664JIZ.js → shell-KR3IMYH6.js} +26 -27
  196. package/chunks/{skill-COHV6625.js → skill-QLM2LSF7.js} +11 -12
  197. package/chunks/{spawnChannel-5UUR5XOZ.js → spawnChannel-6WFOK3SA.js} +28 -29
  198. package/chunks/{src-XPKFZ3RN.js → src-ADLNIPHD.js} +101 -72
  199. package/chunks/{standalone-update-IOOJ2NZQ.js → standalone-update-C54OTJWJ.js} +29 -30
  200. package/chunks/{startInteractiveUI-3NGJGXXS.js → startInteractiveUI-KFAOS6HC.js} +2342 -1796
  201. package/chunks/{stdioHelpers-UMY72QRP.js → stdioHelpers-HGIYTWAY.js} +3 -1
  202. package/chunks/{syntheticOutput-LELY6HAI.js → syntheticOutput-ULOVVLY4.js} +3 -3
  203. package/chunks/{task-create-QY3BIMNM.js → task-create-DUE2PMNI.js} +7 -7
  204. package/chunks/{task-list-D2U47WBJ.js → task-list-WVPNX7BZ.js} +5 -5
  205. package/chunks/{task-stop-N6E5IYLH.js → task-stop-CPEQWOT6.js} +2 -2
  206. package/chunks/{task-update-HJCQILLB.js → task-update-HY2LNFFB.js} +7 -7
  207. package/chunks/{team-create-UPLVZQFX.js → team-create-Q5B5M7UD.js} +26 -27
  208. package/chunks/{team-delete-RCWYDRF4.js → team-delete-JJV6IUOA.js} +5 -5
  209. package/chunks/{team-plan-approval-F5F432RO.js → team-plan-approval-J55PXNY2.js} +26 -27
  210. package/chunks/{theme-manager-JJE4BJ67.js → theme-manager-QWTDRPHV.js} +27 -28
  211. package/chunks/todoWrite-JHHIDOIV.js +358 -0
  212. package/chunks/{tool-search-LRXI4JLZ.js → tool-search-LSSKWZKH.js} +10 -11
  213. package/chunks/{total-session-admission-I4DHN6UP.js → total-session-admission-S6ATY5HY.js} +32 -33
  214. package/chunks/{trustedFolders-SEH7LNX2.js → trustedFolders-CY4TUPDJ.js} +28 -29
  215. package/chunks/turndown.cjs-FZHGMUTY.js +17670 -0
  216. package/chunks/{update-relaunch-T6ZKBUA6.js → update-relaunch-IOKOUV3K.js} +6 -6
  217. package/chunks/{updateCheck-FWLXZPRO.js → updateCheck-YNRFE4V7.js} +30 -31
  218. package/chunks/{validateNonInterActiveAuth-X6K2VWYT.js → validateNonInterActiveAuth-OXTECS4B.js} +68 -68
  219. package/chunks/{version-LIFSOGSE.js → version-2CZQQDL5.js} +1 -1
  220. package/chunks/web-fetch-7QTEGJI5.js +938 -0
  221. package/chunks/{workflow-NX2DFWGD.js → workflow-G3CZU256.js} +29 -30
  222. package/chunks/{workspace-providers-status-VYD6M2NE.js → workspace-providers-status-UHQOIPAZ.js} +35 -36
  223. package/chunks/{workspace-registration-store-2Y6PWOEL.js → workspace-registration-store-5WPCMX4F.js} +1 -1
  224. package/chunks/{workspace-registry-PKBDBWCA.js → workspace-registry-LAQCRQTH.js} +32 -33
  225. package/chunks/{workspace-service-HHORUHTS.js → workspace-service-6ZEUJY2Z.js} +38 -39
  226. package/chunks/{workspace-skills-status-O5Q26LIY.js → workspace-skills-status-YG6OITSM.js} +33 -34
  227. package/chunks/{write-file-NVAEZ3J2.js → write-file-E7T3PU3B.js} +60 -28
  228. package/chunks/{zh-PAUNIMHQ.js → zh-6ANG2HTL.js} +7 -3
  229. package/chunks/{zh-TW-GNEUIUFF.js → zh-TW-4RR3YHNN.js} +7 -3
  230. package/cli-entry.js +37 -2
  231. package/cli.js +17 -11
  232. package/locales/ca.js +3 -2
  233. package/locales/de.js +3 -2
  234. package/locales/en.js +10 -5
  235. package/locales/fr.js +3 -2
  236. package/locales/ja.js +3 -2
  237. package/locales/pt.js +3 -2
  238. package/locales/ru.js +3 -2
  239. package/locales/zh-TW.js +9 -3
  240. package/locales/zh.js +9 -3
  241. package/package.json +3 -3
  242. package/web-shell/assets/{arc-H74fE8UR.js → arc-_dVIKMdB.js} +1 -1
  243. package/web-shell/assets/{architectureDiagram-3BPJPVTR-DN3kEq-I.js → architectureDiagram-3BPJPVTR-MuN3nKpL.js} +1 -1
  244. package/web-shell/assets/{blockDiagram-GPEHLZMM-BrqbsFUF.js → blockDiagram-GPEHLZMM-BtmvJjzx.js} +1 -1
  245. package/web-shell/assets/{c4Diagram-AAUBKEIU-ClFhU1P-.js → c4Diagram-AAUBKEIU-Dvi58_BU.js} +1 -1
  246. package/web-shell/assets/channel-Bi5TehaT.js +1 -0
  247. package/web-shell/assets/{chunk-2J33WTMH-jCIcG0_M.js → chunk-2J33WTMH-YqxOVhS1.js} +1 -1
  248. package/web-shell/assets/{chunk-4BX2VUAB-DSkGe62-.js → chunk-4BX2VUAB-DoBgbC9z.js} +1 -1
  249. package/web-shell/assets/{chunk-55IACEB6-BxBHOGTd.js → chunk-55IACEB6-3NEQrBAr.js} +1 -1
  250. package/web-shell/assets/{chunk-727SXJPM-v_DS7dH7.js → chunk-727SXJPM-DrCZQxp0.js} +1 -1
  251. package/web-shell/assets/{chunk-AQP2D5EJ-1RzEKRPq.js → chunk-AQP2D5EJ-m_g3zjgv.js} +1 -1
  252. package/web-shell/assets/{chunk-FMBD7UC4-DyrSbLOX.js → chunk-FMBD7UC4-D1_crABJ.js} +1 -1
  253. package/web-shell/assets/{chunk-ND2GUHAM-BCmdsZiy.js → chunk-ND2GUHAM-BdhgVtBx.js} +1 -1
  254. package/web-shell/assets/{chunk-QZHKN3VN-CphHGW2D.js → chunk-QZHKN3VN-BlmThhm-.js} +1 -1
  255. package/web-shell/assets/classDiagram-4FO5ZUOK-BKhhRdd1.js +1 -0
  256. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BKhhRdd1.js +1 -0
  257. package/web-shell/assets/{cose-bilkent-S5V4N54A-D5kRC7Fi.js → cose-bilkent-S5V4N54A-Cbjm_00Z.js} +1 -1
  258. package/web-shell/assets/{dagre-BM42HDAG-DIiyJJ0U.js → dagre-BM42HDAG-C39QNVgC.js} +1 -1
  259. package/web-shell/assets/{diagram-2AECGRRQ-BOcuB8xU.js → diagram-2AECGRRQ-DNXSAixC.js} +1 -1
  260. package/web-shell/assets/{diagram-5GNKFQAL-CMgiZ4d3.js → diagram-5GNKFQAL-BCbGUPEA.js} +1 -1
  261. package/web-shell/assets/{diagram-KO2AKTUF-Ctx8pfN0.js → diagram-KO2AKTUF-1eujKSDC.js} +1 -1
  262. package/web-shell/assets/{diagram-LMA3HP47-BT5REAWC.js → diagram-LMA3HP47-DUMKXgql.js} +1 -1
  263. package/web-shell/assets/{diagram-OG6HWLK6-CJkUqXcp.js → diagram-OG6HWLK6-BFktU3_u.js} +1 -1
  264. package/web-shell/assets/{erDiagram-TEJ5UH35-DyvNNX6v.js → erDiagram-TEJ5UH35-BvJC7DLk.js} +1 -1
  265. package/web-shell/assets/{flowDiagram-I6XJVG4X-VBf8_My8.js → flowDiagram-I6XJVG4X-Cgu3PlOt.js} +1 -1
  266. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CviJnR7B.js → ganttDiagram-6RSMTGT7-DLNXN5Xh.js} +1 -1
  267. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BY66_Oze.js → gitGraphDiagram-PVQCEYII-BQFRDv6R.js} +1 -1
  268. package/web-shell/assets/index-C_ouplMQ.js +1187 -0
  269. package/web-shell/assets/{index-DhYuvi3j.js → index-CdC3pjP3.js} +1 -1
  270. package/web-shell/assets/index-XGDFJE-X.css +5 -0
  271. package/web-shell/assets/{infoDiagram-5YYISTIA-D2jaewWZ.js → infoDiagram-5YYISTIA-DT2mOSvp.js} +1 -1
  272. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BpnNTyi5.js → ishikawaDiagram-YF4QCWOH-9fy_K4bd.js} +1 -1
  273. package/web-shell/assets/{journeyDiagram-JHISSGLW-CA55GNZF.js → journeyDiagram-JHISSGLW-CoGSEuhE.js} +1 -1
  274. package/web-shell/assets/{kanban-definition-UN3LZRKU-DyiSl_Ts.js → kanban-definition-UN3LZRKU-BP9hHYIj.js} +1 -1
  275. package/web-shell/assets/{linear-B-sN3dkV.js → linear-uIroDsmp.js} +1 -1
  276. package/web-shell/assets/{mermaid.core-xf9SXDdb.js → mermaid.core-BUwoStsA.js} +5 -5
  277. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DXhr2kRk.js → mindmap-definition-RKZ34NQL-DZB-FWim.js} +1 -1
  278. package/web-shell/assets/{pieDiagram-4H26LBE5-DUXpbfGQ.js → pieDiagram-4H26LBE5-YPptloKl.js} +1 -1
  279. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-NeDQYeWw.js → quadrantDiagram-W4KKPZXB-dgk3DSzm.js} +1 -1
  280. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BSbFRL1A.js → requirementDiagram-4Y6WPE33-BH2En2i9.js} +1 -1
  281. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-gg27cAaN.js → sankeyDiagram-5OEKKPKP-BB98feeI.js} +1 -1
  282. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Bi_1TSs4.js → sequenceDiagram-3UESZ5HK-CunAIGh8.js} +1 -1
  283. package/web-shell/assets/{stateDiagram-AJRCARHV-CboCCRaf.js → stateDiagram-AJRCARHV-DTJs_-I2.js} +1 -1
  284. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DrfFMYta.js +1 -0
  285. package/web-shell/assets/{timeline-definition-PNZ67QCA-DrGpF_jn.js → timeline-definition-PNZ67QCA-Cd4AN7O0.js} +1 -1
  286. package/web-shell/assets/{vennDiagram-CIIHVFJN-DCaJU67x.js → vennDiagram-CIIHVFJN-xIG-rUU9.js} +1 -1
  287. package/web-shell/assets/{wardley-L42UT6IY-p0QcW1aP.js → wardley-L42UT6IY-D1UyjIcG.js} +1 -1
  288. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DiEVxj1W.js → wardleyDiagram-YWT4CUSO-BVM0Mb99.js} +1 -1
  289. package/web-shell/assets/{xychartDiagram-2RQKCTM6-iQB8nSlA.js → xychartDiagram-2RQKCTM6-BX31JDSz.js} +1 -1
  290. package/web-shell/index.html +2 -2
  291. package/chunks/chunk-2HRYPZT5.js +0 -25
  292. package/chunks/chunk-QAW7PIHT.js +0 -168
  293. package/chunks/chunk-RTV5TUYB.js +0 -143
  294. package/chunks/chunk-ZPAHLFZU.js +0 -172
  295. package/chunks/exitPlanMode-HYQL4XMB.js +0 -909
  296. package/chunks/nonInteractiveCli-UMYUT643.js +0 -129
  297. package/chunks/todoWrite-FKCGATPJ.js +0 -531
  298. package/chunks/web-fetch-CFCWTCAP.js +0 -5673
  299. package/web-shell/assets/channel-NFC5ADAa.js +0 -1
  300. package/web-shell/assets/classDiagram-4FO5ZUOK-DHgwjz3X.js +0 -1
  301. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DHgwjz3X.js +0 -1
  302. package/web-shell/assets/index-8xIBbHV3.js +0 -1143
  303. package/web-shell/assets/index-DLyhlZZO.css +0 -5
  304. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CXRqms6P.js +0 -1
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  loadSettings
5
- } from "./chunk-GNBBAQ6J.js";
5
+ } from "./chunk-ILQ42UG6.js";
6
6
  import {
7
7
  getCurrentLanguage
8
- } from "./chunk-4AGTGMCQ.js";
8
+ } from "./chunk-3PE7OY2G.js";
9
9
  import {
10
10
  isWorkspaceTrusted
11
- } from "./chunk-2OG646IN.js";
11
+ } from "./chunk-XFJU7SVP.js";
12
12
  import {
13
13
  require_strip_json_comments
14
14
  } from "./chunk-ALGGS7UH.js";
15
15
  import {
16
16
  writeStderrLine,
17
17
  writeStdoutLine
18
- } from "./chunk-YUZI3WAC.js";
18
+ } from "./chunk-OWAK7LMW.js";
19
19
  import {
20
20
  Client,
21
21
  Config,
@@ -26,14 +26,14 @@ import {
26
26
  hashMcpServerConfig,
27
27
  isGatedMcpScope,
28
28
  normalizeClaudeMcpServer
29
- } from "./chunk-NJOFRXTM.js";
29
+ } from "./chunk-6TDA4EVC.js";
30
30
  import {
31
31
  atomicWriteFile
32
- } from "./chunk-WIEO4CWB.js";
32
+ } from "./chunk-VAJS2E2D.js";
33
33
  import {
34
34
  Storage,
35
35
  getErrorMessage
36
- } from "./chunk-7NFB7LBQ.js";
36
+ } from "./chunk-UE5TZ55T.js";
37
37
  import {
38
38
  init_esbuild_shims
39
39
  } from "./chunk-5O2XNYP6.js";
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  formatFetchErrorForUser
5
- } from "./chunk-ZPAHLFZU.js";
5
+ } from "./chunk-7KS72E2N.js";
6
6
  import {
7
7
  openBrowserSecurely
8
8
  } from "./chunk-JESCGQM3.js";
9
9
  import {
10
10
  atomicWriteFile
11
- } from "./chunk-WIEO4CWB.js";
11
+ } from "./chunk-VAJS2E2D.js";
12
12
  import {
13
13
  combineAbortSignals
14
14
  } from "./chunk-DJ2GSRLV.js";
15
15
  import {
16
16
  Storage,
17
17
  createDebugLogger
18
- } from "./chunk-7NFB7LBQ.js";
18
+ } from "./chunk-UE5TZ55T.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -8,17 +8,25 @@ import {
8
8
  init_esbuild_shims();
9
9
  var LOAD_REPLAY_MODE_META_KEY = "qwen.session.loadReplayMode";
10
10
  var LOAD_REPLAY_META_KEY = "qwen.session.loadReplay";
11
+ var LOAD_REPLAY_PAGE_SIZE_META_KEY = "qwen.session.loadReplayPageSize";
11
12
  var LOAD_REPLAY_BULK_MODE = "bulk";
12
13
  var LOAD_REPLAY_VERSION = 1;
14
+ var CHANNEL_STARTUP_PROFILE_META_KEY = "qwen.daemon.channelStartupProfile";
15
+ var CHANNEL_STARTUP_PROFILE_VERSION = 1;
13
16
  var MID_TURN_QUEUE_DRAIN_METHOD = "craft/drainMidTurnQueue";
17
+ var TODO_STOP_GUARD_QUEUE_RELEASE_METHOD = "craft/todoStopGuardQueueReleased";
14
18
  var CLIENT_MCP_OVER_WS_CONFIG_FLAG = "__clientMcpOverWs";
15
19
 
16
20
  export {
17
21
  LOAD_REPLAY_MODE_META_KEY,
18
22
  LOAD_REPLAY_META_KEY,
23
+ LOAD_REPLAY_PAGE_SIZE_META_KEY,
19
24
  LOAD_REPLAY_BULK_MODE,
20
25
  LOAD_REPLAY_VERSION,
26
+ CHANNEL_STARTUP_PROFILE_META_KEY,
27
+ CHANNEL_STARTUP_PROFILE_VERSION,
21
28
  MID_TURN_QUEUE_DRAIN_METHOD,
29
+ TODO_STOP_GUARD_QUEUE_RELEASE_METHOD,
22
30
  CLIENT_MCP_OVER_WS_CONFIG_FLAG
23
31
  };
24
32
  /**
@@ -0,0 +1,257 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ atomicWriteFileSync
5
+ } from "./chunk-VAJS2E2D.js";
6
+ import {
7
+ init_esbuild_shims
8
+ } from "./chunk-5O2XNYP6.js";
9
+ import {
10
+ __name
11
+ } from "./chunk-J2S4EL5Y.js";
12
+
13
+ // packages/cli/src/commands/channel/observed-contact-store.ts
14
+ init_esbuild_shims();
15
+ import { chmodSync, existsSync, mkdirSync, readFileSync } from "node:fs";
16
+ import { dirname } from "node:path";
17
+ var REGISTRY_VERSION = 1;
18
+ var MAX_OBSERVATIONS = 500;
19
+ var MAX_CHANNEL_NAME_LENGTH = 256;
20
+ var MAX_LABEL_LENGTH = 256;
21
+ var MAX_ID_LENGTH = 4096;
22
+ var OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS = 365 * 24 * 60 * 60;
23
+ var ObservedChannelContactStore = class {
24
+ constructor(filePath, options = {}) {
25
+ this.filePath = filePath;
26
+ this.now = options.now ?? (() => /* @__PURE__ */ new Date());
27
+ this.maxObservations = options.maxObservations ?? MAX_OBSERVATIONS;
28
+ }
29
+ static {
30
+ __name(this, "ObservedChannelContactStore");
31
+ }
32
+ now;
33
+ maxObservations;
34
+ observe(channelName, observation) {
35
+ this.validateObservation(channelName, observation);
36
+ const observedAt = this.now();
37
+ const next = {
38
+ channelName,
39
+ user: this.normalizeIdentity(observation.user),
40
+ ...observation.group ? { group: this.normalizeIdentity(observation.group) } : {},
41
+ ...observation.topic ? { topic: this.normalizeIdentity(observation.topic) } : {},
42
+ lastObservedAt: observedAt.toISOString()
43
+ };
44
+ const key = this.observationKey(next);
45
+ const retentionCutoff = observedAt.getTime() - OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS * 1e3;
46
+ const observations = this.readObservations().filter(
47
+ (candidate) => Date.parse(candidate.lastObservedAt) >= retentionCutoff && this.observationKey(candidate) !== key
48
+ ).concat(next).sort((a, b) => b.lastObservedAt.localeCompare(a.lastObservedAt)).slice(0, this.maxObservations);
49
+ this.persist(observations);
50
+ }
51
+ list(options) {
52
+ const { freshWithinSeconds } = options;
53
+ if (!Number.isInteger(freshWithinSeconds) || freshWithinSeconds < 1 || freshWithinSeconds > OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS) {
54
+ throw new Error("Invalid observed contact freshness.");
55
+ }
56
+ const cutoff = this.now().getTime() - freshWithinSeconds * 1e3;
57
+ const observations = this.readObservations().filter((observation) => Date.parse(observation.lastObservedAt) >= cutoff).sort((a, b) => b.lastObservedAt.localeCompare(a.lastObservedAt));
58
+ const users = /* @__PURE__ */ new Map();
59
+ const groups = /* @__PURE__ */ new Map();
60
+ for (const observation of observations) {
61
+ if (!observation.group) {
62
+ const key = this.identityKey(
63
+ observation.channelName,
64
+ observation.user.id
65
+ );
66
+ if (!users.has(key)) {
67
+ users.set(key, {
68
+ channelName: observation.channelName,
69
+ ...observation.user,
70
+ lastObservedAt: observation.lastObservedAt
71
+ });
72
+ }
73
+ continue;
74
+ }
75
+ const groupKey = this.identityKey(
76
+ observation.channelName,
77
+ observation.group.id
78
+ );
79
+ let group = groups.get(groupKey);
80
+ if (!group) {
81
+ group = {
82
+ channelName: observation.channelName,
83
+ ...observation.group,
84
+ lastObservedAt: observation.lastObservedAt,
85
+ users: [],
86
+ topics: [],
87
+ userMap: /* @__PURE__ */ new Map(),
88
+ topicMap: /* @__PURE__ */ new Map()
89
+ };
90
+ groups.set(groupKey, group);
91
+ }
92
+ if (!group.userMap.has(observation.user.id)) {
93
+ group.userMap.set(observation.user.id, {
94
+ ...observation.user,
95
+ lastObservedAt: observation.lastObservedAt
96
+ });
97
+ }
98
+ if (observation.topic) {
99
+ let topic = group.topicMap.get(observation.topic.id);
100
+ if (!topic) {
101
+ topic = {
102
+ ...observation.topic,
103
+ lastObservedAt: observation.lastObservedAt,
104
+ users: [],
105
+ userMap: /* @__PURE__ */ new Map()
106
+ };
107
+ group.topicMap.set(observation.topic.id, topic);
108
+ }
109
+ if (!topic.userMap.has(observation.user.id)) {
110
+ topic.userMap.set(observation.user.id, {
111
+ ...observation.user,
112
+ lastObservedAt: observation.lastObservedAt
113
+ });
114
+ }
115
+ }
116
+ }
117
+ return {
118
+ users: [...users.values()],
119
+ groups: [...groups.values()].map((group) => ({
120
+ channelName: group.channelName,
121
+ id: group.id,
122
+ label: group.label,
123
+ lastObservedAt: group.lastObservedAt,
124
+ users: [...group.userMap.values()],
125
+ topics: [...group.topicMap.values()].map((topic) => ({
126
+ id: topic.id,
127
+ label: topic.label,
128
+ lastObservedAt: topic.lastObservedAt,
129
+ users: [...topic.userMap.values()]
130
+ }))
131
+ }))
132
+ };
133
+ }
134
+ readObservations() {
135
+ if (!existsSync(this.filePath)) return [];
136
+ let parsed;
137
+ try {
138
+ parsed = JSON.parse(readFileSync(this.filePath, "utf-8"));
139
+ } catch {
140
+ throw new Error("Invalid observed contact registry.");
141
+ }
142
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
143
+ throw new Error("Invalid observed contact registry.");
144
+ }
145
+ const record = parsed;
146
+ if (record["version"] !== REGISTRY_VERSION) {
147
+ throw new Error("Unsupported observed contact registry version.");
148
+ }
149
+ if (!Array.isArray(record["observations"]) || record["observations"].length > this.maxObservations) {
150
+ throw new Error("Invalid observed contact registry.");
151
+ }
152
+ const observations = record["observations"].map(
153
+ (raw) => this.parseObservation(raw)
154
+ );
155
+ const keys = new Set(observations.map((item) => this.observationKey(item)));
156
+ if (keys.size !== observations.length) {
157
+ throw new Error("Invalid observed contact registry.");
158
+ }
159
+ return observations;
160
+ }
161
+ parseObservation(raw) {
162
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
163
+ throw new Error("Invalid observed contact registry.");
164
+ }
165
+ const record = raw;
166
+ const channelName = record["channelName"];
167
+ const lastObservedAt = record["lastObservedAt"];
168
+ const user = this.parseIdentity(record["user"]);
169
+ const group = record["group"] === void 0 ? void 0 : this.parseIdentity(record["group"]);
170
+ const topic = record["topic"] === void 0 ? void 0 : this.parseIdentity(record["topic"]);
171
+ if (!this.isBoundedString(channelName, MAX_CHANNEL_NAME_LENGTH) || typeof lastObservedAt !== "string" || !this.isCanonicalTimestamp(lastObservedAt) || topic !== void 0 && group === void 0) {
172
+ throw new Error("Invalid observed contact registry.");
173
+ }
174
+ return {
175
+ channelName,
176
+ user,
177
+ ...group ? { group } : {},
178
+ ...topic ? { topic } : {},
179
+ lastObservedAt
180
+ };
181
+ }
182
+ parseIdentity(raw) {
183
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
184
+ throw new Error("Invalid observed contact registry.");
185
+ }
186
+ const record = raw;
187
+ const id = record["id"];
188
+ const label = record["label"];
189
+ if (!this.isBoundedString(id, MAX_ID_LENGTH) || !this.isBoundedString(label, MAX_LABEL_LENGTH)) {
190
+ throw new Error("Invalid observed contact registry.");
191
+ }
192
+ return { id, label };
193
+ }
194
+ validateObservation(channelName, observation) {
195
+ if (!this.isBoundedString(channelName, MAX_CHANNEL_NAME_LENGTH) || !this.isIdentity(observation.user) || observation.group !== void 0 && !this.isIdentity(observation.group) || observation.topic !== void 0 && !this.isIdentity(observation.topic) || observation.topic !== void 0 && observation.group === void 0) {
196
+ throw new Error("Invalid observed contact observation.");
197
+ }
198
+ }
199
+ isIdentity(value) {
200
+ return this.isBoundedString(value.id, MAX_ID_LENGTH) && this.isBoundedString(value.label, MAX_ID_LENGTH);
201
+ }
202
+ normalizeIdentity(value) {
203
+ return {
204
+ id: value.id,
205
+ label: this.truncateLabel(value.label)
206
+ };
207
+ }
208
+ truncateLabel(value) {
209
+ let result = "";
210
+ for (const character of value) {
211
+ if (result.length + character.length > MAX_LABEL_LENGTH) break;
212
+ result += character;
213
+ }
214
+ return result;
215
+ }
216
+ observationKey(observation) {
217
+ return JSON.stringify([
218
+ observation.channelName,
219
+ observation.user.id,
220
+ observation.group?.id ?? "",
221
+ observation.topic?.id ?? ""
222
+ ]);
223
+ }
224
+ identityKey(channelName, id) {
225
+ return JSON.stringify([channelName, id]);
226
+ }
227
+ persist(observations) {
228
+ const dir = dirname(this.filePath);
229
+ mkdirSync(dir, { recursive: true, mode: 448 });
230
+ try {
231
+ chmodSync(dir, 448);
232
+ } catch {
233
+ }
234
+ const data = {
235
+ version: REGISTRY_VERSION,
236
+ observations
237
+ };
238
+ atomicWriteFileSync(this.filePath, JSON.stringify(data, null, 2), {
239
+ encoding: "utf-8",
240
+ mode: 384,
241
+ forceMode: true,
242
+ noFollow: true
243
+ });
244
+ }
245
+ isBoundedString(value, maxLength) {
246
+ return typeof value === "string" && value.length > 0 && value.length <= maxLength;
247
+ }
248
+ isCanonicalTimestamp(value) {
249
+ const timestamp = Date.parse(value);
250
+ return Number.isFinite(timestamp) && new Date(timestamp).toISOString() === value;
251
+ }
252
+ };
253
+
254
+ export {
255
+ OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
256
+ ObservedChannelContactStore
257
+ };
@@ -8,7 +8,10 @@ import {
8
8
  } from "./chunk-QHTIBUWB.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-4AGTGMCQ.js";
11
+ } from "./chunk-3PE7OY2G.js";
12
+ import {
13
+ getPackageJson
14
+ } from "./chunk-VJNBRRZG.js";
12
15
  import {
13
16
  require_clean,
14
17
  require_constants,
@@ -20,9 +23,6 @@ import {
20
23
  require_semver,
21
24
  require_valid
22
25
  } from "./chunk-URK542T4.js";
23
- import {
24
- getPackageJson
25
- } from "./chunk-VJNBRRZG.js";
26
26
  import {
27
27
  ansi_regex_exports,
28
28
  init_ansi_regex,
@@ -33,7 +33,7 @@ import {
33
33
  } from "./chunk-E2UVIFI2.js";
34
34
  import {
35
35
  createDebugLogger
36
- } from "./chunk-7NFB7LBQ.js";
36
+ } from "./chunk-UE5TZ55T.js";
37
37
  import {
38
38
  __qwen_dirname,
39
39
  init_esbuild_shims
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  TotalSessionLimitExceededError,
5
5
  WorkspaceDrainingError
6
- } from "./chunk-L4Y55KIS.js";
6
+ } from "./chunk-X6YQWCIJ.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-5O2XNYP6.js";
@@ -2,31 +2,31 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-YGYSMY2R.js";
5
+ } from "./chunk-PSISZNIT.js";
6
6
  import {
7
7
  CUSTOM_SANDBOX_IMAGE_ENV_VAR,
8
8
  HOST_UPDATE_RELAUNCH_ENV_VAR,
9
9
  SKIP_UPDATE_CHECK_ENV_VAR,
10
10
  requestUpdateOnExit
11
- } from "./chunk-LS56TX3M.js";
11
+ } from "./chunk-CMHJEUVB.js";
12
12
  import {
13
13
  require_undici
14
14
  } from "./chunk-L573Z2QZ.js";
15
15
  import {
16
16
  IdeClient,
17
17
  getAllProviderBaseUrls
18
- } from "./chunk-NJOFRXTM.js";
18
+ } from "./chunk-6TDA4EVC.js";
19
19
  import {
20
20
  initializeTelemetry
21
- } from "./chunk-MQOVXZAF.js";
21
+ } from "./chunk-YN2I5I42.js";
22
22
  import {
23
23
  detectRuntime,
24
24
  getOrCreateSharedDispatcher,
25
25
  redactProxyCredentials
26
- } from "./chunk-LQIDP6K5.js";
26
+ } from "./chunk-4CHDYDG3.js";
27
27
  import {
28
28
  createDebugLogger
29
- } from "./chunk-7NFB7LBQ.js";
29
+ } from "./chunk-UE5TZ55T.js";
30
30
  import {
31
31
  recordStartupEvent
32
32
  } from "./chunk-QSWDGAIC.js";
@@ -233,11 +233,11 @@ function startPostRenderPrefetches(config, settings, options = {}) {
233
233
  { updateEventEmitter },
234
234
  { t }
235
235
  ] = await Promise.all([
236
- import("./updateCheck-FWLXZPRO.js"),
237
- import("./handleAutoUpdate-OLUY4L7L.js"),
238
- import("./installationInfo-I2Z3BKCE.js"),
236
+ import("./updateCheck-YNRFE4V7.js"),
237
+ import("./handleAutoUpdate-QUMRZZOS.js"),
238
+ import("./installationInfo-P3ZP2SIZ.js"),
239
239
  import("./updateEventEmitter-5MKC7BLQ.js"),
240
- import("./i18n-462JC7IY.js")
240
+ import("./i18n-F3W6YUYP.js")
241
241
  ]);
242
242
  const updateFailedMessage = t(
243
243
  "Failed to check for updates. Please check your network or registry configuration."
@@ -304,7 +304,7 @@ ${t(
304
304
  state: "connecting"
305
305
  });
306
306
  try {
307
- const { connectIdeForStartup } = await import("./initializer-Y7WD4D2I.js");
307
+ const { connectIdeForStartup } = await import("./initializer-KLU2KAIZ.js");
308
308
  await withTimeout(
309
309
  connectIdeForStartup(config),
310
310
  "ide_connect",
@@ -330,7 +330,7 @@ ${t(
330
330
  }
331
331
  if (config.isInteractive()) {
332
332
  runDeferredTask("background_housekeeping", async () => {
333
- const { startBackgroundHousekeeping } = await import("./scheduler-PLX3VVTB.js");
333
+ const { startBackgroundHousekeeping } = await import("./scheduler-63GJG75U.js");
334
334
  startBackgroundHousekeeping(config, settings);
335
335
  });
336
336
  }
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-7NFB7LBQ.js";
5
+ } from "./chunk-UE5TZ55T.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
  t
5
- } from "./chunk-4AGTGMCQ.js";
5
+ } from "./chunk-3PE7OY2G.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";