@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260710.205430235

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 (292) hide show
  1. package/bundled/qc-helper/SKILL.md +1 -0
  2. package/bundled/qc-helper/docs/configuration/auth.md +40 -55
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
  4. package/bundled/qc-helper/docs/configuration/settings.md +43 -36
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +20 -12
  7. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
  8. package/bundled/qc-helper/docs/features/code-review.md +2 -1
  9. package/bundled/qc-helper/docs/features/commands.md +39 -38
  10. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  11. package/bundled/qc-helper/docs/features/hooks.md +36 -34
  12. package/bundled/qc-helper/docs/features/memory.md +1 -1
  13. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  14. package/bundled/qc-helper/docs/qwen-serve.md +22 -12
  15. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  16. package/bundled/review/DESIGN.md +14 -13
  17. package/bundled/review/SKILL.md +38 -61
  18. package/chunks/{MaxSizedBox-XY5LIO5O.js → MaxSizedBox-LOFYQFYJ.js} +13 -14
  19. package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-U5OQBGEB.js} +31 -29
  20. package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-SDIFRIED.js} +637 -131
  21. package/chunks/{agent-TKIBLLQT.js → agent-JIBBVHNQ.js} +10 -10
  22. package/chunks/{agent-headless-VLX4C7KX.js → agent-headless-6LGZYJYU.js} +10 -10
  23. package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-55REPTTF.js} +30 -3
  24. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-EIN46DPM.js} +1 -1
  25. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-6YX6ZRX7.js} +1 -1
  26. package/chunks/{bridge-BCU73DZO.js → bridge-HVPFYNM4.js} +17 -16
  27. package/chunks/{ca-HCMB2I54.js → ca-MULEGDVS.js} +89 -5
  28. package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-OPXXT4JK.js} +20 -3
  29. package/chunks/{chunk-DGHJTO2K.js → chunk-2AF26HVM.js} +31 -2
  30. package/chunks/{chunk-3B26UVCX.js → chunk-2GUVUHJY.js} +6 -4
  31. package/chunks/{chunk-FV7425LN.js → chunk-2SZOMGOR.js} +4 -1
  32. package/chunks/{chunk-CNSF3WO5.js → chunk-32KS5XSX.js} +3 -3
  33. package/chunks/{chunk-4UCTWSTP.js → chunk-34UUM3IN.js} +1 -1
  34. package/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
  35. package/chunks/{chunk-MIG5SQNL.js → chunk-4CSVIZLT.js} +4 -4
  36. package/chunks/{chunk-GD236YPV.js → chunk-4ONWIT5C.js} +1 -1
  37. package/chunks/{chunk-4ZJIPVPB.js → chunk-4XK7TNBP.js} +8 -8
  38. package/chunks/{chunk-I4A4K72C.js → chunk-5F2H3PXG.js} +446 -232
  39. package/chunks/chunk-5HOF2K5U.js +19 -0
  40. package/chunks/{chunk-GMOWQOQQ.js → chunk-5ZVIYNLN.js} +228 -36
  41. package/chunks/chunk-6O6Z2I5Q.js +292 -0
  42. package/chunks/{chunk-RYFZCUJO.js → chunk-6QKT5VNZ.js} +14 -6
  43. package/chunks/{chunk-SD4N3QJ2.js → chunk-6ZPSVWLF.js} +61 -17
  44. package/chunks/{chunk-X265R5C6.js → chunk-7YGSDQ5J.js} +2 -2
  45. package/chunks/{chunk-PRDFOIZF.js → chunk-A6KEUFJO.js} +32 -5
  46. package/chunks/{chunk-OWVIH4HY.js → chunk-B5OAMPJ5.js} +389 -87
  47. package/chunks/{chunk-ME3YSROJ.js → chunk-CV2AT2WJ.js} +22 -10
  48. package/chunks/{chunk-U4FRHCLA.js → chunk-DDKUYKHA.js} +1912 -201
  49. package/chunks/{chunk-YDSYD7UI.js → chunk-E3SA2LY4.js} +2 -2
  50. package/chunks/{chunk-6IAWPIQ6.js → chunk-EDM5O3SX.js} +2 -2
  51. package/chunks/{chunk-CISB3IQF.js → chunk-FONJQQWI.js} +65 -6
  52. package/chunks/{chunk-FRFFNYUY.js → chunk-G3WIMNL4.js} +3 -3
  53. package/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
  54. package/chunks/chunk-GLE2YUPU.js +34 -0
  55. package/chunks/{chunk-MJI36HER.js → chunk-GOTMC3BX.js} +1 -1
  56. package/chunks/{chunk-RFIL6REB.js → chunk-GRB4QSBD.js} +168 -31
  57. package/chunks/chunk-GVVY7GSP.js +38 -0
  58. package/chunks/{chunk-7JGISHHZ.js → chunk-HDEUQRAR.js} +14 -156
  59. package/chunks/{chunk-NZEGNV4V.js → chunk-HPRI22FZ.js} +6 -6
  60. package/chunks/{chunk-STAZRKOT.js → chunk-I34IHZFJ.js} +117 -459
  61. package/chunks/{chunk-JF7DFPQ5.js → chunk-I3MBKL6Z.js} +12 -2
  62. package/chunks/{chunk-DNV4FSN5.js → chunk-I5XN6KDI.js} +21 -4
  63. package/chunks/{chunk-VZ7HY3YU.js → chunk-IAMRWMFU.js} +1 -1
  64. package/chunks/{chunk-44NROQYV.js → chunk-JOQMY62N.js} +1 -1
  65. package/chunks/{chunk-VQWAZSXN.js → chunk-JW4IKIZ2.js} +57 -35
  66. package/chunks/{chunk-SAIILPQ3.js → chunk-KJMYXFUR.js} +3 -1
  67. package/chunks/{chunk-AFOLR6YL.js → chunk-KQ6MKCFE.js} +102 -16
  68. package/chunks/{chunk-X3YGAX7V.js → chunk-KS2FRTYI.js} +2 -0
  69. package/chunks/{chunk-IUE7YWC3.js → chunk-LE7EF36E.js} +7 -7
  70. package/chunks/{chunk-B4U2M63D.js → chunk-LRY7HD3Q.js} +2101 -11
  71. package/chunks/{chunk-PUQLHSQ2.js → chunk-ME7E6WZB.js} +6 -8
  72. package/chunks/{chunk-LEIJKM7Q.js → chunk-MEK7ZRJ3.js} +1 -1
  73. package/chunks/{chunk-AJBEAUIS.js → chunk-MG2TNCRX.js} +4 -3
  74. package/chunks/{chunk-GL5TV7B5.js → chunk-MSMQURDV.js} +21 -5
  75. package/chunks/{chunk-6BN7NZ5Z.js → chunk-NXDJLKKX.js} +4 -6
  76. package/chunks/{chunk-FEJ2FZ3U.js → chunk-NY2ZOFMM.js} +1 -1
  77. package/chunks/{chunk-QZF5U5KA.js → chunk-NY5BE643.js} +8 -8
  78. package/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
  79. package/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
  80. package/chunks/chunk-PCWSPWXZ.js +168 -0
  81. package/chunks/{chunk-XPJH4PKR.js → chunk-PJ74K3DH.js} +1 -1
  82. package/chunks/{chunk-FTFXDZYI.js → chunk-PW7VWRLX.js} +45 -29
  83. package/chunks/chunk-R3SLDK6Y.js +468 -0
  84. package/chunks/{chunk-4O344UEE.js → chunk-SDJOZOYY.js} +38 -18
  85. package/chunks/{chunk-ALZ75L2X.js → chunk-SMYIBRAA.js} +412 -376
  86. package/chunks/{chunk-CCGOFQV3.js → chunk-SS5P6JM6.js} +6 -5
  87. package/chunks/{chunk-AIY5UTFI.js → chunk-T3XHYGMG.js} +925 -2872
  88. package/chunks/{chunk-Q6OEPOOC.js → chunk-TB6GWNV4.js} +1 -1
  89. package/chunks/{chunk-24XYI5EI.js → chunk-TERKDCOZ.js} +3 -3
  90. package/chunks/chunk-TVO5C767.js +159 -0
  91. package/chunks/{chunk-TBAZMRW3.js → chunk-TVW53EK7.js} +1 -1
  92. package/chunks/chunk-TX5QZYK6.js +296 -0
  93. package/chunks/{chunk-JD33UY7E.js → chunk-TZRVTPJ6.js} +15 -9
  94. package/chunks/{chunk-65CFHNSE.js → chunk-UAFB2DNB.js} +59 -59
  95. package/chunks/{chunk-QAKFYMJI.js → chunk-UOXLB2LY.js} +152 -17
  96. package/chunks/chunk-V35MD7KN.js +13 -0
  97. package/chunks/{chunk-XSAFNANZ.js → chunk-VWDJHVXM.js} +12 -12
  98. package/chunks/{chunk-XISQIIT7.js → chunk-W77ZLCSX.js} +1 -1
  99. package/chunks/{chunk-BWVQN2HV.js → chunk-WTEIUA2V.js} +4 -4
  100. package/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
  101. package/chunks/{chunk-HJ3GX3Y3.js → chunk-XZVUZSDG.js} +25 -11
  102. package/chunks/{chunk-ADZG46HR.js → chunk-YHGCTQG3.js} +1 -1
  103. package/chunks/{chunk-2NPS2UDH.js → chunk-YUNPEB3Q.js} +478 -43
  104. package/chunks/chunk-Z3I3QJK3.js +47 -0
  105. package/chunks/{chunk-P7I3D7FM.js → chunk-Z466FBSA.js} +1 -1
  106. package/chunks/{chunk-YEGT55NW.js → chunk-ZDAZSR2O.js} +3009 -1220
  107. package/chunks/{chunk-VEB3NYSO.js → chunk-ZJQBTFJ6.js} +6 -1
  108. package/chunks/chunk-ZL5HN75Q.js +61 -0
  109. package/chunks/{computer-use-X4KUU3NM.js → computer-use-IW5XBECT.js} +10 -10
  110. package/chunks/{contextCommand-LAYJZF7H.js → contextCommand-4QPLK2SH.js} +14 -14
  111. package/chunks/create-sub-session-7JK3EYWA.js +212 -0
  112. package/chunks/create-sub-session-EVYZYAE3.js +364 -0
  113. package/chunks/{cron-create-JSXEIPVS.js → cron-create-2CCO2PW6.js} +2 -2
  114. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-ETVTP5IV.js} +2 -2
  115. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-FS3KWOY5.js} +2 -2
  116. package/chunks/{daemon-F3I2RXP6.js → daemon-NNUYIBWA.js} +461 -0
  117. package/chunks/{daemon-status-provider-XSAFKVDS.js → daemon-status-provider-3EPG6BXX.js} +21 -19
  118. package/chunks/{de-PLLFDERI.js → de-QRG6J2CM.js} +89 -5
  119. package/chunks/{dist-YTRKAVUB.js → dist-3EIIFOJV.js} +1 -1
  120. package/chunks/{dist-PKFTNUHO.js → dist-7F5GWZDZ.js} +2 -1
  121. package/chunks/{dist-FQ5WRJPL.js → dist-CBJ7OJ5R.js} +2 -2
  122. package/chunks/{dist-OT7G2WNM.js → dist-LIFJ2YAI.js} +1 -1
  123. package/chunks/{dist-573HNSVO.js → dist-OKXOQ63L.js} +2 -1
  124. package/chunks/{dist-IMFFBMAT.js → dist-SU5LY5R4.js} +3 -1
  125. package/chunks/{earlyInputCapture-AERYYGXE.js → earlyInputCapture-HP5XAS7A.js} +10 -10
  126. package/chunks/{edit-WZTZDGCI.js → edit-MDICC6KH.js} +11 -11
  127. package/chunks/{en-GA2RMXY5.js → en-HF3KFWZG.js} +91 -5
  128. package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-JWTRNEN4.js} +10 -10
  129. package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-GMRZMTBQ.js} +10 -10
  130. package/chunks/environment-2CJAFOFN.js +88 -0
  131. package/chunks/{errors-GMZL4QV7.js → errors-UZOVFD2U.js} +13 -13
  132. package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-QQGEG343.js} +10 -10
  133. package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-YK2JVAAB.js} +10 -10
  134. package/chunks/{fast-path-W2U6XDNO.js → fast-path-6SD4JNQW.js} +12 -3
  135. package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-RAQGCIT7.js} +3 -2
  136. package/chunks/{fr-GWNQG4XH.js → fr-RSCO6HHD.js} +89 -5
  137. package/chunks/{gemini-T4WX6SRW.js → gemini-TFQXPUZB.js} +436 -140
  138. package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-LJ2BNXHX.js} +1 -1
  139. package/chunks/{glob-4KKSHZDF.js → glob-3IJ6JR5W.js} +10 -10
  140. package/chunks/{grep-GHRYXSLZ.js → grep-UFZ2RFQZ.js} +10 -10
  141. package/chunks/{handleAutoUpdate-HN7ZOSXY.js → handleAutoUpdate-TEZC5ZIR.js} +17 -13
  142. package/chunks/i18n-5QEODTJV.js +84 -0
  143. package/chunks/{initializer-SRN3IM42.js → initializer-222MPCLQ.js} +18 -16
  144. package/chunks/installationInfo-OZ62OHZ2.js +65 -0
  145. package/chunks/{ja-2HOTA47X.js → ja-RRFGG2DC.js} +89 -5
  146. package/chunks/{list-INTVXUPA.js → list-BN5VBIIE.js} +20 -18
  147. package/chunks/{loadedSettingsAdapter-QVHHQPGM.js → loadedSettingsAdapter-EHTUJRFB.js} +18 -16
  148. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-SR2KWT4B.js} +3 -3
  149. package/chunks/{ls-L654WOAT.js → ls-RUBQK5Q2.js} +2 -2
  150. package/chunks/{lsp-M35KE54Y.js → lsp-DUTVY2ZA.js} +3 -5
  151. package/chunks/{mcp-7V4T46RG.js → mcp-OPGHD26Y.js} +18 -16
  152. package/chunks/{monitor-464OY2UE.js → monitor-WXBDVYYV.js} +10 -10
  153. package/chunks/{nonInteractiveCli-LJEEODU2.js → nonInteractiveCli-CWIBGJ4U.js} +54 -49
  154. package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-T7P7M73F.js} +11 -11
  155. package/chunks/{openaiContentGenerator-PFF6HYB2.js → openaiContentGenerator-OES264C3.js} +7 -7
  156. package/chunks/{pidfile-LIBUENIV.js → pidfile-LJ3NLS2P.js} +10 -10
  157. package/chunks/{pt-2THT3YHA.js → pt-D4CG46JM.js} +89 -5
  158. package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-QJ67LAJ5.js} +12 -12
  159. package/chunks/{read-file-L7TBQVX7.js → read-file-KZD7TLU7.js} +5 -5
  160. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-Q56IMYOH.js} +1 -1
  161. package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-GZ5D5HZX.js} +4 -4
  162. package/chunks/{ripGrep-CKKX3GRB.js → ripGrep-KUJLX75U.js} +10 -10
  163. package/chunks/{ru-Z67YJHBG.js → ru-O2QUEL22.js} +89 -5
  164. package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-M52KVRGI.js} +664 -153
  165. package/chunks/{scheduler-ZRW3AIDU.js → scheduler-FFATTAYZ.js} +10 -10
  166. package/chunks/{send-message-OA6MV4EU.js → send-message-HAGK3VTV.js} +2 -2
  167. package/chunks/{serve-36WS32W6.js → serve-B5S32524.js} +21 -18
  168. package/chunks/{server-M372UENX.js → server-6HK5FJMR.js} +3301 -665
  169. package/chunks/{session-F5KSNP2N.js → session-3WB76VTQ.js} +55 -50
  170. package/chunks/{settings-WFLNS3WT.js → settings-W3IX7NHK.js} +27 -23
  171. package/chunks/{shell-DEDSWN56.js → shell-HZIU2ZG7.js} +10 -10
  172. package/chunks/{skill-A2TL2NPC.js → skill-34OUFB65.js} +5 -5
  173. package/chunks/{spawnChannel-RQHUWTCL.js → spawnChannel-FTZJ3I5O.js} +12 -12
  174. package/chunks/{src-XKZMNHXS.js → src-NELBIIGI.js} +48 -10
  175. package/chunks/standalone-update-LICI2VSK.js +79 -0
  176. package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-LZEV5YI2.js} +2203 -1764
  177. package/chunks/stdioHelpers-CA7MG65Z.js +14 -0
  178. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-XFFJVCGV.js} +2 -2
  179. package/chunks/{task-create-RPFZNB4B.js → task-create-VINUSVBF.js} +3 -3
  180. package/chunks/{task-list-TGGJX7EA.js → task-list-YZ2AWQEG.js} +1 -1
  181. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-PEXPKUW3.js} +1 -1
  182. package/chunks/{task-update-5WUG5MVQ.js → task-update-BHIX57YH.js} +3 -3
  183. package/chunks/{team-create-TBQVWAG7.js → team-create-2JS2OYSF.js} +10 -10
  184. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-2OHXSBVS.js} +1 -1
  185. package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-PHLGYUY7.js} +10 -10
  186. package/chunks/{theme-manager-DQZVNSOC.js → theme-manager-UYXLX37P.js} +10 -10
  187. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-7Q4ELT4F.js} +1 -1
  188. package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2MWA3GWE.js} +6 -6
  189. package/chunks/total-session-admission-PRZK35X4.js +72 -0
  190. package/chunks/{trustedFolders-Z475EIHL.js → trustedFolders-IT4JBNPG.js} +12 -12
  191. package/chunks/{updateCheck-E2ZX7RL7.js → updateCheck-X3ZWDO3Z.js} +17 -13
  192. package/chunks/updateEventEmitter-NXWTRHXY.js +10 -0
  193. package/chunks/{validateNonInterActiveAuth-O4ECBHQL.js → validateNonInterActiveAuth-IAOL7CM3.js} +51 -45
  194. package/chunks/{version-CEDD6ZZR.js → version-25QF6A5H.js} +1 -1
  195. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-I7FOWHGA.js} +2 -2
  196. package/chunks/{workflow-CQQ4J4I6.js → workflow-LZZ5U3IT.js} +11 -11
  197. package/chunks/{workspace-providers-status-MVYXMYDG.js → workspace-providers-status-7DTOAWEL.js} +21 -18
  198. package/chunks/workspace-registry-BBIPESIZ.js +76 -0
  199. package/chunks/{workspace-service-OMBR6ZLG.js → workspace-service-SY3P3FUY.js} +25 -23
  200. package/chunks/{workspace-skills-status-IMMQ7CAY.js → workspace-skills-status-GTT2A4WN.js} +20 -18
  201. package/chunks/{write-file-VWGY7AJP.js → write-file-M6IHNW3V.js} +11 -11
  202. package/chunks/{zh-7XVVRTDH.js → zh-K2EH6BDD.js} +91 -5
  203. package/chunks/{zh-TW-DPH554OG.js → zh-TW-4GPXJ7ZY.js} +91 -5
  204. package/cli.js +13 -12
  205. package/locales/ca.js +115 -7
  206. package/locales/de.js +114 -7
  207. package/locales/en.js +118 -7
  208. package/locales/fr.js +115 -7
  209. package/locales/ja.js +116 -6
  210. package/locales/pt.js +114 -7
  211. package/locales/ru.js +114 -7
  212. package/locales/zh-TW.js +114 -6
  213. package/locales/zh.js +114 -6
  214. package/package.json +3 -6
  215. package/web-shell/assets/{arc-C7hjaa7g.js → arc-G3HZaqaL.js} +1 -1
  216. package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-DhBrwwch.js} +1 -1
  217. package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-16JbbF0N.js} +1 -1
  218. package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-DQ3-pKgc.js} +1 -1
  219. package/web-shell/assets/channel-CX7ZHuuL.js +1 -0
  220. package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-ERCn30sp.js} +1 -1
  221. package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-DTysfbFi.js} +1 -1
  222. package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-BFGrbTBi.js} +1 -1
  223. package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DCX4Oar-.js} +1 -1
  224. package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-CgT6sBr3.js} +1 -1
  225. package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-C1Uuk1KV.js} +1 -1
  226. package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-DajgESiu.js} +1 -1
  227. package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DLJSvy9X.js} +1 -1
  228. package/web-shell/assets/classDiagram-4FO5ZUOK-B-oT3UI8.js +1 -0
  229. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B-oT3UI8.js +1 -0
  230. package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CH3w3qs7.js} +1 -1
  231. package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-BloXan9B.js} +1 -1
  232. package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-BbZiGcmK.js} +1 -1
  233. package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-GQlYvLJv.js} +1 -1
  234. package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-CtIBvVq3.js} +1 -1
  235. package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-D5TBo9a2.js} +1 -1
  236. package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-N0gQhw6R.js} +1 -1
  237. package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-zab9vDj3.js} +1 -1
  238. package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-BnnjtWJa.js} +1 -1
  239. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-2T0SQU4f.js} +1 -1
  240. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-DAD6_que.js} +1 -1
  241. package/web-shell/assets/index-XLkWfLja.css +5 -0
  242. package/web-shell/assets/index-srlTR1Jg.js +786 -0
  243. package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-C-j8d0xO.js} +1 -1
  244. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-D97bAKoT.js} +1 -1
  245. package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-BJAHfJmm.js} +1 -1
  246. package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-CZgR5aac.js} +1 -1
  247. package/web-shell/assets/{linear-Bo5bWzvo.js → linear-DOd4kYhA.js} +1 -1
  248. package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-BBaplnXA.js} +5 -5
  249. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-IhBF_BR5.js} +1 -1
  250. package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B4R4sYyH.js} +1 -1
  251. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-DKd1SJ61.js} +1 -1
  252. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-Cw96V0Xb.js} +1 -1
  253. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-C6ne_yWi.js} +1 -1
  254. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-CCyp4PDp.js} +1 -1
  255. package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DHvIqTmx.js} +1 -1
  256. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DvFhmpwA.js +1 -0
  257. package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-amb3n9zH.js} +1 -1
  258. package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-Abf2qRFJ.js} +1 -1
  259. package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-BBlOp1av.js} +1 -1
  260. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-gE_sZ0Ak.js} +1 -1
  261. package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BwOni53i.js} +1 -1
  262. package/web-shell/index.html +16 -4
  263. package/chunks/chunk-6SHO7WFF.js +0 -79
  264. package/chunks/chunk-IFEWJXFS.js +0 -37
  265. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  266. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  267. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  268. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  269. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  270. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  271. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  272. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  273. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  274. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  275. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  276. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  277. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  278. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  279. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  280. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  281. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  282. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  283. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  284. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  285. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  286. package/web-shell/assets/channel-BNf1dW-j.js +0 -1
  287. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
  288. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
  289. package/web-shell/assets/index-CnE2ur2L.js +0 -779
  290. package/web-shell/assets/index-hSKXrlSE.css +0 -5
  291. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
  292. /package/chunks/{chunk-Y6Z2O3WR.js → chunk-JM7BYJO5.js} +0 -0
