@qwen-code/qwen-code 0.19.12 → 0.20.0-nightly.20260720.0c271659d

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 (276) hide show
  1. package/bundled/qc-helper/docs/integration-github-action.md +1 -1
  2. package/bundled/qc-helper/docs/qwen-serve.md +42 -5
  3. package/bundled/review/DESIGN.md +2 -2
  4. package/bundled/review/SKILL.md +13 -9
  5. package/chunks/{MaxSizedBox-QOXLJGAF.js → MaxSizedBox-ED3QND6V.js} +30 -27
  6. package/chunks/{StandaloneSessionPicker-FLV6CGYJ.js → StandaloneSessionPicker-NQVAOTKS.js} +50 -45
  7. package/chunks/{acpAgent-OB2CTF3P.js → acpAgent-HOBFF5B6.js} +353 -130
  8. package/chunks/{agent-CKSI7BTR.js → agent-J7EPFLA6.js} +22 -22
  9. package/chunks/{agent-headless-U36LIYTU.js → agent-headless-RRG3JU7Q.js} +22 -22
  10. package/chunks/{anthropicContentGenerator-ZZRGFEES.js → anthropicContentGenerator-HVKLXOOU.js} +6 -5
  11. package/chunks/{artifact-tool-PHO5XEGZ.js → artifact-tool-WBCAMD3O.js} +2 -2
  12. package/chunks/{askUserQuestion-CEPBT47X.js → askUserQuestion-6DZC4UV5.js} +2 -2
  13. package/chunks/{bridge-AIKTINJG.js → bridge-OW5FZ6BF.js} +25 -25
  14. package/chunks/build-SSCNEHZZ.js +62 -0
  15. package/chunks/{channel-worker-group-NEUVTPB2.js → channel-worker-group-53CMOPFT.js} +4 -4
  16. package/chunks/{channel-worker-manager-7CQVOVWV.js → channel-worker-manager-UTXILKC2.js} +4 -4
  17. package/chunks/{channel-worker-supervisor-3BU2KNCZ.js → channel-worker-supervisor-ZGO2W2MD.js} +3 -3
  18. package/chunks/chunk-27AJEU6G.js +442 -0
  19. package/chunks/{chunk-BABX5XRO.js → chunk-2HOVDT7W.js} +1 -1
  20. package/chunks/{chunk-GW7BONBU.js → chunk-2JOLZA6L.js} +5 -5
  21. package/chunks/{chunk-ZSDFNE6Y.js → chunk-2TDSM7I6.js} +3 -3
  22. package/chunks/{chunk-6IITZE7O.js → chunk-2YJLFCYI.js} +7 -7
  23. package/chunks/{chunk-VEFR4XJQ.js → chunk-37MGCVTS.js} +1 -1
  24. package/chunks/{chunk-3B6PSWHE.js → chunk-3ML52IFS.js} +4 -4
  25. package/chunks/{chunk-TKASNYDS.js → chunk-3QR5MOHP.js} +2 -2
  26. package/chunks/{chunk-KRMARA3A.js → chunk-3SNKL6L6.js} +29 -13
  27. package/chunks/{chunk-DJ4VHAFJ.js → chunk-3ZL6YMO2.js} +3 -3
  28. package/chunks/chunk-43T5WDQ7.js +127 -0
  29. package/chunks/{chunk-W6CQPLWM.js → chunk-4ODB7WIB.js} +1 -1
  30. package/chunks/{chunk-CHPQFLW6.js → chunk-4UH63YE5.js} +5 -5
  31. package/chunks/{chunk-2CCDMJM7.js → chunk-53OPIXUE.js} +3 -3
  32. package/chunks/{chunk-HTHUX2T5.js → chunk-5QWWOFGG.js} +0 -1
  33. package/chunks/{chunk-3DJY4IFO.js → chunk-5SCI6E3E.js} +1 -1
  34. package/chunks/{chunk-4CHDYDG3.js → chunk-6EFTQYW7.js} +1 -1
  35. package/chunks/{chunk-OBSLEYCD.js → chunk-6HQW55TM.js} +29 -2
  36. package/chunks/{chunk-N47VAEAJ.js → chunk-6MN6XJTR.js} +2379 -1291
  37. package/chunks/{chunk-UCTCDLDS.js → chunk-6VGRTGOG.js} +1 -1
  38. package/chunks/{chunk-KNGZ5EYL.js → chunk-7JQK6FXK.js} +198 -120
  39. package/chunks/{chunk-2476XGOU.js → chunk-A4TJMY65.js} +1 -1
  40. package/chunks/{chunk-67Q33DQY.js → chunk-AMRWCMX4.js} +4 -4
  41. package/chunks/{chunk-XAAEDML2.js → chunk-AYCDXHZB.js} +1 -1
  42. package/chunks/{chunk-VAJS2E2D.js → chunk-BDBMYST4.js} +1 -1
  43. package/chunks/{chunk-F2RR4HO2.js → chunk-BVLROR2T.js} +1 -1
  44. package/chunks/{chunk-UE5TZ55T.js → chunk-C27BYUX6.js} +29 -2
  45. package/chunks/{chunk-PK7COE5O.js → chunk-CL7IRYTA.js} +1 -1
  46. package/chunks/{chunk-KMJOMWHE.js → chunk-COWNNAWJ.js} +1 -1
  47. package/chunks/{chunk-UOA2IHRI.js → chunk-CPCVCKKF.js} +1 -1
  48. package/chunks/{chunk-4RPARQ5D.js → chunk-D2VIDMVM.js} +2 -2
  49. package/chunks/{chunk-4MPYGENG.js → chunk-DCCW7CRR.js} +6 -6
  50. package/chunks/chunk-DIKIJS6Z.js +114 -0
  51. package/chunks/{chunk-ETN2G32U.js → chunk-DR5AUNJ2.js} +4 -4
  52. package/chunks/{chunk-6ETOSWAO.js → chunk-DSBCU6JY.js} +3 -3
  53. package/chunks/{chunk-LKR7QQ63.js → chunk-EAUYY7SS.js} +3 -3
  54. package/chunks/{chunk-J2MKYJKZ.js → chunk-EIAK6Q2B.js} +2 -2
  55. package/chunks/{chunk-WEPXQKGP.js → chunk-EZVDJFZ7.js} +1 -1
  56. package/chunks/{chunk-WHQNBBWW.js → chunk-FLSVD6BS.js} +2 -2
  57. package/chunks/{chunk-3ESL7JXA.js → chunk-FODJ5Q5K.js} +3 -3
  58. package/chunks/{chunk-4XCVGEEX.js → chunk-FSL5W5TI.js} +3 -3
  59. package/chunks/{chunk-NE6HHLL3.js → chunk-FWT66O5E.js} +2 -2
  60. package/chunks/{chunk-OSSDHJDU.js → chunk-G45X5TRN.js} +1 -1
  61. package/chunks/{chunk-ZGT623SG.js → chunk-G6MDKXDP.js} +12 -12
  62. package/chunks/{chunk-KANTXY7B.js → chunk-GKY2OJ7R.js} +2 -2
  63. package/chunks/chunk-GMGDLUC7.js +37 -0
  64. package/chunks/{chunk-J6NT5YTN.js → chunk-H2XVO6NE.js} +1 -289
  65. package/chunks/{chunk-XSEWNUMZ.js → chunk-I4HZ4GOD.js} +8 -8
  66. package/chunks/{chunk-CPU6I5YV.js → chunk-I6JUVU7J.js} +34 -24
  67. package/chunks/{chunk-UZC5VPOJ.js → chunk-IDGTC5AS.js} +3 -3
  68. package/chunks/{chunk-QIFTJDBY.js → chunk-INL2RSLA.js} +1 -1
  69. package/chunks/{chunk-GSPWDTYY.js → chunk-INQQM52C.js} +18 -16
  70. package/chunks/{chunk-HVGJWOR6.js → chunk-JBCFW3IL.js} +2 -2
  71. package/chunks/{chunk-LPHGXXZX.js → chunk-JD3MKVKL.js} +1 -1
  72. package/chunks/{chunk-GCY7QTCE.js → chunk-JDPCOUZ3.js} +1602 -398
  73. package/chunks/{chunk-NUHSLBJZ.js → chunk-JNWZQ27S.js} +15 -9
  74. package/chunks/{chunk-KGWA7XYL.js → chunk-JRJ2LV6P.js} +6 -226
  75. package/chunks/{chunk-QSG4ZFG4.js → chunk-KTUQMDEP.js} +1 -1
  76. package/chunks/{chunk-RKUMFUFM.js → chunk-LTQ5C5AB.js} +4 -4
  77. package/chunks/{chunk-V4PCIS25.js → chunk-MAQQGNQ5.js} +44 -1
  78. package/chunks/{chunk-EISVEV45.js → chunk-NBMIC7DR.js} +2 -2
  79. package/chunks/{chunk-GEHSF7MS.js → chunk-NEEB7UEN.js} +2545 -1974
  80. package/chunks/{chunk-BKNPMEN6.js → chunk-NIJEXGV6.js} +93 -17
  81. package/chunks/{chunk-PR5XQ73G.js → chunk-NQVA6O7F.js} +2 -2
  82. package/chunks/{chunk-FUSMC3SZ.js → chunk-NT324EJ6.js} +13 -8
  83. package/chunks/{chunk-5N7M4XYN.js → chunk-O2SPEQFA.js} +5 -5
  84. package/chunks/{chunk-OEHCAWUA.js → chunk-OLMETXLX.js} +2 -2
  85. package/chunks/{chunk-JCJPZMJV.js → chunk-OOCI5VVU.js} +1 -1
  86. package/chunks/{chunk-XSPFQQRE.js → chunk-OONJNQ42.js} +3 -3
  87. package/chunks/{chunk-ANRANWVE.js → chunk-OP4MOGXF.js} +1 -1
  88. package/chunks/{chunk-SGPFJMRP.js → chunk-PBATSWUQ.js} +1 -1
  89. package/chunks/chunk-QKYTTBYW.js +624 -0
  90. package/chunks/{chunk-W4UN42YP.js → chunk-QOSKUG5P.js} +77 -20
  91. package/chunks/{chunk-76BFY7AF.js → chunk-QTERJVPZ.js} +1 -6
  92. package/chunks/{chunk-WIYV7CSF.js → chunk-RB7NXUP5.js} +3 -3
  93. package/chunks/{chunk-HCCR43AY.js → chunk-RFIAR4YL.js} +1 -1
  94. package/chunks/{chunk-GMUPIMHF.js → chunk-RS5JPH6Y.js} +3 -3
  95. package/chunks/chunk-RS7MT2QG.js +305 -0
  96. package/chunks/{chunk-GXFYV7MP.js → chunk-SG2PEESS.js} +1106 -592
  97. package/chunks/{chunk-PUKUUASO.js → chunk-SLLG5XXE.js} +1 -1
  98. package/chunks/{chunk-GLH2NTPB.js → chunk-SQMTULHJ.js} +1 -1
  99. package/chunks/{chunk-NPMVLWYL.js → chunk-STFP7PJR.js} +6 -6
  100. package/chunks/chunk-SV5PQVQE.js +71 -0
  101. package/chunks/{chunk-HZ4M2UQD.js → chunk-TFNZCC4B.js} +1 -1
  102. package/chunks/{chunk-5QSVANRT.js → chunk-THNJYTA6.js} +2 -2
  103. package/chunks/{chunk-MRE77ST5.js → chunk-TN2BYMNH.js} +69 -2216
  104. package/chunks/{chunk-64GC5EMF.js → chunk-TQBA6DVX.js} +1 -1
  105. package/chunks/{chunk-VLHQMOZK.js → chunk-U24E4R5U.js} +3 -3
  106. package/chunks/{chunk-4CA4WUMS.js → chunk-UEY4AYUL.js} +2 -2
  107. package/chunks/{chunk-42VIHAYT.js → chunk-UGRL5B5F.js} +1 -1
  108. package/chunks/chunk-V7RNNPGC.js +44 -0
  109. package/chunks/{chunk-R3EDIMYZ.js → chunk-VGFFYNBD.js} +1 -1
  110. package/chunks/chunk-VIOFKPPN.js +125 -0
  111. package/chunks/{chunk-BEZPRKD3.js → chunk-VLDBVLC4.js} +156 -2
  112. package/chunks/{chunk-HD6EGS5K.js → chunk-VWLLDHAY.js} +6 -6
  113. package/chunks/chunk-WCDH2CRI.js +1187 -0
  114. package/chunks/{chunk-7SX6WZNO.js → chunk-XVVH63JG.js} +3 -3
  115. package/chunks/{chunk-I7RRHHYG.js → chunk-Y2ENGUD6.js} +1 -1
  116. package/chunks/{chunk-NALRQ3SG.js → chunk-Y5534U4G.js} +332 -116
  117. package/chunks/{chunk-4SJJT466.js → chunk-YDZ6J2BY.js} +72 -159
  118. package/chunks/{chunk-APOFULHK.js → chunk-YNBP3YSU.js} +7 -6
  119. package/chunks/{chunk-EFAXBOQO.js → chunk-YWEW33JY.js} +7 -7
  120. package/chunks/{chunk-335ECZTA.js → chunk-ZEOZL37W.js} +1 -1
  121. package/chunks/{chunk-DUR7BZYK.js → chunk-ZGJ4LDD2.js} +53 -28
  122. package/chunks/{computer-use-4PUGCUQK.js → computer-use-ET5476VX.js} +22 -22
  123. package/chunks/{config-utils-6PJUXHLI.js → config-utils-AHQ6YZ66.js} +3 -3
  124. package/chunks/{contextCommand-C57KTWFV.js → contextCommand-QIULFDBF.js} +25 -26
  125. package/chunks/{create-sub-session-5Q42XR6I.js → create-sub-session-BVL2ZHTM.js} +22 -22
  126. package/chunks/{create-sub-session-DIJOV6HV.js → create-sub-session-P26FE5GG.js} +2 -2
  127. package/chunks/{cron-create-X462ERYA.js → cron-create-JWFHBDRQ.js} +4 -4
  128. package/chunks/{cron-delete-SL5UJUM3.js → cron-delete-GDX4E26G.js} +4 -4
  129. package/chunks/{cron-list-3MD6SVXI.js → cron-list-USMAIWPT.js} +4 -4
  130. package/chunks/{daemon-ZW6LHOXT.js → daemon-EE5T3KOW.js} +169 -84
  131. package/chunks/{daemon-status-provider-YPV3UXHT.js → daemon-status-provider-L5UW7TGV.js} +29 -29
  132. package/chunks/{dist-3DQNQJ6H.js → dist-2BHAYBKP.js} +1 -1
  133. package/chunks/{dist-J2H4KTLB.js → dist-2MIU4UUH.js} +1 -1
  134. package/chunks/{dist-IEQSDXS7.js → dist-53PZYC5B.js} +2 -2
  135. package/chunks/{dist-NUXRQHC5.js → dist-AU7NQQRP.js} +1 -1
  136. package/chunks/{dist-XLE6ODMB.js → dist-FUTEXY6A.js} +1 -1
  137. package/chunks/{dist-IGZMVS5R.js → dist-WGTQO7F2.js} +1 -1
  138. package/chunks/{earlyInputCapture-5VDWSYAM.js → earlyInputCapture-ZLAL5GTE.js} +23 -23
  139. package/chunks/{edit-GORZTX2U.js → edit-4ZOPT6OC.js} +23 -23
  140. package/chunks/{enter-worktree-LJB2AW4L.js → enter-worktree-DFP5CZYS.js} +22 -22
  141. package/chunks/{enterPlanMode-LIIPP37T.js → enterPlanMode-7VEJ7A2A.js} +22 -22
  142. package/chunks/{environment-HQ2UHJ35.js → environment-KHS35XJY.js} +24 -24
  143. package/chunks/{errors-6JD5VMVQ.js → errors-574WBU5R.js} +24 -24
  144. package/chunks/{exit-worktree-IEP2WHOV.js → exit-worktree-5Q7V6D4C.js} +22 -22
  145. package/chunks/{exitPlanMode-U5Z6XBLO.js → exitPlanMode-SX2F6PDJ.js} +22 -22
  146. package/chunks/{fast-path-HFKNMP23.js → fast-path-G7BLOZVF.js} +2 -2
  147. package/chunks/{gemini-C2SCJH3N.js → gemini-M4JWSTGU.js} +70 -68
  148. package/chunks/{geminiContentGenerator-ADZTXEKV.js → geminiContentGenerator-MKXLUFUH.js} +4 -4
  149. package/chunks/{glob-GOAPGD6G.js → glob-FPKZY5W6.js} +22 -22
  150. package/chunks/{grep-HZLSTX7D.js → grep-RS22OMZG.js} +22 -22
  151. package/chunks/{handleAutoUpdate-UF74WGFE.js → handleAutoUpdate-RFNQ36JC.js} +27 -28
  152. package/chunks/{i18n-FMXIYUOC.js → i18n-MAEWSKYF.js} +23 -23
  153. package/chunks/{initializer-ERDBM3DU.js → initializer-T2BFZJBP.js} +28 -28
  154. package/chunks/{installationInfo-LROMXYLX.js → installationInfo-3UETF773.js} +25 -23
  155. package/chunks/{keychain-token-storage-K23CFKGN.js → keychain-token-storage-DWRJMNH3.js} +2 -2
  156. package/chunks/{list-6JPJROU5.js → list-FWZUKWD2.js} +30 -30
  157. package/chunks/{loadedSettingsAdapter-QCWYUBBF.js → loadedSettingsAdapter-3DUNHAPX.js} +27 -27
  158. package/chunks/{loop-wakeup-6H7OENTB.js → loop-wakeup-5GLTUBHA.js} +5 -5
  159. package/chunks/{ls-APTSOOS5.js → ls-FHBY3Y7I.js} +4 -4
  160. package/chunks/{lsp-HPACPJAN.js → lsp-B6VMEW6Y.js} +2 -2
  161. package/chunks/{mcp-3P3KWYWO.js → mcp-POXS7QWD.js} +27 -27
  162. package/chunks/{monitor-LMYKCF6R.js → monitor-2ZZC2NKH.js} +22 -22
  163. package/chunks/nonInteractiveCli-WSJVCB2W.js +126 -0
  164. package/chunks/{notebook-edit-IBEOVZ6A.js → notebook-edit-BMQLME3Q.js} +23 -23
  165. package/chunks/{openaiContentGenerator-42PZKET5.js → openaiContentGenerator-GOREG72R.js} +11 -11
  166. package/chunks/{pidfile-VTBDIGOH.js → pidfile-MVZDE5TC.js} +23 -23
  167. package/chunks/{processUtils-L7ZKOGDG.js → processUtils-RH5KNLDH.js} +2 -2
  168. package/chunks/{qwenContentGenerator-VR2CNFGI.js → qwenContentGenerator-R55BCLRI.js} +24 -24
  169. package/chunks/{qwenOAuth2-6LS2T3Q6.js → qwenOAuth2-QZBI2SOZ.js} +11 -11
  170. package/chunks/react-SG7JAQSZ.js +8 -0
  171. package/chunks/{read-file-VSKOE22I.js → read-file-CPS2CYYG.js} +8 -8
  172. package/chunks/{read-mcp-resource-C6NT52T6.js → read-mcp-resource-AKCL7I43.js} +2 -2
  173. package/chunks/{record-artifact-ENCU7QCL.js → record-artifact-PEUB7727.js} +2 -2
  174. package/chunks/resumeHistoryUtils-YD6DSYHU.js +78 -0
  175. package/chunks/{ripGrep-5V5FLW2A.js → ripGrep-UKGJ7RHZ.js} +22 -22
  176. package/chunks/{run-qwen-serve-LSOPP4R2.js → run-qwen-serve-GFKSKLF6.js} +1442 -148
  177. package/chunks/{runtime-LT7R4CS5.js → runtime-4KGNL3TP.js} +31 -31
  178. package/chunks/{scheduler-YOWQ7KZP.js → scheduler-GJ3CELWI.js} +22 -22
  179. package/chunks/{send-message-5GZ4FX2V.js → send-message-3RHE7HSM.js} +3 -3
  180. package/chunks/{serve-VWLBXKGK.js → serve-UU6Z4C7W.js} +27 -27
  181. package/chunks/{server-3RW3FYOH.js → server-RTJUMN24.js} +393 -256
  182. package/chunks/{session-ZONXFOBQ.js → session-EYD3CEB5.js} +79 -163
  183. package/chunks/{settings-JC3VC53L.js → settings-H5O22TGQ.js} +26 -26
  184. package/chunks/{shell-2NGEMAVM.js → shell-KVNHDHMT.js} +22 -22
  185. package/chunks/{skill-3U2T6H3E.js → skill-32525KCE.js} +10 -10
  186. package/chunks/{spawnChannel-QEAUPARQ.js → spawnChannel-G7DUQKHL.js} +24 -24
  187. package/chunks/{src-75ZPXO7B.js → src-DUFUUEHE.js} +52 -22
  188. package/chunks/{standalone-update-UUJWJWYY.js → standalone-update-UC6CWBLH.js} +24 -24
  189. package/chunks/{startInteractiveUI-V7XISPQ6.js → startInteractiveUI-A5YYAWLF.js} +5451 -2045
  190. package/chunks/{syntheticOutput-ULOVVLY4.js → syntheticOutput-FG5PQKIR.js} +3 -3
  191. package/chunks/{task-create-DUE2PMNI.js → task-create-HX32YXO7.js} +7 -7
  192. package/chunks/{task-list-WVPNX7BZ.js → task-list-QWSY4ZIU.js} +5 -5
  193. package/chunks/{task-stop-CPEQWOT6.js → task-stop-GWC6UWAL.js} +2 -2
  194. package/chunks/{task-update-HY2LNFFB.js → task-update-NCTAB73Q.js} +7 -7
  195. package/chunks/{team-create-R6AXDYPG.js → team-create-LS2Q32Y4.js} +22 -22
  196. package/chunks/{team-delete-JJV6IUOA.js → team-delete-KK37HTOG.js} +5 -5
  197. package/chunks/{team-plan-approval-O2ZPPT64.js → team-plan-approval-DWCZABX6.js} +22 -22
  198. package/chunks/{theme-manager-YIX2IC2D.js → theme-manager-E22CNBIL.js} +23 -23
  199. package/chunks/{todoWrite-JHHIDOIV.js → todoWrite-ERCAMLFS.js} +4 -4
  200. package/chunks/{tool-search-5IE2VO7X.js → tool-search-MHXUDFD2.js} +9 -9
  201. package/chunks/{total-session-admission-K6APQYEF.js → total-session-admission-KOPTGDJZ.js} +25 -25
  202. package/chunks/{trustedFolders-GPSSPVBF.js → trustedFolders-ANQXYAQT.js} +23 -23
  203. package/chunks/{update-relaunch-4BVAPX6Y.js → update-relaunch-HFGRB7PE.js} +9 -9
  204. package/chunks/{updateCheck-AHTHWLAM.js → updateCheck-EKIPND4B.js} +33 -26
  205. package/chunks/useAutoAcceptIndicator-EE22V2F5.js +80 -0
  206. package/chunks/{validateNonInterActiveAuth-UKAPCWDM.js → validateNonInterActiveAuth-RUICXVPH.js} +61 -63
  207. package/chunks/{version-EXGWKKQE.js → version-QLT755OV.js} +1 -1
  208. package/chunks/{web-fetch-ZDNE6FF2.js → web-fetch-DINW4Z65.js} +10 -10
  209. package/chunks/{workflow-G7U6OQWS.js → workflow-GPMXRWKK.js} +23 -23
  210. package/chunks/{workspace-providers-status-W6CEA6YM.js → workspace-providers-status-XCQKBVSX.js} +30 -30
  211. package/chunks/{workspace-registration-store-OGBMWCLC.js → workspace-registration-store-4I4KL7TN.js} +1 -1
  212. package/chunks/{workspace-registry-ZUWQM44P.js → workspace-registry-N4J57SFQ.js} +25 -25
  213. package/chunks/{workspace-service-UXX5P7GU.js → workspace-service-JJNJWVH3.js} +32 -32
  214. package/chunks/{workspace-skills-status-635B5R7N.js → workspace-skills-status-CEHLAQ2Y.js} +28 -28
  215. package/chunks/{write-file-DR3HN7IH.js → write-file-XRGEJRCC.js} +23 -23
  216. package/cli.js +11 -11
  217. package/package.json +3 -3
  218. package/web-shell/assets/{arc-_dVIKMdB.js → arc-DwJhljn9.js} +1 -1
  219. package/web-shell/assets/{architectureDiagram-3BPJPVTR-MuN3nKpL.js → architectureDiagram-3BPJPVTR-qdxSRav-.js} +1 -1
  220. package/web-shell/assets/{blockDiagram-GPEHLZMM-BtmvJjzx.js → blockDiagram-GPEHLZMM-2-dKM5aM.js} +1 -1
  221. package/web-shell/assets/{c4Diagram-AAUBKEIU-Dvi58_BU.js → c4Diagram-AAUBKEIU-Dt_Nu2HD.js} +1 -1
  222. package/web-shell/assets/channel-C6uyh95L.js +1 -0
  223. package/web-shell/assets/{chunk-2J33WTMH-YqxOVhS1.js → chunk-2J33WTMH-CBCeeNfD.js} +1 -1
  224. package/web-shell/assets/{chunk-4BX2VUAB-DoBgbC9z.js → chunk-4BX2VUAB-DPAzjqNs.js} +1 -1
  225. package/web-shell/assets/{chunk-55IACEB6-3NEQrBAr.js → chunk-55IACEB6-yrqyxvIK.js} +1 -1
  226. package/web-shell/assets/{chunk-727SXJPM-DrCZQxp0.js → chunk-727SXJPM-DguD_BBT.js} +1 -1
  227. package/web-shell/assets/{chunk-AQP2D5EJ-m_g3zjgv.js → chunk-AQP2D5EJ-KRUOG9v0.js} +1 -1
  228. package/web-shell/assets/{chunk-FMBD7UC4-D1_crABJ.js → chunk-FMBD7UC4-C0lilT2U.js} +1 -1
  229. package/web-shell/assets/{chunk-ND2GUHAM-BdhgVtBx.js → chunk-ND2GUHAM-DG9epIWK.js} +1 -1
  230. package/web-shell/assets/{chunk-QZHKN3VN-BlmThhm-.js → chunk-QZHKN3VN-PdJDkYHw.js} +1 -1
  231. package/web-shell/assets/classDiagram-4FO5ZUOK-Cv8Ulf-B.js +1 -0
  232. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cv8Ulf-B.js +1 -0
  233. package/web-shell/assets/{cose-bilkent-S5V4N54A-Cbjm_00Z.js → cose-bilkent-S5V4N54A-BAOPPuJm.js} +1 -1
  234. package/web-shell/assets/{dagre-BM42HDAG-C39QNVgC.js → dagre-BM42HDAG-CDHJv82_.js} +1 -1
  235. package/web-shell/assets/{diagram-2AECGRRQ-DNXSAixC.js → diagram-2AECGRRQ-C_hkG5fN.js} +1 -1
  236. package/web-shell/assets/{diagram-5GNKFQAL-BCbGUPEA.js → diagram-5GNKFQAL-e9zo_eKt.js} +1 -1
  237. package/web-shell/assets/{diagram-KO2AKTUF-1eujKSDC.js → diagram-KO2AKTUF-BFN41SCb.js} +1 -1
  238. package/web-shell/assets/{diagram-LMA3HP47-DUMKXgql.js → diagram-LMA3HP47-DG72N0W0.js} +1 -1
  239. package/web-shell/assets/{diagram-OG6HWLK6-BFktU3_u.js → diagram-OG6HWLK6-Dkmp-tdv.js} +1 -1
  240. package/web-shell/assets/{erDiagram-TEJ5UH35-BvJC7DLk.js → erDiagram-TEJ5UH35-CyS0GnQV.js} +1 -1
  241. package/web-shell/assets/{flowDiagram-I6XJVG4X-Cgu3PlOt.js → flowDiagram-I6XJVG4X-Cg1SRmzV.js} +1 -1
  242. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DLNXN5Xh.js → ganttDiagram-6RSMTGT7-CoNkSLs3.js} +1 -1
  243. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BQFRDv6R.js → gitGraphDiagram-PVQCEYII-DEA6GWPa.js} +1 -1
  244. package/web-shell/assets/index-B49xd8_A.css +5 -0
  245. package/web-shell/assets/{index-CdC3pjP3.js → index-CMaZgs6B.js} +1 -1
  246. package/web-shell/assets/index-D-cDAZgO.js +1192 -0
  247. package/web-shell/assets/{infoDiagram-5YYISTIA-DT2mOSvp.js → infoDiagram-5YYISTIA-BZshyoGT.js} +1 -1
  248. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-9fy_K4bd.js → ishikawaDiagram-YF4QCWOH-CT2ssZqC.js} +1 -1
  249. package/web-shell/assets/{journeyDiagram-JHISSGLW-CoGSEuhE.js → journeyDiagram-JHISSGLW-BtMQ0rDG.js} +1 -1
  250. package/web-shell/assets/{kanban-definition-UN3LZRKU-BP9hHYIj.js → kanban-definition-UN3LZRKU-CoDbK5Db.js} +1 -1
  251. package/web-shell/assets/{linear-uIroDsmp.js → linear-CwhZ6u7u.js} +1 -1
  252. package/web-shell/assets/{mermaid.core-BUwoStsA.js → mermaid.core-C9nn0nrr.js} +5 -5
  253. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DZB-FWim.js → mindmap-definition-RKZ34NQL-BXUbjTeL.js} +1 -1
  254. package/web-shell/assets/{pieDiagram-4H26LBE5-YPptloKl.js → pieDiagram-4H26LBE5-JddiYlWQ.js} +1 -1
  255. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-dgk3DSzm.js → quadrantDiagram-W4KKPZXB-DK5HKzXO.js} +1 -1
  256. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BH2En2i9.js → requirementDiagram-4Y6WPE33-Y-uipa_6.js} +1 -1
  257. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BB98feeI.js → sankeyDiagram-5OEKKPKP-BbWeqo8H.js} +1 -1
  258. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CunAIGh8.js → sequenceDiagram-3UESZ5HK-tX2gOoo5.js} +1 -1
  259. package/web-shell/assets/{stateDiagram-AJRCARHV-DTJs_-I2.js → stateDiagram-AJRCARHV-CACN457G.js} +1 -1
  260. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DaUeO2zt.js +1 -0
  261. package/web-shell/assets/{timeline-definition-PNZ67QCA-Cd4AN7O0.js → timeline-definition-PNZ67QCA-DnHWKSOq.js} +1 -1
  262. package/web-shell/assets/{vennDiagram-CIIHVFJN-xIG-rUU9.js → vennDiagram-CIIHVFJN-BO8Yl2FG.js} +1 -1
  263. package/web-shell/assets/{wardley-L42UT6IY-D1UyjIcG.js → wardley-L42UT6IY-1NMqqrBi.js} +1 -1
  264. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BVM0Mb99.js → wardleyDiagram-YWT4CUSO-C3eWgIvD.js} +1 -1
  265. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BX31JDSz.js → xychartDiagram-2RQKCTM6-D0h8FgFX.js} +1 -1
  266. package/web-shell/index.html +2 -2
  267. package/chunks/chunk-EDFD7VOX.js +0 -368
  268. package/chunks/chunk-GFYFLDEG.js +0 -709
  269. package/chunks/chunk-LUJQUNKY.js +0 -3288
  270. package/chunks/nonInteractiveCli-YURFHZV5.js +0 -129
  271. package/web-shell/assets/channel-Bi5TehaT.js +0 -1
  272. package/web-shell/assets/classDiagram-4FO5ZUOK-BKhhRdd1.js +0 -1
  273. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BKhhRdd1.js +0 -1
  274. package/web-shell/assets/index-C_ouplMQ.js +0 -1187
  275. package/web-shell/assets/index-XGDFJE-X.css +0 -5
  276. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DrfFMYta.js +0 -1
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-QR6U5QPP.js";
23
23
  import {
24
24
  defaultSpawnChannelFactory
25
- } from "./chunk-PUKUUASO.js";
25
+ } from "./chunk-SLLG5XXE.js";
26
26
  import {
27
27
  BranchWhilePromptActiveError,
28
28
  CancelSentinelCollisionError,
@@ -52,7 +52,7 @@ import {
52
52
  STATUS_SCHEMA_VERSION,
53
53
  createIdleWorkspaceExtensionsStatus,
54
54
  createIdleWorkspaceHooksStatus
55
- } from "./chunk-64GC5EMF.js";
55
+ } from "./chunk-TQBA6DVX.js";
56
56
  import {
57
57
  canonicalizeWorkspace
58
58
  } from "./chunk-W7FJ3N32.js";
