@qwen-code/qwen-code 0.19.6-nightly.20260706.47f62a466 → 0.19.6-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 (213) hide show
  1. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  2. package/bundled/qc-helper/docs/features/channels/overview.md +17 -9
  3. package/bundled/qc-helper/docs/features/channels/wecom.md +111 -0
  4. package/bundled/qc-helper/docs/features/code-review.md +16 -6
  5. package/bundled/qc-helper/docs/features/hooks.md +6 -0
  6. package/bundled/qc-helper/docs/integration-github-action.md +1 -1
  7. package/bundled/review/DESIGN.md +27 -18
  8. package/bundled/review/SKILL.md +37 -4
  9. package/chunks/{MaxSizedBox-JCOL4CAA.js → MaxSizedBox-2JOX4MMR.js} +11 -10
  10. package/chunks/{StandaloneSessionPicker-BLFN63BV.js → StandaloneSessionPicker-Z2G37ETA.js} +24 -22
  11. package/chunks/{acpAgent-3KQMM3LN.js → acpAgent-MQJT2H4Y.js} +103 -61
  12. package/chunks/{agent-3SQT4Q6F.js → agent-HEVJ76EO.js} +6 -7
  13. package/chunks/{agent-headless-XMYIIWGF.js → agent-headless-UNB5SWYC.js} +6 -7
  14. package/chunks/{anthropicContentGenerator-L7J7PVYL.js → anthropicContentGenerator-AKYPSZIV.js} +3 -3
  15. package/chunks/{artifact-tool-H2TNPNP5.js → artifact-tool-D233YJFH.js} +25 -6
  16. package/chunks/{bridge-VL53WCNP.js → bridge-GX2LGQDS.js} +11 -10
  17. package/chunks/{channel-worker-supervisor-B7MSMB5K.js → channel-worker-supervisor-CRCVYQIE.js} +1 -1
  18. package/chunks/{chunk-6T6SXQNR.js → chunk-27QGW3BK.js} +5 -5
  19. package/chunks/{chunk-YMVK4LS2.js → chunk-2D5Q33PT.js} +3 -3
  20. package/chunks/{chunk-IKCFWN3Y.js → chunk-2MDHTI6A.js} +2 -2
  21. package/chunks/{chunk-BBKXTYL6.js → chunk-2MJAXDFK.js} +6 -6
  22. package/chunks/{chunk-WSVZFWN4.js → chunk-2NPS2UDH.js} +305 -97
  23. package/chunks/{chunk-HALA655G.js → chunk-2X3ZVAAT.js} +2 -2
  24. package/chunks/chunk-332PWN27.js +19 -0
  25. package/chunks/{chunk-ACD5DFUY.js → chunk-3B26UVCX.js} +130 -24
  26. package/chunks/{chunk-Z7RPIVIC.js → chunk-43W4YSO6.js} +1 -12
  27. package/chunks/{chunk-3QAQS4IM.js → chunk-44NROQYV.js} +4 -2
  28. package/chunks/{chunk-N7K5TYQW.js → chunk-4XV2MRNK.js} +1 -1
  29. package/chunks/{chunk-VCHDUDLM.js → chunk-5HMMLTUD.js} +11 -11
  30. package/chunks/{chunk-JZLDAWNW.js → chunk-5IGNZP2J.js} +1 -1
  31. package/chunks/{chunk-NCFVPWRR.js → chunk-6GHEZDDX.js} +1 -1
  32. package/chunks/{chunk-AQOYX6KA.js → chunk-7O6DD2ES.js} +1 -1
  33. package/chunks/{chunk-SN3W7PFN.js → chunk-7R62CLMI.js} +4 -4
  34. package/chunks/{chunk-FB75L4ZI.js → chunk-7SAH6M3Y.js} +3 -3
  35. package/chunks/{chunk-RMIXI7TN.js → chunk-7VCI24VZ.js} +4 -107
  36. package/chunks/chunk-A2X3KLC3.js +3807 -0
  37. package/chunks/chunk-A3ZQMFO6.js +949 -0
  38. package/chunks/{chunk-B7E6VU5A.js → chunk-A7UKINBT.js} +7 -7
  39. package/chunks/{chunk-VDTH6RD3.js → chunk-ADO6IDOZ.js} +15 -9
  40. package/chunks/{chunk-FDVILPGP.js → chunk-AJ3CEJRJ.js} +10 -5
  41. package/chunks/{chunk-NCFY7PWS.js → chunk-CCGOFQV3.js} +51 -2
  42. package/chunks/{chunk-HSO66R46.js → chunk-DB7CZERZ.js} +1 -1
  43. package/chunks/{chunk-LAW3LHN6.js → chunk-DF74IL3R.js} +67 -42
  44. package/chunks/{chunk-U3RZKQXS.js → chunk-FCEHOKYP.js} +5 -5
  45. package/chunks/{chunk-OQLSVZAA.js → chunk-FRR5I3SQ.js} +1 -1
  46. package/chunks/{chunk-NFE3DQ4R.js → chunk-FV7425LN.js} +36 -1
  47. package/chunks/{chunk-NOAYCIDS.js → chunk-GPLKAQUX.js} +8 -8
  48. package/chunks/{chunk-VS64QG5I.js → chunk-GV2S4F6Q.js} +12 -4
  49. package/chunks/{chunk-ZNUVV3IQ.js → chunk-GW67O5SO.js} +1 -1
  50. package/chunks/{chunk-6QXGBCAH.js → chunk-HW4N45EE.js} +1 -45
  51. package/chunks/{chunk-OGC64RKC.js → chunk-IFDJAMJW.js} +484 -1222
  52. package/chunks/{chunk-7AEMHW7Y.js → chunk-ILFQAFWH.js} +1 -1
  53. package/chunks/chunk-JYFZFWSL.js +167 -0
  54. package/chunks/{chunk-JZGYH2ST.js → chunk-K56RTEBN.js} +1 -1
  55. package/chunks/chunk-LGFAYIKX.js +115 -0
  56. package/chunks/{chunk-QR2KK6CG.js → chunk-LLTFLVFK.js} +4 -4
  57. package/chunks/{chunk-654I2NBH.js → chunk-MZWODTEA.js} +5 -13
  58. package/chunks/{chunk-FCCBH56M.js → chunk-N33JAGJ7.js} +812 -78
  59. package/chunks/{chunk-K2KVPZM5.js → chunk-NVQVIJMO.js} +112 -42
  60. package/chunks/{chunk-LH6D765T.js → chunk-O6T7PBUM.js} +30 -6
  61. package/chunks/{chunk-QOKVIOLW.js → chunk-P452E6XF.js} +2 -2
  62. package/chunks/chunk-PS2NG7KU.js +262 -0
  63. package/chunks/{chunk-RG6ZAMMW.js → chunk-QM4FKX7H.js} +2 -2
  64. package/chunks/chunk-RODQXLGZ.js +28 -0
  65. package/chunks/{chunk-KSPVDFE4.js → chunk-SAIILPQ3.js} +0 -3
  66. package/chunks/{chunk-5QNTAU44.js → chunk-SJ3QRPN2.js} +14 -8
  67. package/chunks/{chunk-FTXYSZOJ.js → chunk-SKO6VJHG.js} +16 -4
  68. package/chunks/{chunk-66KNL43D.js → chunk-TBAZMRW3.js} +1 -1
  69. package/chunks/{chunk-KDCCKYPM.js → chunk-TPTG52XG.js} +1 -1
  70. package/chunks/chunk-UIDXQNMV.js +13 -0
  71. package/chunks/chunk-VP2FB7OC.js +8223 -0
  72. package/chunks/{chunk-QLEBY26M.js → chunk-WKBA74DD.js} +1 -1
  73. package/chunks/{chunk-XRKPKL3R.js → chunk-WKTLDGD6.js} +1 -1
  74. package/chunks/{chunk-O2I6MGPK.js → chunk-WRLMLPWI.js} +3 -3
  75. package/chunks/{chunk-PRO3AHV3.js → chunk-XXICIIS5.js} +5 -5
  76. package/chunks/{chunk-GIXLNFID.js → chunk-Y3QQV7WE.js} +2 -2
  77. package/chunks/{chunk-LTDPXBIJ.js → chunk-ZKX7IBXU.js} +4 -4
  78. package/chunks/{chunk-J7JIBDUN.js → chunk-ZOSL7K3L.js} +221 -42
  79. package/chunks/{chunk-4VVDPKQ6.js → chunk-ZWFS7YCB.js} +4941 -3908
  80. package/chunks/{computer-use-JZO5THQ4.js → computer-use-IQ46C3YP.js} +6 -7
  81. package/chunks/{contextCommand-B3US3GS2.js → contextCommand-TTT6AP2W.js} +10 -10
  82. package/chunks/{cron-create-O6ZHD3JN.js → cron-create-JSXEIPVS.js} +1 -1
  83. package/chunks/{cron-delete-BFD5B2XX.js → cron-delete-OIFVEPGU.js} +1 -1
  84. package/chunks/{cron-list-KI6FV4KN.js → cron-list-D4ZX4IOE.js} +8 -4
  85. package/chunks/{daemon-WQXSK7GF.js → daemon-F3I2RXP6.js} +59 -3
  86. package/chunks/{daemon-status-provider-FYMIAJ74.js → daemon-status-provider-5GAWK65R.js} +13 -13
  87. package/chunks/dist-573HNSVO.js +3217 -0
  88. package/chunks/{dist-VHBP2PIG.js → dist-FQ5WRJPL.js} +2 -2
  89. package/chunks/{dist-LPVU3L2M.js → dist-IMFFBMAT.js} +6 -3792
  90. package/chunks/{dist-7GU63KI5.js → dist-OT7G2WNM.js} +1 -1
  91. package/chunks/{dist-H4HHZYCI.js → dist-PKFTNUHO.js} +2 -2
  92. package/chunks/{dist-3UDX5T4T.js → dist-YTRKAVUB.js} +1 -1
  93. package/chunks/{earlyInputCapture-5GY56LUS.js → earlyInputCapture-LAGZUGGV.js} +6 -7
  94. package/chunks/{edit-A26XF3GQ.js → edit-Q5BUQC2S.js} +6 -7
  95. package/chunks/{en-AXARKOWO.js → en-GA2RMXY5.js} +5 -1
  96. package/chunks/{enter-worktree-LXWZ7LPU.js → enter-worktree-DC4FHMVF.js} +6 -7
  97. package/chunks/{enterPlanMode-OZPTJ4LY.js → enterPlanMode-5BGJBWIY.js} +6 -7
  98. package/chunks/{errors-HC6JMZ7A.js → errors-EGX5DECS.js} +8 -9
  99. package/chunks/{exit-worktree-5SMO7MH5.js → exit-worktree-2EOSZNZI.js} +6 -7
  100. package/chunks/{exitPlanMode-EFPLGAND.js → exitPlanMode-JAQ35ELJ.js} +6 -7
  101. package/chunks/{fast-path-TF2IF5WZ.js → fast-path-QEWDA6O6.js} +5 -2
  102. package/chunks/{fr-MBMNQSQ6.js → fr-GWNQG4XH.js} +4 -0
  103. package/chunks/{gemini-XTISXYIY.js → gemini-TQ5XANRS.js} +64 -188
  104. package/chunks/{geminiContentGenerator-5W62YCSD.js → geminiContentGenerator-DCM2XGDQ.js} +1 -1
  105. package/chunks/{glob-YVWLTWR4.js → glob-7JLTQ4IQ.js} +6 -7
  106. package/chunks/{grep-TMLRZONJ.js → grep-CAUXEO7Q.js} +6 -7
  107. package/chunks/handleAutoUpdate-XKXULZQX.js +65 -0
  108. package/chunks/{initializer-7SJAWILK.js → initializer-3NRWU5JV.js} +12 -11
  109. package/chunks/{ja-HFV5QCHR.js → ja-2HOTA47X.js} +4 -0
  110. package/chunks/{list-JE74WAG2.js → list-NWO6QBDQ.js} +12 -13
  111. package/chunks/{loadedSettingsAdapter-R3DCJQ5W.js → loadedSettingsAdapter-PJ77LGFS.js} +10 -11
  112. package/chunks/{loop-wakeup-CUVIY2JY.js → loop-wakeup-OHWEMFP5.js} +2 -2
  113. package/chunks/{mcp-AJ2ZHF2N.js → mcp-VFEHVF5A.js} +10 -11
  114. package/chunks/{monitor-UH6ORENE.js → monitor-FY2ITVSC.js} +14 -10
  115. package/chunks/{nonInteractiveCli-CCYM24DQ.js → nonInteractiveCli-KPCXTVWY.js} +41 -37
  116. package/chunks/{notebook-edit-VW6QKDC6.js → notebook-edit-BSJMXIWX.js} +6 -7
  117. package/chunks/{openaiContentGenerator-2HIY7ZUY.js → openaiContentGenerator-BA6NWY4S.js} +5 -6
  118. package/chunks/{pidfile-QGNMZ5SP.js → pidfile-WXMRN6QF.js} +6 -7
  119. package/chunks/{qwenContentGenerator-JFQNSKW4.js → qwenContentGenerator-U4ZSLGFN.js} +8 -9
  120. package/chunks/{read-file-LTJRKWK2.js → read-file-VMVHNOMA.js} +2 -2
  121. package/chunks/{ripGrep-X65NYSFJ.js → ripGrep-NC6MUWXN.js} +6 -7
  122. package/chunks/{run-qwen-serve-CLVQV6WU.js → run-qwen-serve-NQH6LQTH.js} +144 -27
  123. package/chunks/{scheduler-NUTJ4FRU.js → scheduler-35T3E2UQ.js} +6 -7
  124. package/chunks/{serve-4DVF5UCI.js → serve-C36LOB5N.js} +10 -11
  125. package/chunks/{server-ZFRDBIFR.js → server-TDFPIDC3.js} +1342 -160
  126. package/chunks/{session-YQPMXZCZ.js → session-STHNQGRJ.js} +42 -38
  127. package/chunks/{settings-2P6SMCR5.js → settings-GIE22AYF.js} +9 -10
  128. package/chunks/{shell-5V6CJVMZ.js → shell-JD52AIMU.js} +6 -7
  129. package/chunks/{skill-YCDQKIQQ.js → skill-L4IFKRQ5.js} +14 -4
  130. package/chunks/{spawnChannel-NEOZMKQL.js → spawnChannel-HGMOEPM7.js} +8 -9
  131. package/chunks/{src-OSBARWA7.js → src-3SNF3G3V.js} +40 -17
  132. package/chunks/{startInteractiveUI-YKNL25BC.js → startInteractiveUI-C7DCDHGF.js} +5011 -13181
  133. package/chunks/{team-create-DWR5UZIT.js → team-create-NYL7KAMA.js} +6 -7
  134. package/chunks/{team-plan-approval-IVROZF6V.js → team-plan-approval-LH65JBEH.js} +6 -7
  135. package/chunks/{theme-manager-C5E2HDJG.js → theme-manager-ANKQO5DR.js} +6 -7
  136. package/chunks/{tool-search-YX2YOBFJ.js → tool-search-WZEGJFO4.js} +4 -21
  137. package/chunks/{trustedFolders-7KI7ETLR.js → trustedFolders-HECAG3S3.js} +7 -8
  138. package/chunks/updateCheck-72BBAE5V.js +65 -0
  139. package/chunks/{validateNonInterActiveAuth-JUTUFRSI.js → validateNonInterActiveAuth-PDQCPSNA.js} +38 -34
  140. package/chunks/{version-4DEOOFHV.js → version-VSEUTPNM.js} +2 -1
  141. package/chunks/{workflow-FSJVAP5Q.js → workflow-DPF2CL7U.js} +7 -8
  142. package/chunks/{workspace-providers-status-YBIB2D77.js → workspace-providers-status-TQ23DQ2D.js} +12 -13
  143. package/chunks/{workspace-service-K27FZHY6.js → workspace-service-D34UDMEY.js} +14 -15
  144. package/chunks/{workspace-skills-status-QKXCNLVT.js → workspace-skills-status-4DR5UNNC.js} +11 -12
  145. package/chunks/{write-file-7XMET6EL.js → write-file-VFNAKGYM.js} +6 -7
  146. package/chunks/{zh-RS3HZHFH.js → zh-7XVVRTDH.js} +5 -1
  147. package/chunks/{zh-TW-L5GRQ4S4.js → zh-TW-DPH554OG.js} +5 -1
  148. package/cli.js +11 -11
  149. package/locales/en.js +8 -2
  150. package/locales/fr.js +6 -0
  151. package/locales/ja.js +6 -0
  152. package/locales/zh-TW.js +8 -2
  153. package/locales/zh.js +8 -2
  154. package/node_modules/@qwen-code/audio-capture/package.json +1 -1
  155. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  156. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  157. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  158. package/package.json +3 -3
  159. package/web-shell/assets/{arc-DsvupRmw.js → arc-C7hjaa7g.js} +1 -1
  160. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BwogiDi8.js → architectureDiagram-3BPJPVTR-pm9KtMZY.js} +1 -1
  161. package/web-shell/assets/{blockDiagram-GPEHLZMM-BibxECWL.js → blockDiagram-GPEHLZMM-CApElKsU.js} +1 -1
  162. package/web-shell/assets/{c4Diagram-AAUBKEIU-7cCkrqli.js → c4Diagram-AAUBKEIU-BeDe0-9N.js} +1 -1
  163. package/web-shell/assets/channel-BNf1dW-j.js +1 -0
  164. package/web-shell/assets/{chunk-2J33WTMH-DVJvJrzC.js → chunk-2J33WTMH-DJEkmLdl.js} +1 -1
  165. package/web-shell/assets/{chunk-4BX2VUAB-BFd1gVwi.js → chunk-4BX2VUAB-DXX8gdpe.js} +1 -1
  166. package/web-shell/assets/{chunk-55IACEB6-BW2NnZiy.js → chunk-55IACEB6-DORmk1kQ.js} +1 -1
  167. package/web-shell/assets/{chunk-727SXJPM-FUpKPObH.js → chunk-727SXJPM-DWmO4mCZ.js} +1 -1
  168. package/web-shell/assets/{chunk-AQP2D5EJ-DqoSTkq2.js → chunk-AQP2D5EJ-C7LRaYw2.js} +1 -1
  169. package/web-shell/assets/{chunk-FMBD7UC4-D6Tt9URv.js → chunk-FMBD7UC4-CCdXgyC5.js} +1 -1
  170. package/web-shell/assets/{chunk-ND2GUHAM-B9pTpaYB.js → chunk-ND2GUHAM-SyL_xvWc.js} +1 -1
  171. package/web-shell/assets/{chunk-QZHKN3VN-KJs617M2.js → chunk-QZHKN3VN-BzOuCKxa.js} +1 -1
  172. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +1 -0
  173. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +1 -0
  174. package/web-shell/assets/{cose-bilkent-S5V4N54A-B-pCB_lI.js → cose-bilkent-S5V4N54A-BMPWyDKc.js} +1 -1
  175. package/web-shell/assets/{dagre-BM42HDAG-pCqrm_dE.js → dagre-BM42HDAG-B_GnPWik.js} +1 -1
  176. package/web-shell/assets/{diagram-2AECGRRQ-CJd4RXQc.js → diagram-2AECGRRQ-fJqMc3S_.js} +1 -1
  177. package/web-shell/assets/{diagram-5GNKFQAL-CP0ntTEt.js → diagram-5GNKFQAL-ximV3O9D.js} +1 -1
  178. package/web-shell/assets/{diagram-KO2AKTUF-HKMjC8U_.js → diagram-KO2AKTUF-2vVyjzqw.js} +1 -1
  179. package/web-shell/assets/{diagram-LMA3HP47-BnUMTzxK.js → diagram-LMA3HP47-Dckcx1sT.js} +1 -1
  180. package/web-shell/assets/{diagram-OG6HWLK6-CY2kjke3.js → diagram-OG6HWLK6-BAVv47ga.js} +1 -1
  181. package/web-shell/assets/{erDiagram-TEJ5UH35-Q-P2C_2c.js → erDiagram-TEJ5UH35-Bn3nf5J0.js} +1 -1
  182. package/web-shell/assets/{flowDiagram-I6XJVG4X-D5dDqv6k.js → flowDiagram-I6XJVG4X-BIbGF9JT.js} +1 -1
  183. package/web-shell/assets/{ganttDiagram-6RSMTGT7-D6e_nLNG.js → ganttDiagram-6RSMTGT7-CDbhb3AH.js} +1 -1
  184. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Cagi_aG2.js → gitGraphDiagram-PVQCEYII-CbKG1a_w.js} +1 -1
  185. package/web-shell/assets/index-CnE2ur2L.js +779 -0
  186. package/web-shell/assets/index-hSKXrlSE.css +5 -0
  187. package/web-shell/assets/{infoDiagram-5YYISTIA-CCRsrfey.js → infoDiagram-5YYISTIA-DUFxTy8m.js} +1 -1
  188. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-o1nEXhOa.js → ishikawaDiagram-YF4QCWOH-D69hrBG8.js} +1 -1
  189. package/web-shell/assets/{journeyDiagram-JHISSGLW-yNY7DUDz.js → journeyDiagram-JHISSGLW-DsvEw51Y.js} +1 -1
  190. package/web-shell/assets/{kanban-definition-UN3LZRKU-C2CG5vmP.js → kanban-definition-UN3LZRKU-lFFjZEYd.js} +1 -1
  191. package/web-shell/assets/{linear-Jsjhveg2.js → linear-Bo5bWzvo.js} +1 -1
  192. package/web-shell/assets/{mermaid.core-CCrKRcoG.js → mermaid.core-C_HKMJx5.js} +5 -5
  193. package/web-shell/assets/{mindmap-definition-RKZ34NQL-C8yHT5I5.js → mindmap-definition-RKZ34NQL-DlV-NUTs.js} +1 -1
  194. package/web-shell/assets/{pieDiagram-4H26LBE5-BnVzUzO5.js → pieDiagram-4H26LBE5-B2e6FH2a.js} +1 -1
  195. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-EP9K_nK2.js → quadrantDiagram-W4KKPZXB-D75kSk-b.js} +1 -1
  196. package/web-shell/assets/{requirementDiagram-4Y6WPE33-D_Q9FvKR.js → requirementDiagram-4Y6WPE33-CQ6xakhM.js} +1 -1
  197. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bh08id0J.js → sankeyDiagram-5OEKKPKP-J_XTKrcY.js} +1 -1
  198. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Btm9ZGN_.js → sequenceDiagram-3UESZ5HK-D7jTcBtf.js} +1 -1
  199. package/web-shell/assets/{stateDiagram-AJRCARHV-CR9Ym-Fy.js → stateDiagram-AJRCARHV-CrlM_OT3.js} +1 -1
  200. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +1 -0
  201. package/web-shell/assets/{timeline-definition-PNZ67QCA-TUsY0ZLs.js → timeline-definition-PNZ67QCA-5oZi76Ef.js} +1 -1
  202. package/web-shell/assets/{vennDiagram-CIIHVFJN-DqzVmJAq.js → vennDiagram-CIIHVFJN-DO5YptPK.js} +1 -1
  203. package/web-shell/assets/{wardley-L42UT6IY-DlUQaEG_.js → wardley-L42UT6IY-4t1eJDvM.js} +1 -1
  204. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-mvwPkaJp.js → wardleyDiagram-YWT4CUSO-DKZc661S.js} +1 -1
  205. package/web-shell/assets/{xychartDiagram-2RQKCTM6-CJfXdkkx.js → xychartDiagram-2RQKCTM6-su9hp08G.js} +1 -1
  206. package/web-shell/index.html +2 -2
  207. package/chunks/chunk-QT7XKZT7.js +0 -293
  208. package/web-shell/assets/channel-Bhs5kHEh.js +0 -1
  209. package/web-shell/assets/classDiagram-4FO5ZUOK-BGHJQZmo.js +0 -1
  210. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BGHJQZmo.js +0 -1
  211. package/web-shell/assets/index-DoGSgv5C.css +0 -5
  212. package/web-shell/assets/index-lWWJkqt9.js +0 -754
  213. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-6aAMKcly.js +0 -1