@@ -0,0 +1,292 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ redactLogCredentials
5
+ } from "./chunk-HLKG6CZN.js";
6
+ import {
7
+ init_esbuild_shims
8
+ } from "./chunk-A4BMJM77.js";
9
+ import {
10
+ __name
11
+ } from "./chunk-J2S4EL5Y.js";
12
+
13
+ // packages/cli/src/serve/workspace-remember-errors.ts
14
+ init_esbuild_shims();
15
+ var MAX_REMEMBER_ERROR_DETAILS_CHARS = 1e3;
16
+ var MAX_REMEMBER_ERROR_CAUSE_DEPTH = 50;
17
+ var REMEMBER_ERROR_FORMAT_RE = new RegExp("[\\p{Cf}]|\\p{Variation_Selector}", "gu");
18
+ var REMEMBER_ERROR_SPACE_SEPARATOR_RE = /[\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000]/gu;
19
+ var REMEMBER_ERROR_CREDENTIAL_SEPARATOR_RE = new RegExp("[\\x00-\\x1f\\x7f-\\x9f\\p{Cf}\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]|\\p{Variation_Selector}", "gu");
20
+ var REMEMBER_ERROR_AUTH_SCHEME_INVISIBLE_RE = new RegExp("\\b(Bearer|QQBot)(?:[\\x00-\\x1f\\x7f-\\x9f\\p{Cf}\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]|\\p{Variation_Selector})+(?=[A-Za-z0-9._~+/=-])", "giu");
21
+ var REMEMBER_ERROR_AUTH_TOKEN_WITH_SEPARATORS_RE = new RegExp("\\b(Bearer|QQBot)(?:\\s|[\\x00-\\x1f\\x7f-\\x9f\\p{Cf}\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]|\\p{Variation_Selector})+((?:[A-Za-z0-9._~+/=-]+(?:[\\x00-\\x1f\\x7f-\\x9f\\p{Cf}\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]|\\p{Variation_Selector})+)*[A-Za-z0-9._~+/=-]+)", "giu");
22
+ var REMEMBER_ERROR_BARE_TOKEN_WITH_SEPARATORS_RE = new RegExp("\\b(?:sk-|ghp_|gho_|ghs_|ghu_|github_pat_|glpat-|xox[b]-|xox[p]-)(?:[A-Za-z0-9_-]+(?:[\\x00-\\x1f\\x7f-\\x9f\\p{Cf}\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]|\\p{Variation_Selector})+)*[A-Za-z0-9_-]+", "gu");
23
+ var REMEMBER_ERROR_AWS_KEY_WITH_SEPARATORS_RE = new RegExp("\\b(?:AKIA|ASIA)(?:[A-Z0-9]+(?:[\\x00-\\x1f\\x7f-\\x9f\\p{Cf}\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]|\\p{Variation_Selector})+)*[A-Z0-9]+", "gu");
24
+ var REMEMBER_ERROR_SECRET_ASSIGNMENT_WITH_SEPARATORS_RE = new RegExp("((?:api[_-]?key|token|secret|password|pwd)[_-]?[=:]\\s*)((?:\\S+(?:[\\x00-\\x1f\\x7f-\\x9f\\p{Cf}\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]|\\p{Variation_Selector})+)*\\S+)", "giu");
25
+ var REMEMBER_ERROR_ENV_SECRET_ASSIGNMENT_WITH_SEPARATORS_RE = new RegExp("([A-Z][A-Z0-9]{0,50}(?:_[A-Z0-9]{1,50}){0,10}_(?:KEY|TOKEN|SECRET|PASSWORD)\\s*[=:]\\s*)((?:\\S+(?:[\\x00-\\x1f\\x7f-\\x9f\\p{Cf}\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]|\\p{Variation_Selector})+)*\\S+)", "gu");
26
+ var REMEMBER_ERROR_URL_CREDENTIALS_WITH_SEPARATORS_RE = new RegExp("(\\b[a-z][a-z0-9+.-]{0,31}:\\/\\/)([^/@\\s]*(?:[\\x00-\\x1f\\x7f-\\x9f\\p{Cf}\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000]|\\p{Variation_Selector})+[^/@\\s]*)@", "giu");
27
+ var REMEMBER_ERROR_CONTROL_RE = /[\x00-\x1f\x7f-\x9f]/g;
28
+ var DETAIL_SUPPRESSED_REMEMBER_ERROR_CODES = /* @__PURE__ */ new Set([
29
+ "managed_memory_unavailable"
30
+ ]);
31
+ function createWorkspaceMemoryExtractionErrorLogger(logger) {
32
+ return (target, err) => {
33
+ logger.warn(`Failed to extract workspace memory error ${target}:`, {
34
+ extractionError: err instanceof Error ? err.message : String(err)
35
+ });
36
+ };
37
+ }
38
+ __name(createWorkspaceMemoryExtractionErrorLogger, "createWorkspaceMemoryExtractionErrorLogger");
39
+ function reportRememberErrorExtractionFailure(onExtractionError, target, err) {
40
+ try {
41
+ onExtractionError?.(target, err);
42
+ } catch {
43
+ }
44
+ }
45
+ __name(reportRememberErrorExtractionFailure, "reportRememberErrorExtractionFailure");
46
+ function errorCodeFromRecord(record) {
47
+ if (typeof record["code"] === "string") return record["code"];
48
+ const data = record["data"];
49
+ if (data && typeof data === "object") {
50
+ const dataRecord = data;
51
+ if (typeof dataRecord["errorKind"] === "string") {
52
+ return dataRecord["errorKind"];
53
+ }
54
+ if (typeof dataRecord["code"] === "string") return dataRecord["code"];
55
+ }
56
+ return void 0;
57
+ }
58
+ __name(errorCodeFromRecord, "errorCodeFromRecord");
59
+ function rawRememberErrorCode(err, seen, depth) {
60
+ if (depth > MAX_REMEMBER_ERROR_CAUSE_DEPTH) return void 0;
61
+ if (!err || typeof err !== "object") return void 0;
62
+ if (seen.has(err)) return void 0;
63
+ seen.add(err);
64
+ const record = err;
65
+ const direct = errorCodeFromRecord(record);
66
+ if (direct) return direct;
67
+ const cause = record["cause"];
68
+ if (cause != null) {
69
+ return rawRememberErrorCode(cause, seen, depth + 1);
70
+ }
71
+ return void 0;
72
+ }
73
+ __name(rawRememberErrorCode, "rawRememberErrorCode");
74
+ function extractRememberErrorCode(err, fallback = "remember_failed") {
75
+ return rawRememberErrorCode(err, /* @__PURE__ */ new WeakSet(), 0) ?? fallback;
76
+ }
77
+ __name(extractRememberErrorCode, "extractRememberErrorCode");
78
+ function workspaceMemoryFailureCode(err, fallback = "remember_failed", onExtractionError) {
79
+ try {
80
+ return extractRememberErrorCode(err, fallback);
81
+ } catch (extractionErr) {
82
+ reportRememberErrorExtractionFailure(
83
+ onExtractionError,
84
+ "code",
85
+ extractionErr
86
+ );
87
+ return fallback;
88
+ }
89
+ }
90
+ __name(workspaceMemoryFailureCode, "workspaceMemoryFailureCode");
91
+ function detailFromRecord(record, seen, depth) {
92
+ const data = record["data"];
93
+ if (data && typeof data === "object") {
94
+ const dataRecord = data;
95
+ const details = dataRecord["details"];
96
+ if (typeof details === "string" && details.length > 0) return details;
97
+ const message2 = dataRecord["message"];
98
+ if (typeof message2 === "string" && message2.length > 0) return message2;
99
+ }
100
+ const message = record["message"];
101
+ if (typeof message === "string" && message.length > 0) return message;
102
+ if (typeof data === "string" && data.length > 0) return data;
103
+ const cause = record["cause"];
104
+ if (cause != null) {
105
+ return rawRememberErrorDetails(cause, seen, depth + 1);
106
+ }
107
+ return void 0;
108
+ }
109
+ __name(detailFromRecord, "detailFromRecord");
110
+ function rawRememberErrorDetails(err, seen, depth) {
111
+ if (depth > MAX_REMEMBER_ERROR_CAUSE_DEPTH) return void 0;
112
+ if (typeof err === "string" && err.length > 0) return err;
113
+ if (!err || typeof err !== "object") return void 0;
114
+ if (seen.has(err)) return void 0;
115
+ seen.add(err);
116
+ return detailFromRecord(err, seen, depth);
117
+ }
118
+ __name(rawRememberErrorDetails, "rawRememberErrorDetails");
119
+ function replaceControlChars(details) {
120
+ return details.replace(REMEMBER_ERROR_AUTH_SCHEME_INVISIBLE_RE, "$1 ").replace(REMEMBER_ERROR_FORMAT_RE, "").replace(REMEMBER_ERROR_SPACE_SEPARATOR_RE, " ").replace(REMEMBER_ERROR_CONTROL_RE, " ");
121
+ }
122
+ __name(replaceControlChars, "replaceControlChars");
123
+ function replaceStackControlChars(stack) {
124
+ return stack.replace(REMEMBER_ERROR_AUTH_SCHEME_INVISIBLE_RE, "$1 ").replace(REMEMBER_ERROR_FORMAT_RE, "").replace(REMEMBER_ERROR_SPACE_SEPARATOR_RE, " ").replace(
125
+ REMEMBER_ERROR_CONTROL_RE,
126
+ (char) => char === "\n" || char === "\r" || char === " " ? char : " "
127
+ );
128
+ }
129
+ __name(replaceStackControlChars, "replaceStackControlChars");
130
+ function collapseCredentialSeparators(text) {
131
+ return text.replace(
132
+ REMEMBER_ERROR_URL_CREDENTIALS_WITH_SEPARATORS_RE,
133
+ (_match, scheme, userinfo) => `${scheme}${userinfo.replace(REMEMBER_ERROR_CREDENTIAL_SEPARATOR_RE, "")}@`
134
+ ).replace(
135
+ REMEMBER_ERROR_AUTH_TOKEN_WITH_SEPARATORS_RE,
136
+ (_match, scheme, token) => `${scheme} ${token.replace(REMEMBER_ERROR_CREDENTIAL_SEPARATOR_RE, "")}`
137
+ ).replace(
138
+ REMEMBER_ERROR_BARE_TOKEN_WITH_SEPARATORS_RE,
139
+ (token) => token.replace(REMEMBER_ERROR_CREDENTIAL_SEPARATOR_RE, "")
140
+ ).replace(
141
+ REMEMBER_ERROR_AWS_KEY_WITH_SEPARATORS_RE,
142
+ (token) => token.replace(REMEMBER_ERROR_CREDENTIAL_SEPARATOR_RE, "")
143
+ ).replace(
144
+ REMEMBER_ERROR_SECRET_ASSIGNMENT_WITH_SEPARATORS_RE,
145
+ (_match, prefix, value) => `${prefix}${value.replace(REMEMBER_ERROR_CREDENTIAL_SEPARATOR_RE, "")}`
146
+ ).replace(
147
+ REMEMBER_ERROR_ENV_SECRET_ASSIGNMENT_WITH_SEPARATORS_RE,
148
+ (_match, prefix, value) => `${prefix}${value.replace(REMEMBER_ERROR_CREDENTIAL_SEPARATOR_RE, "")}`
149
+ );
150
+ }
151
+ __name(collapseCredentialSeparators, "collapseCredentialSeparators");
152
+ function collapseCredentialSeparatorsByStackLine(stack) {
153
+ return stack.split(/(\r\n|\n|\r)/).map(
154
+ (part) => part === "\r\n" || part === "\n" || part === "\r" ? part : collapseCredentialSeparators(part)
155
+ ).join("");
156
+ }
157
+ __name(collapseCredentialSeparatorsByStackLine, "collapseCredentialSeparatorsByStackLine");
158
+ function isHighSurrogate(codeUnit) {
159
+ return codeUnit >= 55296 && codeUnit <= 56319;
160
+ }
161
+ __name(isHighSurrogate, "isHighSurrogate");
162
+ function isLowSurrogate(codeUnit) {
163
+ return codeUnit >= 56320 && codeUnit <= 57343;
164
+ }
165
+ __name(isLowSurrogate, "isLowSurrogate");
166
+ function truncateBeforeDanglingSurrogate(details, cutPoint) {
167
+ const beforeCut = details.charCodeAt(cutPoint - 1);
168
+ const atCut = details.charCodeAt(cutPoint);
169
+ if (isHighSurrogate(beforeCut) && isLowSurrogate(atCut)) {
170
+ return cutPoint - 1;
171
+ }
172
+ return cutPoint;
173
+ }
174
+ __name(truncateBeforeDanglingSurrogate, "truncateBeforeDanglingSurrogate");
175
+ function capRememberErrorText(redacted) {
176
+ if (redacted.length <= MAX_REMEMBER_ERROR_DETAILS_CHARS) return redacted;
177
+ const truncationSuffix = "... [truncated]";
178
+ const cutPoint = truncateBeforeDanglingSurrogate(
179
+ redacted,
180
+ MAX_REMEMBER_ERROR_DETAILS_CHARS - truncationSuffix.length
181
+ );
182
+ return `${redacted.slice(0, cutPoint)}${truncationSuffix}`;
183
+ }
184
+ __name(capRememberErrorText, "capRememberErrorText");
185
+ function redactAndCapRememberErrorText(normalized) {
186
+ const redacted = redactLogCredentials(normalized).trim();
187
+ if (!redacted) return void 0;
188
+ return capRememberErrorText(redacted);
189
+ }
190
+ __name(redactAndCapRememberErrorText, "redactAndCapRememberErrorText");
191
+ function sanitizeRememberErrorDetails(details) {
192
+ return redactAndCapRememberErrorText(
193
+ replaceControlChars(collapseCredentialSeparators(details))
194
+ );
195
+ }
196
+ __name(sanitizeRememberErrorDetails, "sanitizeRememberErrorDetails");
197
+ function sanitizeRememberErrorStack(stack) {
198
+ return redactAndCapRememberErrorText(
199
+ replaceStackControlChars(collapseCredentialSeparatorsByStackLine(stack))
200
+ );
201
+ }
202
+ __name(sanitizeRememberErrorStack, "sanitizeRememberErrorStack");
203
+ function extractRememberErrorDetails(err) {
204
+ const raw = rawRememberErrorDetails(err, /* @__PURE__ */ new WeakSet(), 0);
205
+ if (!raw) return void 0;
206
+ return sanitizeRememberErrorDetails(raw);
207
+ }
208
+ __name(extractRememberErrorDetails, "extractRememberErrorDetails");
209
+ function extractRememberErrorStack(err) {
210
+ if (!(err instanceof Error) || !err.stack) return void 0;
211
+ return sanitizeRememberErrorStack(err.stack);
212
+ }
213
+ __name(extractRememberErrorStack, "extractRememberErrorStack");
214
+ function shouldSuppressRememberErrorDetails(code) {
215
+ return DETAIL_SUPPRESSED_REMEMBER_ERROR_CODES.has(code);
216
+ }
217
+ __name(shouldSuppressRememberErrorDetails, "shouldSuppressRememberErrorDetails");
218
+ function workspaceMemoryFailureDiagnostics(err, onExtractionError) {
219
+ let details;
220
+ let stack;
221
+ try {
222
+ details = extractRememberErrorDetails(err);
223
+ } catch (extractionErr) {
224
+ reportRememberErrorExtractionFailure(
225
+ onExtractionError,
226
+ "details",
227
+ extractionErr
228
+ );
229
+ details = void 0;
230
+ }
231
+ try {
232
+ stack = extractRememberErrorStack(err);
233
+ } catch (extractionErr) {
234
+ reportRememberErrorExtractionFailure(
235
+ onExtractionError,
236
+ "stack",
237
+ extractionErr
238
+ );
239
+ stack = void 0;
240
+ }
241
+ return {
242
+ ...details ? { details } : {},
243
+ debugDetails: details ?? "<details unavailable>",
244
+ ...stack ? { stack } : {}
245
+ };
246
+ }
247
+ __name(workspaceMemoryFailureDiagnostics, "workspaceMemoryFailureDiagnostics");
248
+
249
+ // packages/cli/src/serve/workspace-memory-remember-constants.ts
250
+ init_esbuild_shims();
251
+ var MAX_REMEMBER_CONTENT_BYTES = 64 * 1024;
252
+
253
+ // packages/cli/src/serve/workspace-memory-summaries.ts
254
+ init_esbuild_shims();
255
+ function formatWorkspaceMemoryForgetSummary(removedEntryCount) {
256
+ return removedEntryCount > 0 ? `Forgot ${removedEntryCount} memory entr${removedEntryCount === 1 ? "y" : "ies"}.` : "No managed auto-memory entries matched.";
257
+ }
258
+ __name(formatWorkspaceMemoryForgetSummary, "formatWorkspaceMemoryForgetSummary");
259
+ function formatWorkspaceMemoryDreamSummary(touchedTopicCount) {
260
+ return touchedTopicCount > 0 ? "Managed auto-memory dream completed." : "No managed auto-memory topics changed.";
261
+ }
262
+ __name(formatWorkspaceMemoryDreamSummary, "formatWorkspaceMemoryDreamSummary");
263
+
264
+ // packages/cli/src/serve/validate-server-name.ts
265
+ init_esbuild_shims();
266
+ var VALID_SERVER_NAME = /^[A-Za-z0-9_-]+$/;
267
+ var RESERVED_SERVER_NAMES = /* @__PURE__ */ new Set([
268
+ "__proto__",
269
+ "constructor",
270
+ "prototype"
271
+ ]);
272
+ function isValidServerName(name) {
273
+ return typeof name === "string" && name.length > 0 && name.length <= 256 && VALID_SERVER_NAME.test(name) && !RESERVED_SERVER_NAMES.has(name);
274
+ }
275
+ __name(isValidServerName, "isValidServerName");
276
+
277
+ export {
278
+ createWorkspaceMemoryExtractionErrorLogger,
279
+ extractRememberErrorCode,
280
+ workspaceMemoryFailureCode,
281
+ shouldSuppressRememberErrorDetails,
282
+ workspaceMemoryFailureDiagnostics,
283
+ MAX_REMEMBER_CONTENT_BYTES,
284
+ formatWorkspaceMemoryForgetSummary,
285
+ formatWorkspaceMemoryDreamSummary,
286
+ isValidServerName
287
+ };
288
+ /**
289
+ * @license
290
+ * Copyright 2026 Qwen Team
291
+ * SPDX-License-Identifier: Apache-2.0
292
+ */
@@ -5,7 +5,7 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-ADZG46HR.js";
8
+ } from "./chunk-YHGCTQG3.js";
9
9
  import {
10
10
  resolvePath
11
11
  } from "./chunk-E7KNELIZ.js";