@@ -72,11 +72,11 @@ import {
72
72
  metadataBudgetBytes,
73
73
  normalizeSnapshotPayload,
74
74
  stableSessionArtifactId
75
- } from "./chunk-GCY7QTCE.js";
75
+ } from "./chunk-JDPCOUZ3.js";
76
76
  import {
77
77
  DAEMON_TRACEPARENT_META_KEY,
78
78
  DAEMON_TRACESTATE_META_KEY
79
- } from "./chunk-CPU6I5YV.js";
79
+ } from "./chunk-I6JUVU7J.js";
80
80
  import {
81
81
  init_esbuild_shims
82
82
  } from "./chunk-5O2XNYP6.js";
@@ -137,7 +137,10 @@ var TurnBoundaryCompactionEngine = class {
137
137
  truncatedTurns = 0;
138
138
  slots = [];
139
139
  toolSlotIndex = /* @__PURE__ */ new Map();
140
- textSlotIndex = /* @__PURE__ */ new Map();
140
+ textSlotIndex = {
141
+ text: /* @__PURE__ */ new Map(),
142
+ thought: /* @__PURE__ */ new Map()
143
+ };
141
144
  constructor(opts = {}) {
142
145
  this.maxReplayBytes = normalizeCompactedReplayMaxBytes(opts.maxReplayBytes);
143
146
  this.onReplayWindowEviction = opts.onReplayWindowEviction;
@@ -183,7 +186,7 @@ var TurnBoundaryCompactionEngine = class {
183
186
  this.liveJournal = [];
184
187
  this.slots = [];
185
188
  this.toolSlotIndex.clear();
186
- this.textSlotIndex.clear();
189
+ this.clearTextSlotIndex();
187
190
  }
188
191
  seedReplayEvents(events) {
189
192
  if (this.closed) return;
@@ -214,7 +217,7 @@ var TurnBoundaryCompactionEngine = class {
214
217
  this.liveJournal = [];
215
218
  this.slots = [];
216
219
  this.toolSlotIndex.clear();
217
- this.textSlotIndex.clear();
220
+ this.clearTextSlotIndex();
218
221
  }
219
222
  close() {
220
223
  if (this.closed) return;
@@ -223,7 +226,7 @@ var TurnBoundaryCompactionEngine = class {
223
226
  this.liveJournal = [];
224
227
  this.slots = [];
225
228
  this.toolSlotIndex.clear();
226
- this.textSlotIndex.clear();
229
+ this.clearTextSlotIndex();
227
230
  }
228
231
  classifySessionUpdate(event) {
229
232
  const data = event.data;
@@ -268,8 +271,8 @@ var TurnBoundaryCompactionEngine = class {
268
271
  data?.update?._meta
269
272
  );
270
273
  if (toolParent) {
271
- this.textSlotIndex.delete(`text::${toolParent}`);
272
- this.textSlotIndex.delete(`thought::${toolParent}`);
274
+ this.textSlotIndex.text.delete(toolParent);
275
+ this.textSlotIndex.thought.delete(toolParent);
273
276
  }
274
277
  }
275
278
  break;
@@ -295,9 +298,12 @@ var TurnBoundaryCompactionEngine = class {
295
298
  const text = data?.update?.content?.text ?? "";
296
299
  const meta = data?.update?._meta;
297
300
  const parentToolCallId = extractParentToolCallIdFromMeta(meta);
301
+ const sourceRecordIds = extractSourceRecordIdsFromMeta(meta);
298
302
  if (parentToolCallId != null) {
299
- const slotKey = `${kind}::${parentToolCallId}`;
300
- const existingIdx = this.textSlotIndex.get(slotKey);
303
+ const entries = this.textSlotIndex[kind].get(parentToolCallId) ?? [];
304
+ const existingIdx = entries.find(
305
+ (entry) => stringArraysEqual(entry.sourceRecordIds, sourceRecordIds)
306
+ )?.index;
301
307
  if (existingIdx !== void 0) {
302
308
  const slot = this.slots[existingIdx];
303
309
  slot.chunks.push(text);
@@ -305,11 +311,13 @@ var TurnBoundaryCompactionEngine = class {
305
311
  slot.lastMeta = meta ?? slot.lastMeta;
306
312
  slot.lastEnvelopeMeta = event._meta ?? slot.lastEnvelopeMeta;
307
313
  } else {
308
- this.textSlotIndex.set(slotKey, this.slots.length);
314
+ entries.push({ sourceRecordIds, index: this.slots.length });
315
+ this.textSlotIndex[kind].set(parentToolCallId, entries);
309
316
  this.slots.push({
310
317
  kind,
311
318
  parentToolCallId,
312
319
  chunks: [text],
320
+ sourceRecordIds,
313
321
  lastEventId: event.id ?? 0,
314
322
  lastMeta: meta,
315
323
  lastEnvelopeMeta: event._meta
@@ -317,7 +325,7 @@ var TurnBoundaryCompactionEngine = class {
317
325
  }
318
326
  } else {
319
327
  const lastSlot = this.slots[this.slots.length - 1];
320
- if (lastSlot && lastSlot.kind === kind && lastSlot.parentToolCallId == null) {
328
+ if (lastSlot && lastSlot.kind === kind && lastSlot.parentToolCallId == null && stringArraysEqual(lastSlot.sourceRecordIds, sourceRecordIds)) {
321
329
  lastSlot.chunks.push(text);
322
330
  if (event.id !== void 0) lastSlot.lastEventId = event.id;
323
331
  lastSlot.lastMeta = meta ?? lastSlot.lastMeta;
@@ -327,6 +335,7 @@ var TurnBoundaryCompactionEngine = class {
327
335
  kind,
328
336
  parentToolCallId: void 0,
329
337
  chunks: [text],
338
+ sourceRecordIds,
330
339
  lastEventId: event.id ?? 0,
331
340
  lastMeta: meta,
332
341
  lastEnvelopeMeta: event._meta
@@ -364,7 +373,7 @@ var TurnBoundaryCompactionEngine = class {
364
373
  this.liveJournal = [];
365
374
  this.slots = [];
366
375
  this.toolSlotIndex.clear();
367
- this.textSlotIndex.clear();
376
+ this.clearTextSlotIndex();
368
377
  }
369
378
  recordLastEventId(event) {
370
379
  if (event.id !== void 0) {
@@ -448,6 +457,10 @@ var TurnBoundaryCompactionEngine = class {
448
457
  this.truncatedEvents = 0;
449
458
  this.truncatedTurns = 0;
450
459
  }
460
+ clearTextSlotIndex() {
461
+ this.textSlotIndex.text.clear();
462
+ this.textSlotIndex.thought.clear();
463
+ }
451
464
  };
452
465
  function makeMergedSessionUpdateEvent(sessionUpdate, text, eventId, meta, envelopeMeta) {
453
466
  return {
@@ -487,6 +500,24 @@ function extractParentToolCallIdFromMeta(meta) {
487
500
  return void 0;
488
501
  }
489
502
  __name(extractParentToolCallIdFromMeta, "extractParentToolCallIdFromMeta");
503
+ function extractSourceRecordIdsFromMeta(meta) {
504
+ if (typeof meta !== "object" || meta === null) return void 0;
505
+ const transcript = meta["qwenTranscript"];
506
+ if (typeof transcript !== "object" || transcript === null) return void 0;
507
+ const ids = transcript["sourceRecordIds"];
508
+ if (!Array.isArray(ids)) return void 0;
509
+ const normalized = [
510
+ ...new Set(ids.filter((id) => typeof id === "string"))
511
+ ];
512
+ return normalized.length > 0 ? normalized : void 0;
513
+ }
514
+ __name(extractSourceRecordIdsFromMeta, "extractSourceRecordIdsFromMeta");
515
+ function stringArraysEqual(left, right) {
516
+ if (left === right) return true;
517
+ if (!left || !right || left.length !== right.length) return false;
518
+ return left.every((value, index) => value === right[index]);
519
+ }
520
+ __name(stringArraysEqual, "stringArraysEqual");
490
521
  function hasTodoStopGuardDiscreteMeta(meta) {
491
522
  return typeof meta === "object" && meta !== null && meta["qwenDiscreteMessage"] === true && meta["source"] === "todo_stop_guard";
492
523
  }
@@ -502,6 +533,11 @@ function mergeToolCallEvent(existing, incoming) {
502
533
  merged[key] = value;
503
534
  }
504
535
  }
536
+ const updateMeta = mergeTranscriptUpdateMeta(
537
+ existingUpdate["_meta"],
538
+ incomingUpdate["_meta"]
539
+ );
540
+ if (updateMeta !== void 0) merged["_meta"] = updateMeta;
505
541
  merged["sessionUpdate"] = "tool_call";
506
542
  const mergedMeta = existing._meta || incoming._meta ? { ...existing._meta ?? {}, ...incoming._meta ?? {} } : void 0;
507
543
  return {
@@ -517,6 +553,23 @@ function mergeToolCallEvent(existing, incoming) {
517
553
  };
518
554
  }
519
555
  __name(mergeToolCallEvent, "mergeToolCallEvent");
556
+ function mergeTranscriptUpdateMeta(existing, incoming) {
557
+ const existingRecord = typeof existing === "object" && existing !== null ? existing : void 0;
558
+ const incomingRecord = typeof incoming === "object" && incoming !== null ? incoming : void 0;
559
+ if (!existingRecord && !incomingRecord) return void 0;
560
+ const sourceRecordIds = [
561
+ .../* @__PURE__ */ new Set([
562
+ ...extractSourceRecordIdsFromMeta(existingRecord) ?? [],
563
+ ...extractSourceRecordIdsFromMeta(incomingRecord) ?? []
564
+ ])
565
+ ];
566
+ return {
567
+ ...existingRecord ?? {},
568
+ ...incomingRecord ?? {},
569
+ ...sourceRecordIds.length > 0 ? { qwenTranscript: { sourceRecordIds } } : {}
570
+ };
571
+ }
572
+ __name(mergeTranscriptUpdateMeta, "mergeTranscriptUpdateMeta");
520
573
 
521
574
  // packages/acp-bridge/src/session-source.ts
522
575
  init_esbuild_shims();
@@ -5678,7 +5731,8 @@ function createAcpSessionBridge(opts) {
5678
5731
  pendingInteractionCount: entry.pendingInteractions.size,
5679
5732
  hasTurnError: entry.turnError !== void 0,
5680
5733
  ...entry.turnError !== void 0 ? { turnError: entry.turnError } : {},
5681
- pendingInteractions: [...entry.pendingInteractions.values()]
5734
+ pendingInteractions: [...entry.pendingInteractions.values()],
5735
+ ...entry.worktree ? { worktree: entry.worktree } : {}
5682
5736
  };
5683
5737
  }, "toSessionSummary");
5684
5738
  const permissionConsensusQuorum = opts.permissionConsensusQuorum;
@@ -6009,7 +6063,7 @@ function createAcpSessionBridge(opts) {
6009
6063
  }
6010
6064
  }
6011
6065
  __name(ensureChannel, "ensureChannel");
6012
- async function doSpawn(modelServiceId, effectiveScope, approvalMode, requestedClientId, onSessionRegistered, parentSessionId, sourceType, sourceId) {
6066
+ async function doSpawn(modelServiceId, effectiveScope, approvalMode, requestedClientId, onSessionRegistered, parentSessionId, sourceType, sourceId, worktree) {
6013
6067
  const channelPath = channelInfo && !channelInfo.isDying ? "reused" : inFlightChannelSpawn ? "joined" : "spawned_on_request";
6014
6068
  const ci = await telemetry.withSpan(
6015
6069
  "channel.wait",
@@ -6070,7 +6124,7 @@ function createAcpSessionBridge(opts) {
6070
6124
  newSessionResp.sessionId,
6071
6125
  boundWorkspace,
6072
6126
  void 0,
6073
- { parentSessionId, sourceType, sourceId }
6127
+ { parentSessionId, sourceType, sourceId, worktree }
6074
6128
  );
6075
6129
  initializedSessionId = entry.sessionId;
6076
6130
  sessionRegistered = true;
@@ -6184,7 +6238,8 @@ function createAcpSessionBridge(opts) {
6184
6238
  ...entry.sourceType ? { sourceType: entry.sourceType } : {},
6185
6239
  ...entry.sourceId !== void 0 ? { sourceId: entry.sourceId } : {},
6186
6240
  ...entry.sourceType ? { sourcePersisted: sourcePersisted === true } : {},
6187
- ...entry.parentSessionId ? { parentSessionPersisted: parentSessionPersisted === true } : {}
6241
+ ...entry.parentSessionId ? { parentSessionPersisted: parentSessionPersisted === true } : {},
6242
+ ...entry.worktree ? { worktree: entry.worktree } : {}
6188
6243
  };
6189
6244
  } finally {
6190
6245
  ci.sessionSpawnsInFlight = Math.max(0, ci.sessionSpawnsInFlight - 1);
@@ -6797,6 +6852,7 @@ function createAcpSessionBridge(opts) {
6797
6852
  ...options.parentSessionId ? { parentSessionId: options.parentSessionId } : {},
6798
6853
  ...options.sourceType ? { sourceType: options.sourceType } : {},
6799
6854
  ...options.sourceId !== void 0 ? { sourceId: options.sourceId } : {},
6855
+ ...options.worktree ? { worktree: options.worktree } : {},
6800
6856
  channel: ci.channel,
6801
6857
  connection: ci.connection,
6802
6858
  events,
@@ -7601,7 +7657,8 @@ function createAcpSessionBridge(opts) {
7601
7657
  releaseAdmissionOnce,
7602
7658
  req.parentSessionId,
7603
7659
  source.sourceType,
7604
- source.sourceId
7660
+ source.sourceId,
7661
+ req.worktree
7605
7662
  );
7606
7663
  const tracker = effectiveScope === "single" ? workspaceKey : `${workspaceKey}#${randomUUID2()}`;
7607
7664
  inFlightSpawns.set(tracker, promise);
@@ -1,19 +1,14 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- require_react
5
- } from "./chunk-HTHUX2T5.js";
6
3
  import {
7
4
  init_esbuild_shims
8
5
  } from "./chunk-5O2XNYP6.js";
9
6
  import {
10
- __name,
11
- __toESM
7
+ __name
12
8
  } from "./chunk-J2S4EL5Y.js";
13
9
 
14
10
  // packages/cli/src/ui/types.ts
15
11
  init_esbuild_shims();
16
- var import_react = __toESM(require_react(), 1);
17
12
  var GOAL_STATUS_KINDS = [
18
13
  "set",
19
14
  "achieved",
@@ -8,13 +8,13 @@ import {
8
8
  } from "./chunk-L573Z2QZ.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-TKASNYDS.js";
11
+ } from "./chunk-3QR5MOHP.js";
12
12
  import {
13
13
  So
14
- } from "./chunk-GCY7QTCE.js";
14
+ } from "./chunk-JDPCOUZ3.js";
15
15
  import {
16
16
  createDebugLogger
17
- } from "./chunk-UE5TZ55T.js";
17
+ } from "./chunk-C27BYUX6.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  Storage
5
- } from "./chunk-UE5TZ55T.js";
5
+ } from "./chunk-C27BYUX6.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -13,15 +13,15 @@ import {
13
13
  } from "./chunk-OWAK7LMW.js";
14
14
  import {
15
15
  ideContextStore
16
- } from "./chunk-GCY7QTCE.js";
16
+ } from "./chunk-JDPCOUZ3.js";
17
17
  import {
18
18
  atomicWriteFileSync
19
- } from "./chunk-VAJS2E2D.js";
19
+ } from "./chunk-BDBMYST4.js";
20
20
  import {
21
21
  FatalConfigError,
22
22
  Storage,
23
23
  getErrorMessage
24
- } from "./chunk-UE5TZ55T.js";
24
+ } from "./chunk-C27BYUX6.js";
25
25
  import {
26
26
  init_esbuild_shims
27
27
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,305 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ stringWidth
5
+ } from "./chunk-H2XVO6NE.js";
6
+ import {
7
+ ansiRegex,
8
+ init_ansi_regex,
9
+ stripAnsi
10
+ } from "./chunk-T4TZQJ7W.js";
11
+ import {
12
+ init_esbuild_shims
13
+ } from "./chunk-5O2XNYP6.js";
14
+ import {
15
+ __name
16
+ } from "./chunk-J2S4EL5Y.js";
17
+
18
+ // packages/cli/src/ui/utils/textUtils.ts
19
+ init_esbuild_shims();
20
+ init_ansi_regex();
21
+ import { stripVTControlCharacters } from "node:util";
22
+ var getAsciiArtWidth = /* @__PURE__ */ __name((asciiArt) => {
23
+ if (!asciiArt) {
24
+ return 0;
25
+ }
26
+ const lines = asciiArt.split("\n");
27
+ return Math.max(...lines.map((line) => getCachedStringWidth(line)));
28
+ }, "getAsciiArtWidth");
29
+ var codePointsCache = /* @__PURE__ */ new Map();
30
+ var MAX_STRING_LENGTH_TO_CACHE = 1e3;
31
+ function toCodePoints(str) {
32
+ let isAscii = true;
33
+ for (let i = 0; i < str.length; i++) {
34
+ if (str.charCodeAt(i) > 127) {
35
+ isAscii = false;
36
+ break;
37
+ }
38
+ }
39
+ if (isAscii) {
40
+ return str.split("");
41
+ }
42
+ if (str.length <= MAX_STRING_LENGTH_TO_CACHE) {
43
+ const cached = codePointsCache.get(str);
44
+ if (cached) {
45
+ return cached;
46
+ }
47
+ }
48
+ const result = Array.from(str);
49
+ if (str.length <= MAX_STRING_LENGTH_TO_CACHE) {
50
+ codePointsCache.set(str, result);
51
+ }
52
+ return result;
53
+ }
54
+ __name(toCodePoints, "toCodePoints");
55
+ function cpLen(str) {
56
+ return toCodePoints(str).length;
57
+ }
58
+ __name(cpLen, "cpLen");
59
+ function cpSlice(str, start, end) {
60
+ const arr = toCodePoints(str).slice(start, end);
61
+ return arr.join("");
62
+ }
63
+ __name(cpSlice, "cpSlice");
64
+ function stripUnsafeCharacters(str) {
65
+ const strippedAnsi = stripAnsi(str);
66
+ const strippedVT = stripVTControlCharacters(strippedAnsi);
67
+ return toCodePoints(strippedVT).filter((char) => {
68
+ const code = char.codePointAt(0);
69
+ if (code === void 0) return false;
70
+ if (code === 9 || code === 10 || code === 13) return true;
71
+ if (code >= 0 && code <= 31) return false;
72
+ if (code >= 128 && code <= 159) return false;
73
+ return true;
74
+ }).join("");
75
+ }
76
+ __name(stripUnsafeCharacters, "stripUnsafeCharacters");
77
+ var stringWidthCache = /* @__PURE__ */ new Map();
78
+ var getCachedStringWidth = /* @__PURE__ */ __name((str) => {
79
+ if (/^[\x20-\x7E]*$/.test(str)) {
80
+ return str.length;
81
+ }
82
+ if (stringWidthCache.has(str)) {
83
+ return stringWidthCache.get(str);
84
+ }
85
+ const width = stringWidth(str);
86
+ stringWidthCache.set(str, width);
87
+ return width;
88
+ }, "getCachedStringWidth");
89
+ var graphemeSegmenter = new Intl.Segmenter(void 0, {
90
+ granularity: "grapheme"
91
+ });
92
+ function truncateToWidth(text, maxWidth) {
93
+ if (maxWidth <= 0) {
94
+ return "";
95
+ }
96
+ if (getCachedStringWidth(text) <= maxWidth) {
97
+ return text;
98
+ }
99
+ const ellipsis = "\u2026";
100
+ const budget = Math.max(0, maxWidth - getCachedStringWidth(ellipsis));
101
+ let width = 0;
102
+ let result = "";
103
+ for (const { segment } of graphemeSegmenter.segment(text)) {
104
+ const segmentWidth = getCachedStringWidth(segment);
105
+ if (width + segmentWidth > budget) {
106
+ break;
107
+ }
108
+ result += segment;
109
+ width += segmentWidth;
110
+ }
111
+ return `${result}${ellipsis}`;
112
+ }
113
+ __name(truncateToWidth, "truncateToWidth");
114
+ function wrapToVisualLines(text, width) {
115
+ if (width <= 0) {
116
+ return [""];
117
+ }
118
+ const visualLines = [];
119
+ for (const logicalLine of text.split("\n")) {
120
+ if (logicalLine === "") {
121
+ visualLines.push("");
122
+ continue;
123
+ }
124
+ let currentLine = "";
125
+ let currentWidth = 0;
126
+ for (const char of logicalLine) {
127
+ const charWidth = getCachedStringWidth(char);
128
+ if (currentWidth + charWidth > width && currentWidth > 0) {
129
+ visualLines.push(currentLine);
130
+ currentLine = "";
131
+ currentWidth = 0;
132
+ }
133
+ currentLine += char;
134
+ currentWidth += charWidth;
135
+ }
136
+ if (currentLine) {
137
+ visualLines.push(currentLine);
138
+ }
139
+ }
140
+ if (visualLines.length === 0) {
141
+ visualLines.push("");
142
+ }
143
+ return visualLines;
144
+ }
145
+ __name(wrapToVisualLines, "wrapToVisualLines");
146
+ var regex = ansiRegex();
147
+ var BARE_C0_CONTROL_CHARS_REGEX = /[\x00-\x08\x0b-\x1f\x7f-\x9f]/g;
148
+ var BIDI_OVERRIDE_CHARS_REGEX = /[\u200e\u200f\u202a-\u202e\u2066-\u2069]/g;
149
+ function sanitizeTerminalText(value) {
150
+ return escapeAnsiCtrlCodes(value).replace(BARE_C0_CONTROL_CHARS_REGEX, "").replace(BIDI_OVERRIDE_CHARS_REGEX, "");
151
+ }
152
+ __name(sanitizeTerminalText, "sanitizeTerminalText");
153
+ function escapeAnsiCtrlCodes(obj) {
154
+ if (typeof obj === "string") {
155
+ if (obj.search(regex) === -1) {
156
+ return obj;
157
+ }
158
+ regex.lastIndex = 0;
159
+ return obj.replace(
160
+ regex,
161
+ (match) => JSON.stringify(match).slice(1, -1)
162
+ );
163
+ }
164
+ if (obj === null || typeof obj !== "object") {
165
+ return obj;
166
+ }
167
+ if (Array.isArray(obj)) {
168
+ let newArr = null;
169
+ for (let i = 0; i < obj.length; i++) {
170
+ const value = obj[i];
171
+ const escapedValue = escapeAnsiCtrlCodes(value);
172
+ if (escapedValue !== value) {
173
+ if (newArr === null) {
174
+ newArr = [...obj];
175
+ }
176
+ newArr[i] = escapedValue;
177
+ }
178
+ }
179
+ return newArr !== null ? newArr : obj;
180
+ }
181
+ let newObj = null;
182
+ const keys = Object.keys(obj);
183
+ for (const key of keys) {
184
+ const value = obj[key];
185
+ const escapedValue = escapeAnsiCtrlCodes(value);
186
+ if (escapedValue !== value) {
187
+ if (newObj === null) {
188
+ newObj = { ...obj };
189
+ }
190
+ newObj[key] = escapedValue;
191
+ }
192
+ }
193
+ return newObj !== null ? newObj : obj;
194
+ }
195
+ __name(escapeAnsiCtrlCodes, "escapeAnsiCtrlCodes");
196
+ var SENSITIVE_PATTERNS = [
197
+ // API keys with common prefixes
198
+ {
199
+ pattern: /(sk-[a-zA-Z0-9]{20,})/g,
200
+ replacement: "sk-***REDACTED***"
201
+ },
202
+ {
203
+ pattern: /(api[_-]?key[_-]?[=:]\s*)[a-zA-Z0-9_-]{20,}/gi,
204
+ replacement: "$1***REDACTED***"
205
+ },
206
+ // Bearer tokens
207
+ {
208
+ pattern: /(Bearer\s+)[a-zA-Z0-9._-]+/gi,
209
+ replacement: "$1***REDACTED***"
210
+ },
211
+ // Generic tokens
212
+ {
213
+ pattern: /(token[_-]?[=:]\s*)[a-zA-Z0-9._-]{10,}/gi,
214
+ replacement: "$1***REDACTED***"
215
+ },
216
+ // Passwords in connection strings or assignments
217
+ {
218
+ pattern: /(password[_-]?[=:]\s*)[^\s]+/gi,
219
+ replacement: "$1***REDACTED***"
220
+ },
221
+ {
222
+ pattern: /(pwd[_-]?[=:]\s*)[^\s]+/gi,
223
+ replacement: "$1***REDACTED***"
224
+ },
225
+ // AWS keys
226
+ {
227
+ pattern: /(AKIA[A-Z0-9]{16})/g,
228
+ replacement: "***REDACTED***"
229
+ },
230
+ // Generic secret patterns
231
+ {
232
+ pattern: /(secret[_-]?[=:]\s*)[a-zA-Z0-9._-]{10,}/gi,
233
+ replacement: "$1***REDACTED***"
234
+ }
235
+ ];
236
+ function sanitizeSensitiveText(text, maxLength = 200) {
237
+ let result = text;
238
+ for (const { pattern, replacement } of SENSITIVE_PATTERNS) {
239
+ result = result.replace(pattern, replacement);
240
+ }
241
+ if (result.length > maxLength) {
242
+ if (maxLength <= 3) {
243
+ return result.slice(0, maxLength);
244
+ }
245
+ return result.slice(0, maxLength - 3) + "...";
246
+ }
247
+ return result;
248
+ }
249
+ __name(sanitizeSensitiveText, "sanitizeSensitiveText");
250
+ var FILENAME_CONTROL_CHARS_REGEX = /[\x00-\x1f\x7f-\x9f\u202a-\u202e\u2066-\u2069]/g;
251
+ var MULTILINE_CONTROL_CHARS_REGEX = /[\x00-\x08\x0b-\x1f\x7f-\x9f\u202a-\u202e\u2066-\u2069]/g;
252
+ function escapeControlChar(ch) {
253
+ switch (ch) {
254
+ case "\b":
255
+ return "\\b";
256
+ case " ":
257
+ return "\\t";
258
+ case "\n":
259
+ return "\\n";
260
+ case "\f":
261
+ return "\\f";
262
+ case "\r":
263
+ return "\\r";
264
+ default: {
265
+ const code = ch.charCodeAt(0);
266
+ return `\\u${code.toString(16).padStart(4, "0")}`;
267
+ }
268
+ }
269
+ }
270
+ __name(escapeControlChar, "escapeControlChar");
271
+ function sanitizeFilenameForDisplay(name) {
272
+ return escapeAnsiCtrlCodes(name).replace(
273
+ FILENAME_CONTROL_CHARS_REGEX,
274
+ escapeControlChar
275
+ );
276
+ }
277
+ __name(sanitizeFilenameForDisplay, "sanitizeFilenameForDisplay");
278
+ function sanitizeMultilineForDisplay(text) {
279
+ return escapeAnsiCtrlCodes(text).replace(
280
+ MULTILINE_CONTROL_CHARS_REGEX,
281
+ escapeControlChar
282
+ );
283
+ }
284
+ __name(sanitizeMultilineForDisplay, "sanitizeMultilineForDisplay");
285
+
286
+ export {
287
+ getAsciiArtWidth,
288
+ toCodePoints,
289
+ cpLen,
290
+ cpSlice,
291
+ stripUnsafeCharacters,
292
+ getCachedStringWidth,
293
+ truncateToWidth,
294
+ wrapToVisualLines,
295
+ sanitizeTerminalText,
296
+ escapeAnsiCtrlCodes,
297
+ sanitizeSensitiveText,
298
+ sanitizeFilenameForDisplay,
299
+ sanitizeMultilineForDisplay
300
+ };
301
+ /**
302
+ * @license
303
+ * Copyright 2025 Google LLC
304
+ * SPDX-License-Identifier: Apache-2.0
305
+ */