@@ -11,11 +11,13 @@ import {
11
11
  import {
12
12
  CRON_TASKS_DISPLAY_PATH,
13
13
  addCronTask,
14
+ appendCronRun,
15
+ generateCronTaskId,
14
16
  getCronFilePath,
15
17
  readCronTasks,
16
18
  removeCronTasks,
17
19
  updateCronTasks
18
- } from "./chunk-NFE3DQ4R.js";
20
+ } from "./chunk-FV7425LN.js";
19
21
  import {
20
22
  ToolNames
21
23
  } from "./chunk-X3YGAX7V.js";
@@ -187,15 +189,7 @@ function computeJitter(id, cronExpr, recurring) {
187
189
  return 0;
188
190
  }
189
191
  __name(computeJitter, "computeJitter");
190
- function generateId() {
191
- const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
192
- let id = "";
193
- for (let i = 0; i < 8; i++) {
194
- id += chars[Math.floor(Math.random() * chars.length)];
195
- }
196
- return id;
197
- }
198
- __name(generateId, "generateId");
192
+ var generateId = generateCronTaskId;
199
193
  function clampWakeupSeconds(delaySeconds) {
200
194
  if (!Number.isFinite(delaySeconds)) return WAKEUP_DEFAULT_SECONDS;
201
195
  return Math.min(
@@ -289,6 +283,42 @@ var CronScheduler = class {
289
283
  // the live job away (or clear its pendingRemoval guard) as if it had
290
284
  // been deleted on disk.
291
285
  pendingAdd = /* @__PURE__ */ new Set();
286
+ // Durable ids whose lastFiredAt persist is in flight after a fire — the tick
287
+ // (on-time) OR a catch-up delivery. A reload racing that async write reads the
288
+ // stale disk stamp, so it must not re-detect and re-fire the same slot. Only
289
+ // populated once a fire has actually been stamped/delivered, so a catch-up that
290
+ // was merely buffered and then dropped never enters it and still re-detects.
291
+ //
292
+ // REF-COUNTED per id (not a plain Set): the same task can have two persists in
293
+ // flight at once (it fired again before the first write landed). Clearing on
294
+ // the FIRST settle would drop the guard while the second write is still
295
+ // pending; the count keeps it until the LAST in-flight persist for that id
296
+ // settles.
297
+ //
298
+ // LIMITATION: this guard is INSTANCE-scoped in-memory state. It protects
299
+ // against a reload racing a persist WITHIN one scheduler. It does NOT survive
300
+ // a new scheduler instance (daemon restart, keepalive revive, session reload):
301
+ // a fresh instance starts with an empty map, so if the previous instance died
302
+ // with a persist still in flight, the new one reads the stale on-disk stamp
303
+ // and can re-fire that slot once. Fully closing that narrow cross-instance
304
+ // window would need a durable stamp (in the tasks file or a lock file); it's
305
+ // accepted here as a sub-second restart-timing edge.
306
+ firePersistPending = /* @__PURE__ */ new Map();
307
+ markFirePersistPending(ids) {
308
+ for (const id of ids) {
309
+ this.firePersistPending.set(
310
+ id,
311
+ (this.firePersistPending.get(id) ?? 0) + 1
312
+ );
313
+ }
314
+ }
315
+ clearFirePersistPending(ids) {
316
+ for (const id of ids) {
317
+ const next = (this.firePersistPending.get(id) ?? 0) - 1;
318
+ if (next > 0) this.firePersistPending.set(id, next);
319
+ else this.firePersistPending.delete(id);
320
+ }
321
+ }
292
322
  fileWatcher = null;
293
323
  lockProbeTimer = null;
294
324
  debounceTimer = null;
@@ -557,19 +587,29 @@ var CronScheduler = class {
557
587
  try {
558
588
  read = await readCronTasks(projectRoot);
559
589
  } catch {
590
+ if (this.jobs.size > 0) {
591
+ console.warn(
592
+ "CronScheduler: durable tasks reload failed; keeping the previous schedule (a just-disabled or -deleted task may keep firing until the next successful reload)."
593
+ );
594
+ }
560
595
  return;
561
596
  }
562
597
  if (generation !== this.durableGeneration) {
563
598
  return;
564
599
  }
565
- const tasks = read.filter(hasParseableCron);
600
+ const tasks = read.filter(
601
+ (t) => hasParseableCron(t) && t.enabled !== false
602
+ );
566
603
  const now = Date.now();
567
604
  const missedOneShots = [];
568
605
  const catchUpIds = [];
569
606
  const finalTasks = [];
570
- if (handleMissed) {
607
+ {
571
608
  for (const t of tasks) {
572
609
  if (this.pendingRemoval.has(t.id)) continue;
610
+ const responsibleForMissed = typeof t.sessionId === "string" && t.sessionId.length > 0 ? t.sessionId === this.sessionId : handleMissed;
611
+ if (!responsibleForMissed) continue;
612
+ if (this.firePersistPending.has(t.id)) continue;
573
613
  const jitter = computeJitter(t.id, t.cron, t.recurring);
574
614
  const anchor = t.recurring ? t.lastFiredAt ?? t.createdAt : t.createdAt;
575
615
  const nextFire = computeNextFireMs(t.cron, anchor, jitter);
@@ -602,12 +642,14 @@ var CronScheduler = class {
602
642
  for (const id of this.pendingRemoval) {
603
643
  if (!diskIds.has(id)) this.pendingRemoval.delete(id);
604
644
  }
645
+ let durableJobCount = 0;
646
+ for (const j of this.jobs.values()) if (j.durable) durableJobCount++;
605
647
  for (const task of tasks) {
606
648
  if (this.pendingRemoval.has(task.id)) continue;
607
649
  const existing = this.jobs.get(task.id);
608
- if (!existing && this.jobs.size >= MAX_JOBS) {
650
+ if (!existing && durableJobCount >= MAX_JOBS) {
609
651
  debugLogger.warn(
610
- `Durable task ${task.id} skipped \u2014 MAX_JOBS (${MAX_JOBS}) reached.`
652
+ `Durable task ${task.id} skipped \u2014 durable cap (${MAX_JOBS}) reached.`
611
653
  );
612
654
  continue;
613
655
  }
@@ -616,6 +658,7 @@ var CronScheduler = class {
616
658
  job.lastFiredAt = Math.max(existing.lastFiredAt, job.lastFiredAt ?? 0);
617
659
  }
618
660
  this.jobs.set(task.id, job);
661
+ if (!existing) durableJobCount++;
619
662
  }
620
663
  if (catchUpIds.length > 0) {
621
664
  const nowMinuteMs = now - now % 6e4;
@@ -730,16 +773,28 @@ var CronScheduler = class {
730
773
  if (fired !== void 0) stamps.set(id, fired);
731
774
  }
732
775
  if (stamps.size === 0) return;
776
+ const guarded = [...stamps.keys()];
777
+ this.markFirePersistPending(guarded);
733
778
  this.trackPersist(
734
779
  updateCronTasks(this.projectRoot, (tasks) => {
735
780
  let changed = false;
736
781
  const next = tasks.map((t) => {
737
782
  const stamp = stamps.get(t.id);
738
- if (stamp === void 0 || t.lastFiredAt === stamp) return t;
783
+ if (stamp === void 0 || (t.lastFiredAt ?? 0) >= stamp) return t;
739
784
  changed = true;
740
- return { ...t, lastFiredAt: stamp };
785
+ return {
786
+ ...t,
787
+ lastFiredAt: stamp,
788
+ runs: appendCronRun(t.runs, {
789
+ at: stamp,
790
+ kind: "catch-up",
791
+ ...this.sessionId ? { sessionId: this.sessionId } : {}
792
+ })
793
+ };
741
794
  });
742
795
  return changed ? next : tasks;
796
+ }).finally(() => {
797
+ this.clearFirePersistPending(guarded);
743
798
  })
744
799
  );
745
800
  }
@@ -908,6 +963,20 @@ var CronScheduler = class {
908
963
  this._disabled = true;
909
964
  this.stop();
910
965
  }
966
+ /**
967
+ * Whether THIS session should fire a given durable job:
968
+ * - A session-bound task (`boundSessionId` set) fires only in its own
969
+ * session, independent of the per-project lock — so each task's fires
970
+ * land in its dedicated transcript and no two sessions race it.
971
+ * - An unbound task fires only in the lock owner (the legacy shared model).
972
+ * A task bound to a *different* session is never fired here.
973
+ */
974
+ #shouldFireDurable(job) {
975
+ if (job.boundSessionId !== void 0) {
976
+ return job.boundSessionId === this.sessionId;
977
+ }
978
+ return this.isOwner;
979
+ }
911
980
  /**
912
981
  * Manual tick — checks all jobs against the current time and fires those
913
982
  * that are due. Exported for testing.
@@ -919,7 +988,7 @@ var CronScheduler = class {
919
988
  const firedAt = /* @__PURE__ */ new Map();
920
989
  const removedIds = [];
921
990
  for (const job of this.jobs.values()) {
922
- if (job.durable && !this.isOwner) continue;
991
+ if (job.durable && !this.#shouldFireDurable(job)) continue;
923
992
  if (job.durable && this.skipDurableFire?.(job)) {
924
993
  debugLogger.debug(
925
994
  `Skipping durable job ${job.id} (tick): consumer cannot run it`
@@ -937,13 +1006,30 @@ var CronScheduler = class {
937
1006
  if (this.projectRoot && (firedAt.size > 0 || removedIds.length > 0)) {
938
1007
  for (const id of removedIds) this.pendingRemoval.add(id);
939
1008
  const removed = new Set(removedIds);
1009
+ const guarded = [...firedAt.keys()];
1010
+ this.markFirePersistPending(guarded);
940
1011
  this.trackPersist(
941
1012
  updateCronTasks(
942
1013
  this.projectRoot,
943
- (tasks) => tasks.filter((t) => !removed.has(t.id)).map(
944
- (t) => firedAt.has(t.id) ? { ...t, lastFiredAt: firedAt.get(t.id) } : t
945
- )
946
- )
1014
+ (tasks) => tasks.filter((t) => !removed.has(t.id)).map((t) => {
1015
+ const stamp = firedAt.get(t.id);
1016
+ if (stamp === void 0 || (t.lastFiredAt ?? 0) >= stamp)
1017
+ return t;
1018
+ return {
1019
+ ...t,
1020
+ lastFiredAt: stamp,
1021
+ runs: appendCronRun(t.runs, {
1022
+ at: stamp,
1023
+ kind: "scheduled",
1024
+ // The owner session that ran this fire — links the run back
1025
+ // to its transcript. Set whenever a durable fire persists.
1026
+ ...this.sessionId ? { sessionId: this.sessionId } : {}
1027
+ })
1028
+ };
1029
+ })
1030
+ ).finally(() => {
1031
+ this.clearFirePersistPending(guarded);
1032
+ })
947
1033
  );
948
1034
  }
949
1035
  for (const wakeup of this.wakeups.values()) {
@@ -1070,7 +1156,8 @@ function durableTaskToJob(task, recurringMaxAgeMs, existing) {
1070
1156
  expiresAt: task.recurring ? task.createdAt + recurringMaxAgeMs : Infinity,
1071
1157
  lastFiredAt: task.lastFiredAt ?? void 0,
1072
1158
  jitterMs,
1073
- durable: true
1159
+ durable: true,
1160
+ ...task.sessionId ? { boundSessionId: task.sessionId } : {}
1074
1161
  };
1075
1162
  }
1076
1163
  __name(durableTaskToJob, "durableTaskToJob");
@@ -1081,7 +1168,8 @@ function jobToDurableTask(job) {
1081
1168
  prompt: job.prompt,
1082
1169
  recurring: job.recurring,
1083
1170
  createdAt: job.createdAt,
1084
- lastFiredAt: job.lastFiredAt ?? null
1171
+ lastFiredAt: job.lastFiredAt ?? null,
1172
+ ...job.boundSessionId ? { sessionId: job.boundSessionId } : {}
1085
1173
  };
1086
1174
  }
1087
1175
  __name(jobToDurableTask, "jobToDurableTask");
@@ -1095,13 +1183,31 @@ function computeNextFireMs(cronExpr, afterMs, jitterMs) {
1095
1183
  }
1096
1184
  }
1097
1185
  __name(computeNextFireMs, "computeNextFireMs");
1186
+ var nextDurableFireCache = /* @__PURE__ */ new Map();
1187
+ var NEXT_DURABLE_FIRE_CACHE_MAX = 512;
1188
+ function nextDurableFireMs(task) {
1189
+ const anchor = task.recurring ? task.lastFiredAt ?? task.createdAt : task.createdAt;
1190
+ const key = `${task.id}\0${task.cron}\0${task.recurring ? 1 : 0}\0${anchor}`;
1191
+ const cached = nextDurableFireCache.get(key);
1192
+ if (cached !== void 0) return cached;
1193
+ const jitter = computeJitter(task.id, task.cron, task.recurring);
1194
+ const result = computeNextFireMs(task.cron, anchor, jitter);
1195
+ if (nextDurableFireCache.size >= NEXT_DURABLE_FIRE_CACHE_MAX) {
1196
+ nextDurableFireCache.clear();
1197
+ }
1198
+ nextDurableFireCache.set(key, result);
1199
+ return result;
1200
+ }
1201
+ __name(nextDurableFireMs, "nextDurableFireMs");
1098
1202
 
1099
1203
  export {
1204
+ MAX_JOBS,
1100
1205
  DEFAULT_RECURRING_MAX_AGE_DAYS,
1101
1206
  normalizeRecurringMaxAge,
1102
1207
  WAKEUP_MIN_SECONDS,
1103
1208
  WAKEUP_MAX_SECONDS,
1104
1209
  clampWakeupSeconds,
1105
1210
  CronScheduler,
1106
- buildMissedCronNotification
1211
+ buildMissedCronNotification,
1212
+ nextDurableFireMs
1107
1213
  };
@@ -7,9 +7,6 @@ import {
7
7
  __name
8
8
  } from "./chunk-J2S4EL5Y.js";
9
9
 
10
- // packages/cli/src/utils/version.ts
11
- init_esbuild_shims();
12
-
13
10
  // packages/cli/src/utils/package.ts
14
11
  init_esbuild_shims();
15
12
  import { fileURLToPath } from "node:url";
@@ -31,16 +28,8 @@ async function getPackageJson() {
31
28
  }
32
29
  __name(getPackageJson, "getPackageJson");
33
30
 
34
- // packages/cli/src/utils/version.ts
35
- async function getCliVersion() {
36
- const pkgJson = await getPackageJson();
37
- return "0.19.6-nightly.20260706.47f62a466";
38
- }
39
- __name(getCliVersion, "getCliVersion");
40
-
41
31
  export {
42
- getPackageJson,
43
- getCliVersion
32
+ getPackageJson
44
33
  };
45
34
  /**
46
35
  * @license
@@ -1,9 +1,11 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- TextTokenizer,
5
4
  isSupportedImageMimeType
6
- } from "./chunk-6QXGBCAH.js";
5
+ } from "./chunk-HW4N45EE.js";
6
+ import {
7
+ TextTokenizer
8
+ } from "./chunk-CCGOFQV3.js";
7
9
  import {
8
10
  createDebugLogger
9
11
  } from "./chunk-22MNNNXE.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  escapeAnsiCtrlCodes
5
- } from "./chunk-RMIXI7TN.js";
5
+ } from "./chunk-7VCI24VZ.js";
6
6
  import {
7
7
  wrapper_default
8
8
  } from "./chunk-H6BD2ELD.js";
@@ -1,14 +1,14 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- handleAtCommand
5
- } from "./chunk-QR2KK6CG.js";
6
3
  import {
7
4
  JsonOutputAdapter
8
- } from "./chunk-HSO66R46.js";
5
+ } from "./chunk-DB7CZERZ.js";
9
6
  import {
10
7
  StreamJsonOutputAdapter
11
- } from "./chunk-IKCFWN3Y.js";
8
+ } from "./chunk-2MDHTI6A.js";
9
+ import {
10
+ handleAtCommand
11
+ } from "./chunk-LLTFLVFK.js";
12
12
  import {
13
13
  buildInitialSystemReminders,
14
14
  buildSystemMessage,
@@ -20,10 +20,10 @@ import {
20
20
  insertAfterFunctionResponses,
21
21
  isSlashCommand,
22
22
  normalizePartList
23
- } from "./chunk-OGC64RKC.js";
23
+ } from "./chunk-IFDJAMJW.js";
24
24
  import {
25
25
  RunBudgetEnforcer
26
- } from "./chunk-J7JIBDUN.js";
26
+ } from "./chunk-ZOSL7K3L.js";
27
27
  import {
28
28
  AlreadyReportedError,
29
29
  handleBudgetExceededError,
@@ -31,10 +31,10 @@ import {
31
31
  handleError,
32
32
  handleMaxTurnsExceededError,
33
33
  handleToolError
34
- } from "./chunk-HALA655G.js";
34
+ } from "./chunk-2X3ZVAAT.js";
35
35
  import {
36
36
  isInlineModelOverrideAllowed
37
- } from "./chunk-RG6ZAMMW.js";
37
+ } from "./chunk-QM4FKX7H.js";
38
38
  import {
39
39
  ORPHAN_TOOL_USE_REPAIR_REASON,
40
40
  buildSyntheticToolResponseParts,
@@ -49,12 +49,12 @@ import {
49
49
  parseAndFormatApiError,
50
50
  promptIdContext,
51
51
  restoreWorktreeContext
52
- } from "./chunk-4VVDPKQ6.js";
52
+ } from "./chunk-ZWFS7YCB.js";
53
53
  import {
54
54
  isTelemetrySdkInitialized,
55
55
  shutdownTelemetry,
56
56
  uiTelemetryService
57
- } from "./chunk-FCCBH56M.js";
57
+ } from "./chunk-N33JAGJ7.js";
58
58
  import {
59
59
  ToolNames
60
60
  } from "./chunk-X3YGAX7V.js";
@@ -60,7 +60,7 @@ async function runExitCleanup(options = {}) {
60
60
  }
61
61
  __name(runExitCleanup, "runExitCleanup");
62
62
  async function cleanupCheckpoints() {
63
- const { Storage } = await import("./src-OSBARWA7.js");
63
+ const { Storage } = await import("./src-3SNF3G3V.js");
64
64
  const storage = new Storage(process.cwd());
65
65
  const tempDir = storage.getProjectTempDir();
66
66
  const checkpointsDir = join(tempDir, "checkpoints");
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-4VVDPKQ6.js";
5
+ } from "./chunk-ZWFS7YCB.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  SkillError
5
- } from "./chunk-4VVDPKQ6.js";
5
+ } from "./chunk-ZWFS7YCB.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  getEffectiveSupportedModes
5
- } from "./chunk-NOAYCIDS.js";
5
+ } from "./chunk-GPLKAQUX.js";
6
6
  import {
7
7
  require_jsx_runtime
8
- } from "./chunk-654I2NBH.js";
8
+ } from "./chunk-MZWODTEA.js";
9
9
  import {
10
10
  require_react
11
11
  } from "./chunk-KYMBIKIW.js";
12
12
  import {
13
13
  getCachedStringWidth
14
- } from "./chunk-RMIXI7TN.js";
14
+ } from "./chunk-7VCI24VZ.js";
15
15
  import {
16
16
  uiTelemetryService
17
- } from "./chunk-FCCBH56M.js";
17
+ } from "./chunk-N33JAGJ7.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-A4BMJM77.js";
@@ -3,14 +3,14 @@
3
3
  import {
4
4
  getGitVersion,
5
5
  getNpmVersion
6
- } from "./chunk-YMVK4LS2.js";
6
+ } from "./chunk-2D5Q33PT.js";
7
7
  import {
8
8
  STATUS_SCHEMA_VERSION,
9
9
  mapDomainErrorToErrorKind
10
- } from "./chunk-AQOYX6KA.js";
10
+ } from "./chunk-7O6DD2ES.js";
11
11
  import {
12
12
  canUseRipgrep
13
- } from "./chunk-4VVDPKQ6.js";
13
+ } from "./chunk-ZWFS7YCB.js";
14
14
  import {
15
15
  detectRuntime,
16
16
  redactProxyCredentials
@@ -1,10 +1,13 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ eastAsianWidth
5
+ } from "./chunk-LGFAYIKX.js";
3
6
  import {
4
7
  ansiRegex,
5
8
  init_ansi_regex,
6
9
  stripAnsi
7
- } from "./chunk-4VVDPKQ6.js";
10
+ } from "./chunk-ZWFS7YCB.js";
8
11
  import {
9
12
  init_esbuild_shims
10
13
  } from "./chunk-A4BMJM77.js";
@@ -26,109 +29,6 @@ var require_emoji_regex = __commonJS({
26
29
 
27
30
  // packages/cli/node_modules/string-width/index.js
28
31
  init_esbuild_shims();
29
-
30
- // node_modules/get-east-asian-width/index.js
31
- init_esbuild_shims();
32
-
33
- // node_modules/get-east-asian-width/lookup.js
34
- init_esbuild_shims();
35
-
36
- // node_modules/get-east-asian-width/lookup-data.js
37
- init_esbuild_shims();
38
- var ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
39
- var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
40
- var halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
41
- var narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
42
- var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
43
-
44
- // node_modules/get-east-asian-width/utilities.js
45
- init_esbuild_shims();
46
- var isInRange = /* @__PURE__ */ __name((ranges, codePoint) => {
47
- let low = 0;
48
- let high = Math.floor(ranges.length / 2) - 1;
49
- while (low <= high) {
50
- const mid = Math.floor((low + high) / 2);
51
- const i = mid * 2;
52
- if (codePoint < ranges[i]) {
53
- high = mid - 1;
54
- } else if (codePoint > ranges[i + 1]) {
55
- low = mid + 1;
56
- } else {
57
- return true;
58
- }
59
- }
60
- return false;
61
- }, "isInRange");
62
-
63
- // node_modules/get-east-asian-width/lookup.js
64
- var minimumAmbiguousCodePoint = ambiguousRanges[0];
65
- var maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
66
- var minimumFullWidthCodePoint = fullwidthRanges[0];
67
- var maximumFullWidthCodePoint = fullwidthRanges.at(-1);
68
- var minimumHalfWidthCodePoint = halfwidthRanges[0];
69
- var maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
70
- var minimumNarrowCodePoint = narrowRanges[0];
71
- var maximumNarrowCodePoint = narrowRanges.at(-1);
72
- var minimumWideCodePoint = wideRanges[0];
73
- var maximumWideCodePoint = wideRanges.at(-1);
74
- var commonCjkCodePoint = 19968;
75
- var [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
76
- function findWideFastPathRange(ranges) {
77
- let fastPathStart = ranges[0];
78
- let fastPathEnd = ranges[1];
79
- for (let index = 0; index < ranges.length; index += 2) {
80
- const start = ranges[index];
81
- const end = ranges[index + 1];
82
- if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
83
- return [start, end];
84
- }
85
- if (end - start > fastPathEnd - fastPathStart) {
86
- fastPathStart = start;
87
- fastPathEnd = end;
88
- }
89
- }
90
- return [fastPathStart, fastPathEnd];
91
- }
92
- __name(findWideFastPathRange, "findWideFastPathRange");
93
- var isAmbiguous = /* @__PURE__ */ __name((codePoint) => {
94
- if (codePoint < minimumAmbiguousCodePoint || codePoint > maximumAmbiguousCodePoint) {
95
- return false;
96
- }
97
- return isInRange(ambiguousRanges, codePoint);
98
- }, "isAmbiguous");
99
- var isFullWidth = /* @__PURE__ */ __name((codePoint) => {
100
- if (codePoint < minimumFullWidthCodePoint || codePoint > maximumFullWidthCodePoint) {
101
- return false;
102
- }
103
- return isInRange(fullwidthRanges, codePoint);
104
- }, "isFullWidth");
105
- var isWide = /* @__PURE__ */ __name((codePoint) => {
106
- if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
107
- return true;
108
- }
109
- if (codePoint < minimumWideCodePoint || codePoint > maximumWideCodePoint) {
110
- return false;
111
- }
112
- return isInRange(wideRanges, codePoint);
113
- }, "isWide");
114
-
115
- // node_modules/get-east-asian-width/index.js
116
- function validate(codePoint) {
117
- if (!Number.isSafeInteger(codePoint)) {
118
- throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
119
- }
120
- }
121
- __name(validate, "validate");
122
- function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
123
- validate(codePoint);
124
- if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
125
- return 2;
126
- }
127
- return 1;
128
- }
129
- __name(eastAsianWidth, "eastAsianWidth");
130
-
131
- // packages/cli/node_modules/string-width/index.js
132
32
  var import_emoji_regex = __toESM(require_emoji_regex(), 1);
133
33
  var segmenter = new Intl.Segmenter();
134
34
  var defaultIgnorableCodePointRegex = new RegExp("^\\p{Default_Ignorable_Code_Point}$", "u");
@@ -408,9 +308,6 @@ function sanitizeFilenameForDisplay(name) {
408
308
  __name(sanitizeFilenameForDisplay, "sanitizeFilenameForDisplay");
409
309
 
410
310
  export {
411
- isFullWidth,
412
- isWide,
413
- eastAsianWidth,
414
311
  stringWidth,
415
312
  getAsciiArtWidth,
416
313
  toCodePoints,