@@ -368,12 +368,12 @@ async function assertVoiceBaseUrlNetworkAllowed(voiceConfig, lookupHost) {
368
368
  }
369
369
  }
370
370
  __name(assertVoiceBaseUrlNetworkAllowed, "assertVoiceBaseUrlNetworkAllowed");
371
- function readApiKey(settings, model, baseUrl) {
371
+ function readApiKey(settings, model, baseUrl, env) {
372
372
  if (!model.envKey && !isQwenBaseUrl(baseUrl)) {
373
373
  return void 0;
374
374
  }
375
375
  const envKey = model.envKey ?? DEFAULT_OPENAI_API_KEY;
376
- const envValue = process.env[envKey];
376
+ const envValue = (env ?? process.env)[envKey];
377
377
  if (envValue && envValue.trim().length > 0) {
378
378
  return envValue.trim();
379
379
  }
@@ -391,7 +391,8 @@ __name(readApiKey, "readApiKey");
391
391
  function resolveVoiceTranscriptionConfig({
392
392
  config,
393
393
  settings,
394
- voiceModel
394
+ voiceModel,
395
+ env
395
396
  }) {
396
397
  const matches = config.getAllConfiguredModels().filter((model2) => model2.id === voiceModel);
397
398
  if (matches.length === 0) {
@@ -423,7 +424,7 @@ function resolveVoiceTranscriptionConfig({
423
424
  `Voice model '${voiceModel}' must not use a private-network baseUrl.`
424
425
  );
425
426
  }
426
- const apiKey = readApiKey(settings, model, normalizedBaseUrl);
427
+ const apiKey = readApiKey(settings, model, normalizedBaseUrl, env);
427
428
  if (model.envKey && !apiKey) {
428
429
  throw new Error(`Voice model '${voiceModel}' requires ${model.envKey}.`);
429
430
  }
@@ -588,6 +589,7 @@ async function transcribeViaQwenAsr(audio, voiceConfig, options, fetchFn) {
588
589
  }
589
590
  let response;
590
591
  try {
592
+ options.onEgress?.();
591
593
  response = await fetchFn(
592
594
  `${trimTrailingSlashes(voiceConfig.baseUrl)}/chat/completions`,
593
595
  {
@@ -657,7 +659,12 @@ async function transcribeVoiceAudio(audio, args) {
657
659
  return transcribeViaQwenAsr(
658
660
  audio,
659
661
  voiceConfig,
660
- { language, keytermsContext, abortSignal: args.abortSignal },
662
+ {
663
+ language,
664
+ keytermsContext,
665
+ abortSignal: args.abortSignal,
666
+ ...args.onEgress ? { onEgress: args.onEgress } : {}
667
+ },
661
668
  fetchFn
662
669
  );
663
670
  case "qwen-asr-realtime":
@@ -680,6 +687,7 @@ export {
680
687
  isStreamingVoiceModel,
681
688
  resolveVoiceStreamConfig,
682
689
  isKeytermEcho,
690
+ MAX_AUDIO_BYTES,
683
691
  sanitizeVoiceErrorMessage,
684
692
  transcribeVoiceAudio
685
693
  };
@@ -2,16 +2,17 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-I4A4K72C.js";
5
+ } from "./chunk-5F2H3PXG.js";
6
6
  import {
7
7
  require_undici
8
8
  } from "./chunk-54YZOP7P.js";
9
9
  import {
10
+ IdeClient,
10
11
  getAllProviderBaseUrls
11
- } from "./chunk-YEGT55NW.js";
12
+ } from "./chunk-ZDAZSR2O.js";
12
13
  import {
13
14
  initializeTelemetry
14
- } from "./chunk-GMOWQOQQ.js";
15
+ } from "./chunk-5ZVIYNLN.js";
15
16
  import {
16
17
  detectRuntime,
17
18
  getOrCreateSharedDispatcher,
@@ -144,24 +145,38 @@ __name(preconnectApi, "preconnectApi");
144
145
 
145
146
  // packages/cli/src/startup/startup-prefetch.ts
146
147
  var debugLogger2 = createDebugLogger("STARTUP_PREFETCH");
147
- var DEFERRED_IDE_CONNECT_TIMEOUT_MS = 1e4;
148
+ var DEFERRED_IDE_CONNECT_TIMEOUT_MS = 15e3;
148
149
  var earlyStarted = /* @__PURE__ */ new WeakSet();
149
150
  var postRenderStarted = /* @__PURE__ */ new WeakSet();
150
- function withTimeout(promise, name, timeoutMs) {
151
+ function withTimeout(promise, name, timeoutMs, onTimeout = () => {
152
+ }) {
151
153
  let timeoutId;
152
154
  let timedOut = false;
155
+ const runTimeoutCleanup = /* @__PURE__ */ __name(() => {
156
+ void Promise.resolve().then(onTimeout).catch((err) => {
157
+ debugLogger2.debug(`${name} timeout cleanup failed:`, err);
158
+ });
159
+ }, "runTimeoutCleanup");
153
160
  const timeout = new Promise((_, reject) => {
154
161
  timeoutId = setTimeout(() => {
155
162
  timedOut = true;
163
+ runTimeoutCleanup();
156
164
  reject(new Error(`${name} timed out after ${timeoutMs}ms`));
157
165
  }, timeoutMs);
158
166
  timeoutId.unref?.();
159
167
  });
160
- promise.catch((err) => {
161
- if (timedOut) {
162
- debugLogger2.debug(`${name} underlying error after timeout:`, err);
168
+ void promise.then(
169
+ () => {
170
+ if (timedOut) {
171
+ runTimeoutCleanup();
172
+ }
173
+ },
174
+ (err) => {
175
+ if (timedOut) {
176
+ debugLogger2.debug(`${name} underlying error after timeout:`, err);
177
+ }
163
178
  }
164
- });
179
+ );
165
180
  return Promise.race([promise, timeout]).finally(() => {
166
181
  if (timeoutId) {
167
182
  clearTimeout(timeoutId);
@@ -179,6 +194,11 @@ function runDeferredTask(name, task) {
179
194
  });
180
195
  }
181
196
  __name(runDeferredTask, "runDeferredTask");
197
+ async function disconnectIdeAfterDeferredTimeout() {
198
+ const ideClient = await IdeClient.getInstance();
199
+ await ideClient.disconnect();
200
+ }
201
+ __name(disconnectIdeAfterDeferredTimeout, "disconnectIdeAfterDeferredTimeout");
182
202
  function startEarlyStartupPrefetches(config) {
183
203
  if (earlyStarted.has(config)) return;
184
204
  earlyStarted.add(config);
@@ -200,12 +220,35 @@ function startPostRenderPrefetches(config, settings, options = {}) {
200
220
  postRenderStarted.add(config);
201
221
  if (settings.merged.general?.enableAutoUpdate !== false) {
202
222
  runDeferredTask("update_check", async () => {
203
- const [{ checkForUpdates }, { handleAutoUpdate }] = await Promise.all([
204
- import("./updateCheck-E2ZX7RL7.js"),
205
- import("./handleAutoUpdate-HN7ZOSXY.js")
223
+ const [
224
+ { checkForUpdatesDetailed },
225
+ { handleAutoUpdate },
226
+ { updateEventEmitter },
227
+ { t }
228
+ ] = await Promise.all([
229
+ import("./updateCheck-X3ZWDO3Z.js"),
230
+ import("./handleAutoUpdate-TEZC5ZIR.js"),
231
+ import("./updateEventEmitter-NXWTRHXY.js"),
232
+ import("./i18n-5QEODTJV.js")
206
233
  ]);
207
- const info = await checkForUpdates();
208
- handleAutoUpdate(info, settings, config.getProjectRoot());
234
+ const updateFailedMessage = t(
235
+ "Failed to check for updates. Please check your network or registry configuration."
236
+ );
237
+ try {
238
+ const result = await checkForUpdatesDetailed();
239
+ if (result.status === "update") {
240
+ handleAutoUpdate(result.info, settings, config.getProjectRoot());
241
+ } else if (result.status === "error") {
242
+ updateEventEmitter.emit("update-failed", {
243
+ message: updateFailedMessage
244
+ });
245
+ }
246
+ } catch (error) {
247
+ updateEventEmitter.emit("update-failed", {
248
+ message: updateFailedMessage
249
+ });
250
+ throw error;
251
+ }
209
252
  });
210
253
  }
211
254
  if (options.connectIde && config.getIdeMode()) {
@@ -214,11 +257,12 @@ function startPostRenderPrefetches(config, settings, options = {}) {
214
257
  state: "connecting"
215
258
  });
216
259
  try {
217
- const { connectIdeForStartup } = await import("./initializer-SRN3IM42.js");
260
+ const { connectIdeForStartup } = await import("./initializer-222MPCLQ.js");
218
261
  await withTimeout(
219
262
  connectIdeForStartup(config),
220
263
  "ide_connect",
221
- DEFERRED_IDE_CONNECT_TIMEOUT_MS
264
+ DEFERRED_IDE_CONNECT_TIMEOUT_MS,
265
+ disconnectIdeAfterDeferredTimeout
222
266
  );
223
267
  appEvents.emit("startup-ide-connection-status-changed" /* StartupIdeConnectionStatusChanged */, {
224
268
  state: "connected"
@@ -239,7 +283,7 @@ function startPostRenderPrefetches(config, settings, options = {}) {
239
283
  }
240
284
  if (config.isInteractive()) {
241
285
  runDeferredTask("background_housekeeping", async () => {
242
- const { startBackgroundHousekeeping } = await import("./scheduler-ZRW3AIDU.js");
286
+ const { startBackgroundHousekeeping } = await import("./scheduler-FFATTAYZ.js");
243
287
  startBackgroundHousekeeping(config, settings);
244
288
  });
245
289
  }
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-VEB3NYSO.js";
9
+ } from "./chunk-ZJQBTFJ6.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
12
  } from "./chunk-GO6LNQXT.js";
@@ -15,7 +15,7 @@ import {
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-X3YGAX7V.js";
18
+ } from "./chunk-KS2FRTYI.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-A4BMJM77.js";
@@ -1,17 +1,21 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ formatHistoryGapNotice,
5
+ indexGapsByChild
6
+ } from "./chunk-GVVY7GSP.js";
3
7
  import {
4
8
  require_undici
5
9
  } from "./chunk-54YZOP7P.js";
6
10
  import {
7
11
  writeStderrLine
8
- } from "./chunk-Y6Z2O3WR.js";
12
+ } from "./chunk-JM7BYJO5.js";
9
13
  import {
10
14
  getActiveGoal
11
- } from "./chunk-YEGT55NW.js";
15
+ } from "./chunk-ZDAZSR2O.js";
12
16
  import {
13
17
  ToolNames
14
- } from "./chunk-X3YGAX7V.js";
18
+ } from "./chunk-KS2FRTYI.js";
15
19
  import {
16
20
  createDebugLogger
17
21
  } from "./chunk-22MNNNXE.js";
@@ -690,13 +694,21 @@ var HistoryReplayer = class {
690
694
  * Replays all chat records from a loaded session.
691
695
  *
692
696
  * @param records - Array of chat records to replay
697
+ * @param gaps - Optional detected history gaps; a visible notice is emitted
698
+ * immediately before each gap's child record so the user sees that an
699
+ * earlier segment was lost rather than assuming the halves are contiguous.
693
700
  */
694
- async replay(records) {
701
+ async replay(records, gaps) {
695
702
  this.pendingReplayToolCalls.clear();
703
+ const gapByChildUuid = indexGapsByChild(gaps);
696
704
  try {
697
705
  let replayError;
698
706
  try {
699
707
  for (const record of records) {
708
+ const gap = gapByChildUuid.get(record.uuid);
709
+ if (gap) {
710
+ await this.emitHistoryGapNotice(gap, record.timestamp);
711
+ }
700
712
  await this.replayRecord(record);
701
713
  }
702
714
  } catch (error) {
@@ -798,6 +810,20 @@ var HistoryReplayer = class {
798
810
  this.setActiveRecordId(null);
799
811
  }
800
812
  }
813
+ /**
814
+ * Emits a visible notice marking a break in the persisted history chain: an
815
+ * earlier segment was physically lost (storage interruption) and could not be
816
+ * recovered, so the surviving turns below must not be read as contiguous with
817
+ * whatever came before the gap. Uses the agent message channel — the same one
818
+ * used for other system notices (see MessageEmitter.emitStopHookLoop) — so no
819
+ * new session-update kind is needed.
820
+ */
821
+ async emitHistoryGapNotice(gap, timestamp) {
822
+ await this.messageEmitter.emitAgentMessage(
823
+ formatHistoryGapNotice(gap),
824
+ timestamp
825
+ );
826
+ }
801
827
  /**
802
828
  * Replays content from a message (user or assistant).
803
829
  * Handles text parts, thought parts, and function calls.
@@ -863,6 +889,7 @@ var HistoryReplayer = class {
863
889
  success: !result?.error,
864
890
  message: record.message.parts,
865
891
  resultDisplay: result?.resultDisplay,
892
+ artifacts: result?.artifacts,
866
893
  // For TodoWriteTool fallback, try to extract args from the record
867
894
  // Note: args aren't stored in tool_result records by default
868
895
  args: void 0,
@@ -1603,7 +1630,7 @@ async function extractMetadata(conversation, config) {
1603
1630
  const gitBranch = firstRecord?.gitBranch;
1604
1631
  let gitRepo;
1605
1632
  if (cwd) {
1606
- const { getGitRepoName } = await import("./src-XKZMNHXS.js");
1633
+ const { getGitRepoName } = await import("./src-NELBIIGI.js");
1607
1634
  gitRepo = getGitRepoName(cwd);
1608
1635
  }
1609
1636
  let model;