@qwen-code/qwen-code 0.19.9 → 0.19.10-nightly.20260716.506ce0a1a
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.
- package/bundled/qc-helper/docs/configuration/settings.md +14 -6
- package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +33 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +64 -20
- package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
- package/bundled/qc-helper/docs/features/code-review.md +88 -44
- package/bundled/qc-helper/docs/features/commands.md +6 -6
- package/bundled/qc-helper/docs/features/hooks.md +29 -0
- package/bundled/qc-helper/docs/features/sandbox.md +2 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +21 -0
- package/bundled/qc-helper/docs/qwen-serve.md +49 -20
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +219 -33
- package/bundled/review/SKILL.md +429 -382
- package/chunks/{MaxSizedBox-6HYJ3ZPJ.js → MaxSizedBox-WOC3YDWA.js} +31 -32
- package/chunks/{StandaloneSessionPicker-WS4GXYOG.js → StandaloneSessionPicker-H5HZCAFD.js} +49 -48
- package/chunks/{acpAgent-5FWSOZL5.js → acpAgent-55YDJDNM.js} +922 -550
- package/chunks/{agent-HOLHB3RT.js → agent-H6VE5W3L.js} +26 -27
- package/chunks/{agent-headless-SXL6H56A.js → agent-headless-T4XJOCRU.js} +26 -27
- package/chunks/{anthropicContentGenerator-L73TO3DB.js → anthropicContentGenerator-HBRXJSP4.js} +78 -16
- package/chunks/{artifact-tool-U7IRTLIV.js → artifact-tool-MIZLXBLF.js} +2 -2
- package/chunks/{askUserQuestion-2DLUUZZG.js → askUserQuestion-XMJVPNWM.js} +2 -2
- package/chunks/{bridge-BCJQ7BBB.js → bridge-FTB6ZP3R.js} +31 -34
- package/chunks/{ca-UJ6HC4H2.js → ca-CODEN7TD.js} +9 -1
- package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
- package/chunks/channel-worker-manager-CUDPU4CN.js +418 -0
- package/chunks/channel-worker-supervisor-4XTO2ZD3.js +20 -0
- package/chunks/{chunk-LXNEJD34.js → chunk-2FO5GFKZ.js} +1 -1
- package/chunks/{chunk-VA4KQY6V.js → chunk-2JNR4VP2.js} +3 -3
- package/chunks/{chunk-L36P3NBD.js → chunk-2W3OOD4W.js} +2 -0
- package/chunks/{chunk-7R3CZA3Q.js → chunk-2Z5UX4KI.js} +1 -1
- package/chunks/{chunk-CUMMSHH6.js → chunk-3DWIFU7L.js} +1 -1
- package/chunks/chunk-3MX7D6QN.js +516 -0
- package/chunks/{chunk-SJHDYNHF.js → chunk-4BJVSIS3.js} +3 -3
- package/chunks/{chunk-TO6QE22P.js → chunk-5CNYZ7TN.js} +26 -22
- package/chunks/{chunk-N3EMS75V.js → chunk-5DEJ4T6C.js} +1333 -1232
- package/chunks/chunk-5HBA2Z7V.js +28 -0
- package/chunks/{chunk-ZJE7NSL3.js → chunk-5M6IDOMF.js} +34 -97
- package/chunks/{chunk-SCGXUJBT.js → chunk-6LI3L22E.js} +3 -3
- package/chunks/{chunk-K434OPES.js → chunk-6WPJRYLZ.js} +3 -3
- package/chunks/{chunk-YAUFFXDS.js → chunk-7GM2RWCR.js} +12 -11
- package/chunks/{chunk-OQ4DRIOA.js → chunk-7HWE2W74.js} +2 -2
- package/chunks/{chunk-J4TSQ5EQ.js → chunk-7NFB7LBQ.js} +8 -1
- package/chunks/{chunk-MC23XKFE.js → chunk-A2HWMJVO.js} +37 -3
- package/chunks/{chunk-3G7CIHVV.js → chunk-ABNYOMDG.js} +4 -4
- package/chunks/{chunk-3AHXV67U.js → chunk-AGZLXLBY.js} +1 -1
- package/chunks/{chunk-RDJSGHZE.js → chunk-ALGGS7UH.js} +1 -38
- package/chunks/{chunk-Q4YQW46J.js → chunk-AMRZVQUY.js} +43 -40
- package/chunks/{chunk-W3JHSWRP.js → chunk-AN6C2U46.js} +4 -4
- package/chunks/{chunk-GWHYEOV2.js → chunk-ARKANCNX.js} +2 -1
- package/chunks/{chunk-5SFOMFG4.js → chunk-AVEOWVOM.js} +36 -2
- package/chunks/{chunk-34MW4KTI.js → chunk-BA5JGE5F.js} +2 -2
- package/chunks/{chunk-5HOMWMCL.js → chunk-BSJAQUFD.js} +5492 -1336
- package/chunks/{chunk-L6P4KPHR.js → chunk-BWJKL5DB.js} +58 -38
- package/chunks/{chunk-PVZM22CK.js → chunk-C32JFRGV.js} +5 -5
- package/chunks/{chunk-AKIVHSJR.js → chunk-CZIHPO7L.js} +163 -782
- package/chunks/chunk-DL7RCO6V.js +493 -0
- package/chunks/{chunk-KKNMOEZH.js → chunk-E2UVIFI2.js} +185 -398
- package/chunks/{chunk-5VXNZWGF.js → chunk-ENUQSKEY.js} +1 -1
- package/chunks/{chunk-PDZ7MBDG.js → chunk-EWILX3BM.js} +27 -6
- package/chunks/{chunk-BMGVRZN4.js → chunk-EZWX232B.js} +1 -1
- package/chunks/{chunk-4GORAUCN.js → chunk-F333XEAU.js} +1 -1
- package/chunks/{chunk-YLV3XXFB.js → chunk-FBU7WRZI.js} +17 -1
- package/chunks/chunk-FEOZBUMT.js +77 -0
- package/chunks/{chunk-5U27BZ72.js → chunk-FKEGVMPX.js} +269 -83
- package/chunks/chunk-FNX3LGAK.js +34 -0
- package/chunks/{chunk-LK7KUE55.js → chunk-FSA7ERJ2.js} +1 -1
- package/chunks/{chunk-PODM4SZ4.js → chunk-G3BIBPI7.js} +5 -5
- package/chunks/{chunk-A3XKDTSH.js → chunk-GA65O2TB.js} +4 -4
- package/chunks/{chunk-3BTRNWWD.js → chunk-GOXKNSDZ.js} +1 -64
- package/chunks/{channel-worker-supervisor-WSOAAYUO.js → chunk-GXGIM7QP.js} +67 -35
- package/chunks/{chunk-6PESIEKJ.js → chunk-GXUWGPYX.js} +68 -6
- package/chunks/chunk-GYTKQYDB.js +23 -0
- package/chunks/{chunk-GZRTYZ2R.js → chunk-H3XMJV7T.js} +218 -1
- package/chunks/{chunk-WQUQVGTF.js → chunk-HGRXW4HQ.js} +467 -106
- package/chunks/{chunk-YVEDCAUE.js → chunk-HGT6JR3U.js} +19 -0
- package/chunks/{chunk-ECNYL4AA.js → chunk-HUEWOHKV.js} +1 -1
- package/chunks/chunk-IDS7MSUP.js +74 -0
- package/chunks/{chunk-KHUQZZJ6.js → chunk-IHDRJLLR.js} +382 -36
- package/chunks/{chunk-CLFKOZEK.js → chunk-J4SEAF4X.js} +114 -4
- package/chunks/{chunk-B5ORX3FG.js → chunk-JGUT3LWZ.js} +6 -1
- package/chunks/{chunk-P67PFTUT.js → chunk-KEYEYCHZ.js} +4 -4
- package/chunks/{chunk-ORBGV7NJ.js → chunk-KKRTYONM.js} +6 -4
- package/chunks/{chunk-7PU4FYLG.js → chunk-KOXFAG6P.js} +4 -18
- package/chunks/{chunk-EGYZ275M.js → chunk-KWLVWNF5.js} +55 -7
- package/chunks/{chunk-XLA62MYB.js → chunk-KXECVZPD.js} +2 -2
- package/chunks/{chunk-IAVB3HM3.js → chunk-L4Y55KIS.js} +33 -1
- package/chunks/{chunk-4QLQE5WJ.js → chunk-L5U3ELZX.js} +1 -1
- package/chunks/{chunk-4ZVWQHEQ.js → chunk-LQIDP6K5.js} +1 -1
- package/chunks/{chunk-DC5Z3DU6.js → chunk-LXLTBIDP.js} +43 -6
- package/chunks/chunk-LXXMOYPL.js +22 -0
- package/chunks/{chunk-Q6I5QHMH.js → chunk-MFNKBXYH.js} +1 -1
- package/chunks/chunk-MR3PXB6E.js +48 -0
- package/chunks/{chunk-JZETEN3Z.js → chunk-N45S36AH.js} +3 -3
- package/chunks/{chunk-GWLSNBG4.js → chunk-NA3IG6XG.js} +748 -27
- package/chunks/{chunk-D5SKC4YG.js → chunk-O3M25JXE.js} +213 -29
- package/chunks/{chunk-EAXLGSFP.js → chunk-O6XGHDS5.js} +11 -11
- package/chunks/{chunk-WL4L7EZH.js → chunk-OA4JVLSA.js} +27 -1
- package/chunks/{chunk-X4NKFGFJ.js → chunk-OJAMDVF5.js} +0 -15
- package/chunks/{chunk-BZIFY5TF.js → chunk-OKAIGAYW.js} +3 -3
- package/chunks/{chunk-CNEIYWSA.js → chunk-OVIV236K.js} +5 -5
- package/chunks/{chunk-3SJSQXNS.js → chunk-PEJWA3QQ.js} +12 -8
- package/chunks/{chunk-E2IY465S.js → chunk-PWNOAWXB.js} +59 -12
- package/chunks/{chunk-B4G2WOFA.js → chunk-Q5MKHNIR.js} +28 -5
- package/chunks/{chunk-MXL5UP4X.js → chunk-Q6TUALBE.js} +1 -1
- package/chunks/{chunk-QYMQSECS.js → chunk-QAW7PIHT.js} +2 -2
- package/chunks/{chunk-HKMAENAO.js → chunk-QDTGDM2T.js} +14 -9
- package/chunks/{chunk-LUODI7WD.js → chunk-RCEEXIOO.js} +6 -4
- package/chunks/{chunk-W2UIXQDL.js → chunk-RTV5TUYB.js} +12 -4
- package/chunks/chunk-RW7DUKFO.js +91 -0
- package/chunks/{chunk-NVYTCB5Z.js → chunk-SA6QVLWI.js} +17325 -16259
- package/chunks/chunk-SJSI7PXU.js +59 -0
- package/chunks/{chunk-HVY356M2.js → chunk-SMGBWLNU.js} +3 -3
- package/chunks/{chunk-CEA3E3JB.js → chunk-SPJQO2CE.js} +2 -2
- package/chunks/{chunk-CC2ITGCF.js → chunk-STZQCNN3.js} +49 -6
- package/chunks/{chunk-HPDUL5MF.js → chunk-T2ZDAER2.js} +1 -1
- package/chunks/{chunk-XUOOWUZS.js → chunk-T3TQ3ACP.js} +1 -1
- package/chunks/{chunk-4C5BQ2D2.js → chunk-TIKDHS6V.js} +100 -17
- package/chunks/chunk-TV6K2FB4.js +224 -0
- package/chunks/{chunk-5XUCZNSY.js → chunk-TYLOFD2U.js} +1 -1
- package/chunks/{chunk-D2GFWEXB.js → chunk-UCUUH2JV.js} +6 -6
- package/chunks/{chunk-BAPGSC7U.js → chunk-UZP7K33Y.js} +23 -9
- package/chunks/{chunk-77XJ3SWN.js → chunk-VDAR6UO2.js} +8 -6
- package/chunks/{chunk-XYQSMABS.js → chunk-VKLVGA2D.js} +4 -4
- package/chunks/{chunk-JSG7ZSBC.js → chunk-VRR65QYW.js} +251 -3
- package/chunks/{chunk-U2NNEY4R.js → chunk-VT5AWJN4.js} +1 -1
- package/chunks/{chunk-ZLXQN2QS.js → chunk-WIEO4CWB.js} +1 -1
- package/chunks/{chunk-X6TJ3YZV.js → chunk-WKEO3GLZ.js} +160 -60
- package/chunks/{chunk-J3JA76CF.js → chunk-WTNZ6DXB.js} +1 -1
- package/chunks/{chunk-VWPVHAMO.js → chunk-XIWQ5QST.js} +8 -1
- package/chunks/{chunk-TDEXZKMT.js → chunk-Y66VOBRP.js} +2 -2
- package/chunks/{chunk-3VAGG5T5.js → chunk-YYBZUIPL.js} +1015 -100
- package/chunks/{chunk-CCDMCZPP.js → chunk-YZ3SBNP7.js} +1 -1
- package/chunks/{chunk-ATAKVRIF.js → chunk-Z3XA2TNG.js} +7 -7
- package/chunks/{chunk-EMDMPBJ4.js → chunk-Z7SVC7PJ.js} +10 -3
- package/chunks/{chunk-AURZZYMD.js → chunk-ZIVSSTUG.js} +4 -4
- package/chunks/{chunk-UOZWKTQG.js → chunk-ZPAHLFZU.js} +2 -2
- package/chunks/{chunk-34Z3U5RQ.js → chunk-ZQIYGQCG.js} +765 -168
- package/chunks/{computer-use-HM37RX6A.js → computer-use-NADT7ULB.js} +26 -27
- package/chunks/{config-utils-NV2SVGPB.js → config-utils-IQQT3GCI.js} +3 -2
- package/chunks/{contextCommand-OF5SFGH2.js → contextCommand-U7NEJYJ7.js} +28 -29
- package/chunks/{create-sub-session-INX7TXJI.js → create-sub-session-EAB2U5XW.js} +2 -2
- package/chunks/{create-sub-session-KPRT7ECJ.js → create-sub-session-SUN33INC.js} +26 -27
- package/chunks/{cron-create-AMBKGZX6.js → cron-create-GMVKSXZT.js} +4 -4
- package/chunks/{cron-delete-LRU4OJYG.js → cron-delete-VDZKUAVK.js} +4 -4
- package/chunks/{cron-list-WVP2JXER.js → cron-list-UG7C7RAR.js} +4 -4
- package/chunks/{daemon-ARHTSTXP.js → daemon-SJXEKP3H.js} +773 -126
- package/chunks/daemon-status-provider-WIIYLGZJ.js +74 -0
- package/chunks/{de-EBJN3OVN.js → de-NOXPCSYN.js} +9 -1
- package/chunks/{dist-XKU3ABM5.js → dist-4WCQEZIN.js} +4 -51
- package/chunks/{dist-QYCAEZIT.js → dist-DOPL5LSQ.js} +5 -1
- package/chunks/{dist-WKPOYU7O.js → dist-GXJVCOS7.js} +1 -1
- package/chunks/{dist-R7LN5AZE.js → dist-PX2ERZ6I.js} +2 -2
- package/chunks/{dist-PNVLTKTL.js → dist-V2YVLYOW.js} +215 -33
- package/chunks/{dist-VHV4EVHG.js → dist-VYWUKURL.js} +1 -1
- package/chunks/{earlyInputCapture-3VTHRC4C.js → earlyInputCapture-6FRM6UMU.js} +27 -28
- package/chunks/{edit-VNI4NJ73.js → edit-7GOIQTCZ.js} +27 -28
- package/chunks/{en-5A6LA7RK.js → en-JFVULHTB.js} +11 -1
- package/chunks/{enter-worktree-IYYBKPZT.js → enter-worktree-476E6WIK.js} +26 -27
- package/chunks/{enterPlanMode-GMC5FD5A.js → enterPlanMode-IRJM6W3C.js} +42 -28
- package/chunks/{environment-5HSSRMJ7.js → environment-ROMULS2X.js} +30 -30
- package/chunks/{errors-HMFCJJ7P.js → errors-OUIWPUDY.js} +28 -29
- package/chunks/{exit-worktree-6BHCMP5G.js → exit-worktree-PPSFK753.js} +26 -27
- package/chunks/{exitPlanMode-CJW7G74W.js → exitPlanMode-YKQMD4D7.js} +26 -27
- package/chunks/{fast-path-FRDMDVHG.js → fast-path-CNK2HHKH.js} +3 -3
- package/chunks/{fast-path-settings-5QZE64HR.js → fast-path-settings-DAOVFADC.js} +6 -4
- package/chunks/{fr-YXRABLYZ.js → fr-HVFNU42H.js} +9 -1
- package/chunks/{gemini-QYSEGHAX.js → gemini-WQNFT6TR.js} +216 -90
- package/chunks/{geminiContentGenerator-J7YNZDYP.js → geminiContentGenerator-4QJH2JDP.js} +4 -4
- package/chunks/{glob-BRCSGFOT.js → glob-36TVLBWW.js} +28 -28
- package/chunks/{grep-EE2DUOSY.js → grep-QTYLNO2M.js} +26 -27
- package/chunks/{handleAutoUpdate-5NWTLR67.js → handleAutoUpdate-36FQFODK.js} +30 -31
- package/chunks/{i18n-BASPENNQ.js → i18n-JUGYPVSP.js} +27 -28
- package/chunks/initializer-OBBJUS25.js +72 -0
- package/chunks/{installationInfo-W6V4DT7W.js → installationInfo-MCKTPX64.js} +27 -28
- package/chunks/{ja-7VQOANVG.js → ja-PY5AF544.js} +10 -2
- package/chunks/{keychain-token-storage-VKUBNCP4.js → keychain-token-storage-AU22CQI6.js} +2 -2
- package/chunks/list-VW5QY4VJ.js +75 -0
- package/chunks/loadedSettingsAdapter-IELOOXG6.js +69 -0
- package/chunks/{loop-wakeup-WX7BLWWP.js → loop-wakeup-QXWZSCYM.js} +5 -5
- package/chunks/{ls-ZB2BDP6T.js → ls-2OUTG3IZ.js} +4 -4
- package/chunks/{lsp-V5DN4YUJ.js → lsp-4VMNXZW6.js} +2 -2
- package/chunks/mcp-Q3EC37ZS.js +69 -0
- package/chunks/{monitor-X5Z3H4FY.js → monitor-DCZ27AFR.js} +26 -27
- package/chunks/nonInteractiveCli-KXD7PFO4.js +128 -0
- package/chunks/{notebook-edit-TRM2QIJK.js → notebook-edit-YU4XF5LI.js} +27 -28
- package/chunks/{openaiContentGenerator-AAYONPMF.js → openaiContentGenerator-KL5WER2D.js} +13 -13
- package/chunks/{pidfile-D4I4FTVA.js → pidfile-WBOD7EJV.js} +27 -28
- package/chunks/processUtils-AOV4R34M.js +29 -0
- package/chunks/{pt-2C6YCSHL.js → pt-A3PRQXMU.js} +9 -1
- package/chunks/{qwenContentGenerator-K3HZ2H76.js → qwenContentGenerator-YIGBHYE3.js} +28 -29
- package/chunks/{qwenOAuth2-PJQ27GSO.js → qwenOAuth2-LEYOU7RU.js} +5 -5
- package/chunks/{read-file-7SZSIZOL.js → read-file-WVL4Y76X.js} +9 -9
- package/chunks/{read-mcp-resource-SM5DA4RG.js → read-mcp-resource-JUFHCKSC.js} +2 -2
- package/chunks/{record-artifact-4XKZX3UW.js → record-artifact-DWSMBXYY.js} +2 -2
- package/chunks/{ripGrep-YNPFVCZP.js → ripGrep-6GSWJERP.js} +26 -27
- package/chunks/{ru-6BBHVZZV.js → ru-IBCWUTOC.js} +9 -1
- package/chunks/{run-qwen-serve-DMWV5N6L.js → run-qwen-serve-QYUQMEDT.js} +1233 -371
- package/chunks/{runtime-57WWRVHN.js → runtime-K2YZCNB3.js} +42 -38
- package/chunks/{scheduler-YBLGWSIL.js → scheduler-EQCSN7QV.js} +26 -27
- package/chunks/{send-message-F36YD6KQ.js → send-message-JZ752NWD.js} +3 -3
- package/chunks/{serve-R63NK3CV.js → serve-DX5UGZD4.js} +36 -35
- package/chunks/{server-Z22GCAXP.js → server-T6HJH3DR.js} +5869 -1398
- package/chunks/{session-HKAAI7BN.js → session-SNU6ACY6.js} +299 -100
- package/chunks/{settings-3EYN66GK.js → settings-AKHZZNEL.js} +34 -33
- package/chunks/{shell-6YXINTWJ.js → shell-EY74IEZK.js} +28 -27
- package/chunks/{skill-OO57P4X6.js → skill-DPU62O3H.js} +11 -11
- package/chunks/{spawnChannel-JD7G4VU6.js → spawnChannel-RQZRWJ2V.js} +28 -30
- package/chunks/{src-G5UPLZSZ.js → src-7FITDSVC.js} +164 -52
- package/chunks/{standalone-update-OB7F4JPZ.js → standalone-update-XO3RK6DO.js} +28 -29
- package/chunks/{startInteractiveUI-73EGLIIH.js → startInteractiveUI-DVWZRHYQ.js} +728 -382
- package/chunks/{syntheticOutput-34H7LGA7.js → syntheticOutput-LELY6HAI.js} +3 -3
- package/chunks/{task-create-FRGOEIKY.js → task-create-QY3BIMNM.js} +8 -7
- package/chunks/{task-list-OW766BXZ.js → task-list-D2U47WBJ.js} +6 -5
- package/chunks/{task-stop-SIR5SNBN.js → task-stop-N6E5IYLH.js} +2 -2
- package/chunks/{task-update-YRA532MT.js → task-update-HJCQILLB.js} +8 -7
- package/chunks/{team-create-PECAAPXK.js → team-create-FOSRT62K.js} +26 -27
- package/chunks/{team-delete-6OSECUZC.js → team-delete-RCWYDRF4.js} +6 -5
- package/chunks/{team-plan-approval-L6F434RY.js → team-plan-approval-6VUDV27J.js} +26 -27
- package/chunks/{theme-manager-ZG4RY6GU.js → theme-manager-6UT6IO5T.js} +27 -28
- package/chunks/{todoWrite-YDMFEV4G.js → todoWrite-FKCGATPJ.js} +4 -4
- package/chunks/{tool-search-THVIWAPB.js → tool-search-ASSFMMN5.js} +10 -10
- package/chunks/{total-session-admission-JOKNRIIA.js → total-session-admission-YYWUO23H.js} +32 -35
- package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
- package/chunks/{trustedFolders-EOGT3UVS.js → trustedFolders-4BWV2IBK.js} +29 -29
- package/chunks/types-ML3TRJQ5.js +16 -0
- package/chunks/update-relaunch-74DLGH73.js +87 -0
- package/chunks/{updateCheck-2KYEYVSB.js → updateCheck-CRFCGFO5.js} +31 -30
- package/chunks/{validateNonInterActiveAuth-EN6ZQSR2.js → validateNonInterActiveAuth-BTTEPBGQ.js} +76 -73
- package/chunks/{version-3UEA6ZIR.js → version-Y5JE5Q63.js} +1 -1
- package/chunks/{web-fetch-PAAEQKBW.js → web-fetch-CFCWTCAP.js} +5 -6
- package/chunks/{workflow-QCCCMYP3.js → workflow-6WC7VPQN.js} +27 -28
- package/chunks/workspace-providers-status-RVG2C5ZS.js +72 -0
- package/chunks/workspace-registration-store-SLEU3D3X.js +27 -0
- package/chunks/{workspace-registry-24QFLQYH.js → workspace-registry-QMWGVOTF.js} +32 -35
- package/chunks/workspace-service-G572JSEU.js +84 -0
- package/chunks/workspace-skills-status-VSSMSMNK.js +71 -0
- package/chunks/{write-file-I3MUDRIE.js → write-file-5XVDRORP.js} +27 -28
- package/chunks/{zh-RQE7I22T.js → zh-PAUNIMHQ.js} +12 -2
- package/chunks/{zh-TW-TBPQGHKH.js → zh-TW-GNEUIUFF.js} +12 -2
- package/cli-entry.js +92 -8
- package/cli.js +11 -11
- package/locales/ca.js +16 -0
- package/locales/de.js +16 -0
- package/locales/en.js +19 -0
- package/locales/fr.js +16 -0
- package/locales/ja.js +17 -1
- package/locales/pt.js +16 -0
- package/locales/ru.js +16 -0
- package/locales/zh-TW.js +20 -1
- package/locales/zh.js +20 -1
- package/package.json +3 -3
- package/web-shell/assets/{arc-C15hqnJe.js → arc-vx1tRwnX.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-B-At37J_.js → architectureDiagram-3BPJPVTR-DBi6iUA1.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-B51wjcU7.js → blockDiagram-GPEHLZMM-Ga9JJ4Ak.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-xBK7BAwN.js → c4Diagram-AAUBKEIU-D8Vi5FYw.js} +1 -1
- package/web-shell/assets/channel-B29zQDTL.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-xKmLg7Yr.js → chunk-2J33WTMH-CSV6yQpU.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BfkdKZCM.js → chunk-4BX2VUAB-toYlppdI.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DT713sZf.js → chunk-55IACEB6-DbjzuyAr.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CYEeAamv.js → chunk-727SXJPM-IkkSjSkk.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DBN-5CFd.js → chunk-AQP2D5EJ-D5wUL6Zm.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CGZKk4PH.js → chunk-FMBD7UC4-C3o2DXG0.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-qQbC2O-y.js → chunk-ND2GUHAM-CutIi14T.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-B3zeXwsX.js → chunk-QZHKN3VN-DZ0NRHH-.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BNGI2SvC.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BNGI2SvC.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BKsl1Wvy.js → cose-bilkent-S5V4N54A-B3Dl88UJ.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-CuuuLiBK.js → dagre-BM42HDAG-DfTxfF6-.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CG4_eKiV.js → diagram-2AECGRRQ-CJyH98yO.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-DSFTmZB1.js → diagram-5GNKFQAL-EbOiJNmW.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BxwlEHn8.js → diagram-KO2AKTUF-AYNqpqqA.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BUAg-jMG.js → diagram-LMA3HP47-BY5VPa4H.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BFM2jlO5.js → diagram-OG6HWLK6-BhMYAKlk.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CerbFPa2.js → erDiagram-TEJ5UH35-Bp8S_F9l.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BNeZz5Zz.js → flowDiagram-I6XJVG4X-az3TE9PU.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CTOogLaM.js → ganttDiagram-6RSMTGT7-CfkAEpCe.js} +3 -3
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-yxSFkXPj.js → gitGraphDiagram-PVQCEYII-D1QmjMCy.js} +1 -1
- package/web-shell/assets/index-C8sDwQUv.js +1130 -0
- package/web-shell/assets/index-CaBoc5bb.js +3 -0
- package/web-shell/assets/index-Dpg5Wymg.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DYdAUevm.js → infoDiagram-5YYISTIA-D3ompLrG.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CNuijZ90.js → ishikawaDiagram-YF4QCWOH-D3MRWp9I.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-BTyiuonf.js → journeyDiagram-JHISSGLW-DVkKCa44.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-DPJo0Uow.js → kanban-definition-UN3LZRKU-BLif81wF.js} +1 -1
- package/web-shell/assets/{linear-C8wKCbIC.js → linear-BDU96EGS.js} +1 -1
- package/web-shell/assets/{mermaid.core-BV5o7nW5.js → mermaid.core-B-CwC26B.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BtLcBmSt.js → mindmap-definition-RKZ34NQL-CS1WOJ4G.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-C22J7A9Q.js → pieDiagram-4H26LBE5-BzgtNXVP.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DSL10wiL.js → quadrantDiagram-W4KKPZXB-BRfGC8MA.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-feqh0UpX.js → requirementDiagram-4Y6WPE33-CPBZkC7g.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js → sankeyDiagram-5OEKKPKP-nqNvinIk.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DIluIcb1.js → sequenceDiagram-3UESZ5HK-CM_Wdjh3.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-hlhnuoYH.js → stateDiagram-AJRCARHV-L0y-48VE.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BX1DdF8s.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-Dqf_CqgL.js → timeline-definition-PNZ67QCA-B_n5rb3A.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DD2QhaTX.js → vennDiagram-CIIHVFJN-C9NmLV5e.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-B2uI85U_.js → wardley-L42UT6IY-CrefK9gt.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-U1aJX71g.js → wardleyDiagram-YWT4CUSO-BUccf-bC.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-C0ODHUee.js → xychartDiagram-2RQKCTM6-DM6ef92l.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-524RQP4Q.js +0 -305
- package/chunks/chunk-CARU2RR2.js +0 -24
- package/chunks/chunk-CU3L64TP.js +0 -93
- package/chunks/chunk-OCPBI7J5.js +0 -18
- package/chunks/chunk-TEGEBB2I.js +0 -122
- package/chunks/chunk-VTU57BWZ.js +0 -30
- package/chunks/daemon-status-provider-B2UTZUJ2.js +0 -76
- package/chunks/initializer-UTQ7FB7G.js +0 -71
- package/chunks/list-DEICDL65.js +0 -74
- package/chunks/loadedSettingsAdapter-NOWEGDYJ.js +0 -68
- package/chunks/mcp-L5JXEEIA.js +0 -68
- package/chunks/nonInteractiveCli-LS2K4X6A.js +0 -124
- package/chunks/types-JNKGKUJT.js +0 -12
- package/chunks/workspace-providers-status-4KMGETOJ.js +0 -71
- package/chunks/workspace-service-RVLBMSMZ.js +0 -80
- package/chunks/workspace-skills-status-DS4ZVFTO.js +0 -70
- package/web-shell/assets/channel-CLiQD50f.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-D3sYqow5.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-D3sYqow5.js +0 -1
- package/web-shell/assets/index-D5IWFVk1.css +0 -5
- package/web-shell/assets/index-KFJRDhX7.js +0 -783
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BhQMwgpl.js +0 -1
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
relaunchApp
|
|
5
|
-
} from "./chunk-VTU57BWZ.js";
|
|
6
3
|
import {
|
|
7
4
|
CODE_FENCE_RE,
|
|
8
5
|
TABLE_MAX_ROW_LINES,
|
|
@@ -16,16 +13,17 @@ import {
|
|
|
16
13
|
getCommandSubcommandNames,
|
|
17
14
|
splitMarkdownTableRow,
|
|
18
15
|
useSessionStats
|
|
19
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-ZIVSSTUG.js";
|
|
20
17
|
import {
|
|
21
18
|
Colors,
|
|
22
19
|
RowMouseController,
|
|
23
20
|
SettingsContext,
|
|
21
|
+
layoutRowForEvent,
|
|
24
22
|
measureElementPosition,
|
|
25
23
|
useMouseEvents,
|
|
26
24
|
useSettings,
|
|
27
25
|
useTerminalSize
|
|
28
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-N45S36AH.js";
|
|
29
27
|
import {
|
|
30
28
|
CompactToolGroupDisplay,
|
|
31
29
|
SCREEN_READER_MODEL_PREFIX,
|
|
@@ -43,19 +41,18 @@ import {
|
|
|
43
41
|
calculateErrorRate,
|
|
44
42
|
computeDiffColumnWidths,
|
|
45
43
|
computeSessionStats,
|
|
44
|
+
estimateCompactToolGroupHeight,
|
|
46
45
|
getSystemInfoFields,
|
|
47
46
|
isCollapsibleTool,
|
|
48
47
|
levelLabel,
|
|
49
48
|
useKeypress,
|
|
49
|
+
wrapAnsi,
|
|
50
50
|
wrapForMultiplexer
|
|
51
|
-
} from "./chunk-
|
|
52
|
-
import {
|
|
53
|
-
isTerminalGoalStatusKind
|
|
54
|
-
} from "./chunk-7X7TEQNX.js";
|
|
51
|
+
} from "./chunk-NA3IG6XG.js";
|
|
55
52
|
import {
|
|
56
53
|
MINIMUM_MAX_HEIGHT,
|
|
57
54
|
MaxSizedBox
|
|
58
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-SMGBWLNU.js";
|
|
59
56
|
import {
|
|
60
57
|
Box_default,
|
|
61
58
|
Static,
|
|
@@ -65,53 +62,57 @@ import {
|
|
|
65
62
|
theme,
|
|
66
63
|
use_is_screen_reader_enabled_default,
|
|
67
64
|
use_stdin_default
|
|
68
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-OVIV236K.js";
|
|
66
|
+
import {
|
|
67
|
+
relaunchApp
|
|
68
|
+
} from "./chunk-SJSI7PXU.js";
|
|
69
|
+
import {
|
|
70
|
+
isTerminalGoalStatusKind
|
|
71
|
+
} from "./chunk-7X7TEQNX.js";
|
|
69
72
|
import {
|
|
70
73
|
require_react
|
|
71
74
|
} from "./chunk-HTHUX2T5.js";
|
|
72
75
|
import {
|
|
73
76
|
resolveColor,
|
|
74
77
|
themeManager
|
|
75
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-Q6TUALBE.js";
|
|
76
79
|
import {
|
|
77
80
|
cpLen,
|
|
78
81
|
cpSlice,
|
|
79
82
|
escapeAnsiCtrlCodes,
|
|
80
83
|
getCachedStringWidth,
|
|
84
|
+
sanitizeMultilineForDisplay,
|
|
81
85
|
sanitizeSensitiveText,
|
|
82
86
|
sanitizeTerminalText,
|
|
83
87
|
stringWidth,
|
|
84
88
|
stripUnsafeCharacters,
|
|
85
89
|
toCodePoints,
|
|
86
90
|
wrapToVisualLines
|
|
87
|
-
} from "./chunk-
|
|
88
|
-
import {
|
|
89
|
-
eastAsianWidth
|
|
90
|
-
} from "./chunk-QHTIBUWB.js";
|
|
91
|
-
import {
|
|
92
|
-
require_has_flag,
|
|
93
|
-
require_source
|
|
94
|
-
} from "./chunk-57OAHC2Y.js";
|
|
91
|
+
} from "./chunk-MFNKBXYH.js";
|
|
95
92
|
import {
|
|
96
93
|
formatDuration,
|
|
97
94
|
formatMemoryUsage,
|
|
98
95
|
formatRelativeTime,
|
|
99
96
|
formatTokenCount
|
|
100
97
|
} from "./chunk-E5Z2AVNV.js";
|
|
98
|
+
import {
|
|
99
|
+
require_has_flag,
|
|
100
|
+
require_source
|
|
101
|
+
} from "./chunk-57OAHC2Y.js";
|
|
101
102
|
import {
|
|
102
103
|
createLoadedSettingsAdapter
|
|
103
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-EZWX232B.js";
|
|
104
105
|
import {
|
|
105
106
|
getPersistScopeForModelSelection
|
|
106
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-TIKDHS6V.js";
|
|
107
108
|
import {
|
|
108
109
|
getCurrentLanguage,
|
|
109
110
|
localizeToolDisplayName,
|
|
110
111
|
t
|
|
111
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-7GM2RWCR.js";
|
|
112
113
|
import {
|
|
113
114
|
isWorkspaceTrusted
|
|
114
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-QDTGDM2T.js";
|
|
115
116
|
import {
|
|
116
117
|
ALL_PROVIDERS,
|
|
117
118
|
IdeClient,
|
|
@@ -132,21 +133,23 @@ import {
|
|
|
132
133
|
resolveMetadataKey,
|
|
133
134
|
resolveOwnsModel,
|
|
134
135
|
stripAnsi
|
|
135
|
-
} from "./chunk-
|
|
136
|
+
} from "./chunk-SA6QVLWI.js";
|
|
136
137
|
import {
|
|
137
138
|
MAIN_SOURCE,
|
|
138
|
-
|
|
139
|
-
|
|
139
|
+
formatVisionBridgeNoticeDisplay,
|
|
140
|
+
getMCPServerStatus,
|
|
141
|
+
isVisionBridgeNoticeDisplay
|
|
142
|
+
} from "./chunk-YYBZUIPL.js";
|
|
140
143
|
import {
|
|
141
144
|
ToolDisplayNames,
|
|
142
145
|
ToolNames,
|
|
143
146
|
ToolNamesMigration
|
|
144
|
-
} from "./chunk-
|
|
147
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
145
148
|
import {
|
|
146
149
|
createDebugLogger,
|
|
147
150
|
escapePath,
|
|
148
151
|
unescapePath
|
|
149
|
-
} from "./chunk-
|
|
152
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
150
153
|
import {
|
|
151
154
|
init_esbuild_shims
|
|
152
155
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2533,679 +2536,6 @@ __name(colorizeCode, "colorizeCode");
|
|
|
2533
2536
|
// packages/cli/src/ui/utils/TableRenderer.tsx
|
|
2534
2537
|
init_esbuild_shims();
|
|
2535
2538
|
|
|
2536
|
-
// packages/cli/node_modules/wrap-ansi/index.js
|
|
2537
|
-
init_esbuild_shims();
|
|
2538
|
-
|
|
2539
|
-
// packages/cli/node_modules/wrap-ansi/node_modules/string-width/index.js
|
|
2540
|
-
init_esbuild_shims();
|
|
2541
|
-
var segmenter = new Intl.Segmenter();
|
|
2542
|
-
var zeroWidthClusterRegex = new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Format}|\\p{Mark}|\\p{Surrogate})+$", "v");
|
|
2543
|
-
var leadingNonPrintingRegex = new RegExp("^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+", "v");
|
|
2544
|
-
var rgiEmojiRegex = new RegExp("^\\p{RGI_Emoji}$", "v");
|
|
2545
|
-
var unqualifiedKeycapRegex = /^[\d#*]\u20E3$/;
|
|
2546
|
-
var extendedPictographicRegex = new RegExp("\\p{Extended_Pictographic}", "gu");
|
|
2547
|
-
function isDoubleWidthNonRgiEmojiSequence(segment) {
|
|
2548
|
-
if (segment.length > 50) {
|
|
2549
|
-
return false;
|
|
2550
|
-
}
|
|
2551
|
-
if (unqualifiedKeycapRegex.test(segment)) {
|
|
2552
|
-
return true;
|
|
2553
|
-
}
|
|
2554
|
-
if (segment.includes("\u200D")) {
|
|
2555
|
-
const pictographics = segment.match(extendedPictographicRegex);
|
|
2556
|
-
return pictographics !== null && pictographics.length >= 2;
|
|
2557
|
-
}
|
|
2558
|
-
return false;
|
|
2559
|
-
}
|
|
2560
|
-
__name(isDoubleWidthNonRgiEmojiSequence, "isDoubleWidthNonRgiEmojiSequence");
|
|
2561
|
-
function baseVisible(segment) {
|
|
2562
|
-
return segment.replace(leadingNonPrintingRegex, "");
|
|
2563
|
-
}
|
|
2564
|
-
__name(baseVisible, "baseVisible");
|
|
2565
|
-
function isZeroWidthCluster(segment) {
|
|
2566
|
-
return zeroWidthClusterRegex.test(segment);
|
|
2567
|
-
}
|
|
2568
|
-
__name(isZeroWidthCluster, "isZeroWidthCluster");
|
|
2569
|
-
function isHangulLeadingJamo(codePoint) {
|
|
2570
|
-
return codePoint >= 4352 && codePoint <= 4447 || codePoint >= 43360 && codePoint <= 43388;
|
|
2571
|
-
}
|
|
2572
|
-
__name(isHangulLeadingJamo, "isHangulLeadingJamo");
|
|
2573
|
-
function isHangulVowelJamo(codePoint) {
|
|
2574
|
-
return codePoint >= 4448 && codePoint <= 4519 || codePoint >= 55216 && codePoint <= 55238;
|
|
2575
|
-
}
|
|
2576
|
-
__name(isHangulVowelJamo, "isHangulVowelJamo");
|
|
2577
|
-
function isHangulTrailingJamo(codePoint) {
|
|
2578
|
-
return codePoint >= 4520 && codePoint <= 4607 || codePoint >= 55243 && codePoint <= 55291;
|
|
2579
|
-
}
|
|
2580
|
-
__name(isHangulTrailingJamo, "isHangulTrailingJamo");
|
|
2581
|
-
function isHangulJamo(codePoint) {
|
|
2582
|
-
return isHangulLeadingJamo(codePoint) || isHangulVowelJamo(codePoint) || isHangulTrailingJamo(codePoint);
|
|
2583
|
-
}
|
|
2584
|
-
__name(isHangulJamo, "isHangulJamo");
|
|
2585
|
-
function hangulClusterWidth(visibleSegment, eastAsianWidthOptions) {
|
|
2586
|
-
const codePoints = [];
|
|
2587
|
-
for (const character of visibleSegment) {
|
|
2588
|
-
if (zeroWidthClusterRegex.test(character)) {
|
|
2589
|
-
continue;
|
|
2590
|
-
}
|
|
2591
|
-
codePoints.push(character.codePointAt(0));
|
|
2592
|
-
}
|
|
2593
|
-
if (codePoints.length === 0) {
|
|
2594
|
-
return void 0;
|
|
2595
|
-
}
|
|
2596
|
-
let width = 0;
|
|
2597
|
-
for (let index = 0; index < codePoints.length; index++) {
|
|
2598
|
-
const codePoint = codePoints[index];
|
|
2599
|
-
if (!isHangulJamo(codePoint)) {
|
|
2600
|
-
if (width === 0) {
|
|
2601
|
-
return void 0;
|
|
2602
|
-
}
|
|
2603
|
-
for (let remaining = index; remaining < codePoints.length; remaining++) {
|
|
2604
|
-
width += eastAsianWidth(codePoints[remaining], eastAsianWidthOptions);
|
|
2605
|
-
}
|
|
2606
|
-
return width;
|
|
2607
|
-
}
|
|
2608
|
-
if (isHangulLeadingJamo(codePoint) && isHangulVowelJamo(codePoints[index + 1])) {
|
|
2609
|
-
width += 2;
|
|
2610
|
-
index += isHangulTrailingJamo(codePoints[index + 2]) ? 2 : 1;
|
|
2611
|
-
continue;
|
|
2612
|
-
}
|
|
2613
|
-
width += eastAsianWidth(codePoint, eastAsianWidthOptions);
|
|
2614
|
-
}
|
|
2615
|
-
return width;
|
|
2616
|
-
}
|
|
2617
|
-
__name(hangulClusterWidth, "hangulClusterWidth");
|
|
2618
|
-
function trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions) {
|
|
2619
|
-
let extra = 0;
|
|
2620
|
-
let first = true;
|
|
2621
|
-
for (const character of visibleSegment) {
|
|
2622
|
-
if (first) {
|
|
2623
|
-
first = false;
|
|
2624
|
-
continue;
|
|
2625
|
-
}
|
|
2626
|
-
if (character >= "\uFF00" && character <= "\uFFEF") {
|
|
2627
|
-
extra += eastAsianWidth(character.codePointAt(0), eastAsianWidthOptions);
|
|
2628
|
-
}
|
|
2629
|
-
}
|
|
2630
|
-
return extra;
|
|
2631
|
-
}
|
|
2632
|
-
__name(trailingHalfwidthWidth, "trailingHalfwidthWidth");
|
|
2633
|
-
function stringWidth2(input, options = {}) {
|
|
2634
|
-
if (typeof input !== "string" || input.length === 0) {
|
|
2635
|
-
return 0;
|
|
2636
|
-
}
|
|
2637
|
-
const {
|
|
2638
|
-
ambiguousIsNarrow = true,
|
|
2639
|
-
countAnsiEscapeCodes = false
|
|
2640
|
-
} = options;
|
|
2641
|
-
let string = input;
|
|
2642
|
-
if (!countAnsiEscapeCodes && (string.includes("\x1B") || string.includes("\x9B"))) {
|
|
2643
|
-
string = stripAnsi(string);
|
|
2644
|
-
}
|
|
2645
|
-
if (string.length === 0) {
|
|
2646
|
-
return 0;
|
|
2647
|
-
}
|
|
2648
|
-
if (/^[\u0020-\u007E]*$/.test(string)) {
|
|
2649
|
-
return string.length;
|
|
2650
|
-
}
|
|
2651
|
-
let width = 0;
|
|
2652
|
-
const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
|
|
2653
|
-
for (const { segment } of segmenter.segment(string)) {
|
|
2654
|
-
if (isZeroWidthCluster(segment)) {
|
|
2655
|
-
continue;
|
|
2656
|
-
}
|
|
2657
|
-
if (rgiEmojiRegex.test(segment) || isDoubleWidthNonRgiEmojiSequence(segment)) {
|
|
2658
|
-
width += 2;
|
|
2659
|
-
continue;
|
|
2660
|
-
}
|
|
2661
|
-
const visibleSegment = baseVisible(segment);
|
|
2662
|
-
const hangulWidth = hangulClusterWidth(visibleSegment, eastAsianWidthOptions);
|
|
2663
|
-
if (hangulWidth !== void 0) {
|
|
2664
|
-
width += hangulWidth;
|
|
2665
|
-
continue;
|
|
2666
|
-
}
|
|
2667
|
-
const codePoint = visibleSegment.codePointAt(0);
|
|
2668
|
-
width += eastAsianWidth(codePoint, eastAsianWidthOptions);
|
|
2669
|
-
width += trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions);
|
|
2670
|
-
}
|
|
2671
|
-
return width;
|
|
2672
|
-
}
|
|
2673
|
-
__name(stringWidth2, "stringWidth");
|
|
2674
|
-
|
|
2675
|
-
// packages/cli/node_modules/ansi-styles/index.js
|
|
2676
|
-
init_esbuild_shims();
|
|
2677
|
-
var ANSI_BACKGROUND_OFFSET = 10;
|
|
2678
|
-
var wrapAnsi16 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${code + offset}m`, "wrapAnsi16");
|
|
2679
|
-
var wrapAnsi256 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`, "wrapAnsi256");
|
|
2680
|
-
var wrapAnsi16m = /* @__PURE__ */ __name((offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`, "wrapAnsi16m");
|
|
2681
|
-
var styles = {
|
|
2682
|
-
modifier: {
|
|
2683
|
-
reset: [0, 0],
|
|
2684
|
-
// 21 isn't widely supported and 22 does the same thing
|
|
2685
|
-
bold: [1, 22],
|
|
2686
|
-
dim: [2, 22],
|
|
2687
|
-
italic: [3, 23],
|
|
2688
|
-
underline: [4, 24],
|
|
2689
|
-
overline: [53, 55],
|
|
2690
|
-
inverse: [7, 27],
|
|
2691
|
-
hidden: [8, 28],
|
|
2692
|
-
strikethrough: [9, 29]
|
|
2693
|
-
},
|
|
2694
|
-
color: {
|
|
2695
|
-
black: [30, 39],
|
|
2696
|
-
red: [31, 39],
|
|
2697
|
-
green: [32, 39],
|
|
2698
|
-
yellow: [33, 39],
|
|
2699
|
-
blue: [34, 39],
|
|
2700
|
-
magenta: [35, 39],
|
|
2701
|
-
cyan: [36, 39],
|
|
2702
|
-
white: [37, 39],
|
|
2703
|
-
// Bright color
|
|
2704
|
-
blackBright: [90, 39],
|
|
2705
|
-
gray: [90, 39],
|
|
2706
|
-
// Alias of `blackBright`
|
|
2707
|
-
grey: [90, 39],
|
|
2708
|
-
// Alias of `blackBright`
|
|
2709
|
-
redBright: [91, 39],
|
|
2710
|
-
greenBright: [92, 39],
|
|
2711
|
-
yellowBright: [93, 39],
|
|
2712
|
-
blueBright: [94, 39],
|
|
2713
|
-
magentaBright: [95, 39],
|
|
2714
|
-
cyanBright: [96, 39],
|
|
2715
|
-
whiteBright: [97, 39]
|
|
2716
|
-
},
|
|
2717
|
-
bgColor: {
|
|
2718
|
-
bgBlack: [40, 49],
|
|
2719
|
-
bgRed: [41, 49],
|
|
2720
|
-
bgGreen: [42, 49],
|
|
2721
|
-
bgYellow: [43, 49],
|
|
2722
|
-
bgBlue: [44, 49],
|
|
2723
|
-
bgMagenta: [45, 49],
|
|
2724
|
-
bgCyan: [46, 49],
|
|
2725
|
-
bgWhite: [47, 49],
|
|
2726
|
-
// Bright color
|
|
2727
|
-
bgBlackBright: [100, 49],
|
|
2728
|
-
bgGray: [100, 49],
|
|
2729
|
-
// Alias of `bgBlackBright`
|
|
2730
|
-
bgGrey: [100, 49],
|
|
2731
|
-
// Alias of `bgBlackBright`
|
|
2732
|
-
bgRedBright: [101, 49],
|
|
2733
|
-
bgGreenBright: [102, 49],
|
|
2734
|
-
bgYellowBright: [103, 49],
|
|
2735
|
-
bgBlueBright: [104, 49],
|
|
2736
|
-
bgMagentaBright: [105, 49],
|
|
2737
|
-
bgCyanBright: [106, 49],
|
|
2738
|
-
bgWhiteBright: [107, 49]
|
|
2739
|
-
}
|
|
2740
|
-
};
|
|
2741
|
-
var modifierNames = Object.keys(styles.modifier);
|
|
2742
|
-
var foregroundColorNames = Object.keys(styles.color);
|
|
2743
|
-
var backgroundColorNames = Object.keys(styles.bgColor);
|
|
2744
|
-
var colorNames = [...foregroundColorNames, ...backgroundColorNames];
|
|
2745
|
-
function assembleStyles() {
|
|
2746
|
-
const codes = /* @__PURE__ */ new Map();
|
|
2747
|
-
for (const [groupName, group] of Object.entries(styles)) {
|
|
2748
|
-
for (const [styleName, style] of Object.entries(group)) {
|
|
2749
|
-
styles[styleName] = {
|
|
2750
|
-
open: `\x1B[${style[0]}m`,
|
|
2751
|
-
close: `\x1B[${style[1]}m`
|
|
2752
|
-
};
|
|
2753
|
-
group[styleName] = styles[styleName];
|
|
2754
|
-
codes.set(style[0], style[1]);
|
|
2755
|
-
}
|
|
2756
|
-
Object.defineProperty(styles, groupName, {
|
|
2757
|
-
value: group,
|
|
2758
|
-
enumerable: false
|
|
2759
|
-
});
|
|
2760
|
-
}
|
|
2761
|
-
Object.defineProperty(styles, "codes", {
|
|
2762
|
-
value: codes,
|
|
2763
|
-
enumerable: false
|
|
2764
|
-
});
|
|
2765
|
-
styles.color.close = "\x1B[39m";
|
|
2766
|
-
styles.bgColor.close = "\x1B[49m";
|
|
2767
|
-
styles.color.ansi = wrapAnsi16();
|
|
2768
|
-
styles.color.ansi256 = wrapAnsi256();
|
|
2769
|
-
styles.color.ansi16m = wrapAnsi16m();
|
|
2770
|
-
styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
|
|
2771
|
-
styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
|
|
2772
|
-
styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
|
|
2773
|
-
Object.defineProperties(styles, {
|
|
2774
|
-
rgbToAnsi256: {
|
|
2775
|
-
value(red, green, blue) {
|
|
2776
|
-
if (red === green && green === blue) {
|
|
2777
|
-
if (red < 8) {
|
|
2778
|
-
return 16;
|
|
2779
|
-
}
|
|
2780
|
-
if (red > 248) {
|
|
2781
|
-
return 231;
|
|
2782
|
-
}
|
|
2783
|
-
return Math.round((red - 8) / 247 * 24) + 232;
|
|
2784
|
-
}
|
|
2785
|
-
return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
|
|
2786
|
-
},
|
|
2787
|
-
enumerable: false
|
|
2788
|
-
},
|
|
2789
|
-
hexToRgb: {
|
|
2790
|
-
value(hex) {
|
|
2791
|
-
const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
|
|
2792
|
-
if (!matches) {
|
|
2793
|
-
return [0, 0, 0];
|
|
2794
|
-
}
|
|
2795
|
-
let [colorString] = matches;
|
|
2796
|
-
if (colorString.length === 3) {
|
|
2797
|
-
colorString = [...colorString].map((character) => character + character).join("");
|
|
2798
|
-
}
|
|
2799
|
-
const integer = Number.parseInt(colorString, 16);
|
|
2800
|
-
return [
|
|
2801
|
-
/* eslint-disable no-bitwise */
|
|
2802
|
-
integer >> 16 & 255,
|
|
2803
|
-
integer >> 8 & 255,
|
|
2804
|
-
integer & 255
|
|
2805
|
-
/* eslint-enable no-bitwise */
|
|
2806
|
-
];
|
|
2807
|
-
},
|
|
2808
|
-
enumerable: false
|
|
2809
|
-
},
|
|
2810
|
-
hexToAnsi256: {
|
|
2811
|
-
value: /* @__PURE__ */ __name((hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)), "value"),
|
|
2812
|
-
enumerable: false
|
|
2813
|
-
},
|
|
2814
|
-
ansi256ToAnsi: {
|
|
2815
|
-
value(code) {
|
|
2816
|
-
if (code < 8) {
|
|
2817
|
-
return 30 + code;
|
|
2818
|
-
}
|
|
2819
|
-
if (code < 16) {
|
|
2820
|
-
return 90 + (code - 8);
|
|
2821
|
-
}
|
|
2822
|
-
let red;
|
|
2823
|
-
let green;
|
|
2824
|
-
let blue;
|
|
2825
|
-
if (code >= 232) {
|
|
2826
|
-
red = ((code - 232) * 10 + 8) / 255;
|
|
2827
|
-
green = red;
|
|
2828
|
-
blue = red;
|
|
2829
|
-
} else {
|
|
2830
|
-
code -= 16;
|
|
2831
|
-
const remainder = code % 36;
|
|
2832
|
-
red = Math.floor(code / 36) / 5;
|
|
2833
|
-
green = Math.floor(remainder / 6) / 5;
|
|
2834
|
-
blue = remainder % 6 / 5;
|
|
2835
|
-
}
|
|
2836
|
-
const value = Math.max(red, green, blue) * 2;
|
|
2837
|
-
if (value === 0) {
|
|
2838
|
-
return 30;
|
|
2839
|
-
}
|
|
2840
|
-
let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
|
|
2841
|
-
if (value === 2) {
|
|
2842
|
-
result += 60;
|
|
2843
|
-
}
|
|
2844
|
-
return result;
|
|
2845
|
-
},
|
|
2846
|
-
enumerable: false
|
|
2847
|
-
},
|
|
2848
|
-
rgbToAnsi: {
|
|
2849
|
-
value: /* @__PURE__ */ __name((red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)), "value"),
|
|
2850
|
-
enumerable: false
|
|
2851
|
-
},
|
|
2852
|
-
hexToAnsi: {
|
|
2853
|
-
value: /* @__PURE__ */ __name((hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)), "value"),
|
|
2854
|
-
enumerable: false
|
|
2855
|
-
}
|
|
2856
|
-
});
|
|
2857
|
-
return styles;
|
|
2858
|
-
}
|
|
2859
|
-
__name(assembleStyles, "assembleStyles");
|
|
2860
|
-
var ansiStyles = assembleStyles();
|
|
2861
|
-
var ansi_styles_default = ansiStyles;
|
|
2862
|
-
|
|
2863
|
-
// packages/cli/node_modules/wrap-ansi/index.js
|
|
2864
|
-
var ANSI_ESCAPE = "\x1B";
|
|
2865
|
-
var ANSI_ESCAPE_CSI = "\x9B";
|
|
2866
|
-
var ESCAPES = /* @__PURE__ */ new Set([
|
|
2867
|
-
ANSI_ESCAPE,
|
|
2868
|
-
ANSI_ESCAPE_CSI
|
|
2869
|
-
]);
|
|
2870
|
-
var ANSI_ESCAPE_BELL = "\x07";
|
|
2871
|
-
var ANSI_CSI = "[";
|
|
2872
|
-
var ANSI_OSC = "]";
|
|
2873
|
-
var ANSI_SGR_TERMINATOR = "m";
|
|
2874
|
-
var ANSI_SGR_RESET = 0;
|
|
2875
|
-
var ANSI_SGR_RESET_FOREGROUND = 39;
|
|
2876
|
-
var ANSI_SGR_RESET_BACKGROUND = 49;
|
|
2877
|
-
var ANSI_SGR_RESET_UNDERLINE_COLOR = 59;
|
|
2878
|
-
var ANSI_SGR_FOREGROUND_EXTENDED = 38;
|
|
2879
|
-
var ANSI_SGR_BACKGROUND_EXTENDED = 48;
|
|
2880
|
-
var ANSI_SGR_UNDERLINE_COLOR_EXTENDED = 58;
|
|
2881
|
-
var ANSI_SGR_COLOR_MODE_256 = 5;
|
|
2882
|
-
var ANSI_SGR_COLOR_MODE_RGB = 2;
|
|
2883
|
-
var ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;
|
|
2884
|
-
var ANSI_ESCAPE_REGEX = new RegExp(`^\\u001B(?:\\${ANSI_CSI}(?<sgr>[0-9;]*)${ANSI_SGR_TERMINATOR}|${ANSI_ESCAPE_LINK}(?<uri>[^\\u0007\\u001B]*)(?:\\u0007|\\u001B\\\\))`);
|
|
2885
|
-
var ANSI_ESCAPE_CSI_REGEX = new RegExp(`^\\u009B(?<sgr>[0-9;]*)${ANSI_SGR_TERMINATOR}`);
|
|
2886
|
-
var ANSI_SGR_MODIFIER_CLOSE_CODES = new Set(ansi_styles_default.codes.values());
|
|
2887
|
-
ANSI_SGR_MODIFIER_CLOSE_CODES.delete(ANSI_SGR_RESET);
|
|
2888
|
-
var segmenter2 = new Intl.Segmenter();
|
|
2889
|
-
var getGraphemes = /* @__PURE__ */ __name((string) => Array.from(segmenter2.segment(string), ({ segment }) => segment), "getGraphemes");
|
|
2890
|
-
var TAB_SIZE = 8;
|
|
2891
|
-
var wrapAnsiCode = /* @__PURE__ */ __name((code) => `${ANSI_ESCAPE}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`, "wrapAnsiCode");
|
|
2892
|
-
var wrapAnsiHyperlink = /* @__PURE__ */ __name((url) => `${ANSI_ESCAPE}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`, "wrapAnsiHyperlink");
|
|
2893
|
-
var getSgrTokens = /* @__PURE__ */ __name((sgrParameters) => {
|
|
2894
|
-
const codes = sgrParameters.split(";").map((sgrParameter) => sgrParameter === "" ? ANSI_SGR_RESET : Number.parseInt(sgrParameter, 10));
|
|
2895
|
-
const sgrTokens = [];
|
|
2896
|
-
for (let index = 0; index < codes.length; index++) {
|
|
2897
|
-
const code = codes[index];
|
|
2898
|
-
if (!Number.isFinite(code)) {
|
|
2899
|
-
continue;
|
|
2900
|
-
}
|
|
2901
|
-
if (code === ANSI_SGR_FOREGROUND_EXTENDED || code === ANSI_SGR_BACKGROUND_EXTENDED || code === ANSI_SGR_UNDERLINE_COLOR_EXTENDED) {
|
|
2902
|
-
if (index + 1 >= codes.length) {
|
|
2903
|
-
break;
|
|
2904
|
-
}
|
|
2905
|
-
const mode = codes[index + 1];
|
|
2906
|
-
if (mode === ANSI_SGR_COLOR_MODE_256 && Number.isFinite(codes[index + 2])) {
|
|
2907
|
-
sgrTokens.push([code, mode, codes[index + 2]]);
|
|
2908
|
-
index += 2;
|
|
2909
|
-
continue;
|
|
2910
|
-
}
|
|
2911
|
-
const red = codes[index + 2];
|
|
2912
|
-
const green = codes[index + 3];
|
|
2913
|
-
const blue = codes[index + 4];
|
|
2914
|
-
if (mode === ANSI_SGR_COLOR_MODE_RGB && Number.isFinite(red) && Number.isFinite(green) && Number.isFinite(blue)) {
|
|
2915
|
-
sgrTokens.push([code, mode, red, green, blue]);
|
|
2916
|
-
index += 4;
|
|
2917
|
-
continue;
|
|
2918
|
-
}
|
|
2919
|
-
break;
|
|
2920
|
-
}
|
|
2921
|
-
sgrTokens.push([code]);
|
|
2922
|
-
}
|
|
2923
|
-
return sgrTokens;
|
|
2924
|
-
}, "getSgrTokens");
|
|
2925
|
-
var removeActiveStyle = /* @__PURE__ */ __name((activeStyles, family) => {
|
|
2926
|
-
const activeStyleIndex = activeStyles.findIndex((activeStyle) => activeStyle.family === family);
|
|
2927
|
-
if (activeStyleIndex !== -1) {
|
|
2928
|
-
activeStyles.splice(activeStyleIndex, 1);
|
|
2929
|
-
}
|
|
2930
|
-
}, "removeActiveStyle");
|
|
2931
|
-
var upsertActiveStyle = /* @__PURE__ */ __name((activeStyles, nextActiveStyle) => {
|
|
2932
|
-
removeActiveStyle(activeStyles, nextActiveStyle.family);
|
|
2933
|
-
activeStyles.push(nextActiveStyle);
|
|
2934
|
-
}, "upsertActiveStyle");
|
|
2935
|
-
var removeModifierStylesByClose = /* @__PURE__ */ __name((activeStyles, closeCode) => {
|
|
2936
|
-
for (let index = activeStyles.length - 1; index >= 0; index--) {
|
|
2937
|
-
const activeStyle = activeStyles[index];
|
|
2938
|
-
if (activeStyle.family.startsWith("modifier-") && activeStyle.close === closeCode) {
|
|
2939
|
-
activeStyles.splice(index, 1);
|
|
2940
|
-
}
|
|
2941
|
-
}
|
|
2942
|
-
}, "removeModifierStylesByClose");
|
|
2943
|
-
var getColorStyle = /* @__PURE__ */ __name((code, sgrToken) => {
|
|
2944
|
-
if (code >= 30 && code <= 37 || code >= 90 && code <= 97 || code === ANSI_SGR_FOREGROUND_EXTENDED && sgrToken.length > 1) {
|
|
2945
|
-
return {
|
|
2946
|
-
family: "foreground",
|
|
2947
|
-
open: sgrToken.join(";"),
|
|
2948
|
-
close: ANSI_SGR_RESET_FOREGROUND
|
|
2949
|
-
};
|
|
2950
|
-
}
|
|
2951
|
-
if (code >= 40 && code <= 47 || code >= 100 && code <= 107 || code === ANSI_SGR_BACKGROUND_EXTENDED && sgrToken.length > 1) {
|
|
2952
|
-
return {
|
|
2953
|
-
family: "background",
|
|
2954
|
-
open: sgrToken.join(";"),
|
|
2955
|
-
close: ANSI_SGR_RESET_BACKGROUND
|
|
2956
|
-
};
|
|
2957
|
-
}
|
|
2958
|
-
if (code === ANSI_SGR_UNDERLINE_COLOR_EXTENDED && sgrToken.length > 1) {
|
|
2959
|
-
return {
|
|
2960
|
-
family: "underlineColor",
|
|
2961
|
-
open: sgrToken.join(";"),
|
|
2962
|
-
close: ANSI_SGR_RESET_UNDERLINE_COLOR
|
|
2963
|
-
};
|
|
2964
|
-
}
|
|
2965
|
-
}, "getColorStyle");
|
|
2966
|
-
var applySgrResetCode = /* @__PURE__ */ __name((code, activeStyles) => {
|
|
2967
|
-
if (code === ANSI_SGR_RESET) {
|
|
2968
|
-
activeStyles.length = 0;
|
|
2969
|
-
return true;
|
|
2970
|
-
}
|
|
2971
|
-
if (code === ANSI_SGR_RESET_FOREGROUND) {
|
|
2972
|
-
removeActiveStyle(activeStyles, "foreground");
|
|
2973
|
-
return true;
|
|
2974
|
-
}
|
|
2975
|
-
if (code === ANSI_SGR_RESET_BACKGROUND) {
|
|
2976
|
-
removeActiveStyle(activeStyles, "background");
|
|
2977
|
-
return true;
|
|
2978
|
-
}
|
|
2979
|
-
if (code === ANSI_SGR_RESET_UNDERLINE_COLOR) {
|
|
2980
|
-
removeActiveStyle(activeStyles, "underlineColor");
|
|
2981
|
-
return true;
|
|
2982
|
-
}
|
|
2983
|
-
if (ANSI_SGR_MODIFIER_CLOSE_CODES.has(code)) {
|
|
2984
|
-
removeModifierStylesByClose(activeStyles, code);
|
|
2985
|
-
return true;
|
|
2986
|
-
}
|
|
2987
|
-
return false;
|
|
2988
|
-
}, "applySgrResetCode");
|
|
2989
|
-
var applySgrToken = /* @__PURE__ */ __name((sgrToken, activeStyles) => {
|
|
2990
|
-
const [code] = sgrToken;
|
|
2991
|
-
if (applySgrResetCode(code, activeStyles)) {
|
|
2992
|
-
return;
|
|
2993
|
-
}
|
|
2994
|
-
const colorStyle = getColorStyle(code, sgrToken);
|
|
2995
|
-
if (colorStyle) {
|
|
2996
|
-
upsertActiveStyle(activeStyles, colorStyle);
|
|
2997
|
-
return;
|
|
2998
|
-
}
|
|
2999
|
-
const close = ansi_styles_default.codes.get(code);
|
|
3000
|
-
if (close !== void 0 && close !== ANSI_SGR_RESET) {
|
|
3001
|
-
upsertActiveStyle(activeStyles, {
|
|
3002
|
-
family: `modifier-${code}`,
|
|
3003
|
-
open: sgrToken.join(";"),
|
|
3004
|
-
close
|
|
3005
|
-
});
|
|
3006
|
-
}
|
|
3007
|
-
}, "applySgrToken");
|
|
3008
|
-
var applySgrParameters = /* @__PURE__ */ __name((sgrParameters, activeStyles) => {
|
|
3009
|
-
for (const sgrToken of getSgrTokens(sgrParameters)) {
|
|
3010
|
-
applySgrToken(sgrToken, activeStyles);
|
|
3011
|
-
}
|
|
3012
|
-
}, "applySgrParameters");
|
|
3013
|
-
var applySgrResets = /* @__PURE__ */ __name((sgrParameters, activeStyles) => {
|
|
3014
|
-
for (const sgrToken of getSgrTokens(sgrParameters)) {
|
|
3015
|
-
const [code] = sgrToken;
|
|
3016
|
-
applySgrResetCode(code, activeStyles);
|
|
3017
|
-
}
|
|
3018
|
-
}, "applySgrResets");
|
|
3019
|
-
var applyLeadingSgrResets = /* @__PURE__ */ __name((string, activeStyles) => {
|
|
3020
|
-
let remainder = string;
|
|
3021
|
-
while (remainder.length > 0) {
|
|
3022
|
-
if (remainder.startsWith(ANSI_ESCAPE) && remainder[1] !== "\\") {
|
|
3023
|
-
const match = ANSI_ESCAPE_REGEX.exec(remainder);
|
|
3024
|
-
if (!match) {
|
|
3025
|
-
break;
|
|
3026
|
-
}
|
|
3027
|
-
if (match.groups.sgr !== void 0) {
|
|
3028
|
-
applySgrResets(match.groups.sgr, activeStyles);
|
|
3029
|
-
}
|
|
3030
|
-
remainder = remainder.slice(match[0].length);
|
|
3031
|
-
continue;
|
|
3032
|
-
}
|
|
3033
|
-
if (remainder.startsWith(ANSI_ESCAPE_CSI)) {
|
|
3034
|
-
const match = ANSI_ESCAPE_CSI_REGEX.exec(remainder);
|
|
3035
|
-
if (!match || match.groups.sgr === void 0) {
|
|
3036
|
-
break;
|
|
3037
|
-
}
|
|
3038
|
-
applySgrResets(match.groups.sgr, activeStyles);
|
|
3039
|
-
remainder = remainder.slice(match[0].length);
|
|
3040
|
-
continue;
|
|
3041
|
-
}
|
|
3042
|
-
break;
|
|
3043
|
-
}
|
|
3044
|
-
}, "applyLeadingSgrResets");
|
|
3045
|
-
var getClosingSgrSequence = /* @__PURE__ */ __name((activeStyles) => [...activeStyles].reverse().map((activeStyle) => wrapAnsiCode(activeStyle.close)).join(""), "getClosingSgrSequence");
|
|
3046
|
-
var getOpeningSgrSequence = /* @__PURE__ */ __name((activeStyles) => activeStyles.map((activeStyle) => wrapAnsiCode(activeStyle.open)).join(""), "getOpeningSgrSequence");
|
|
3047
|
-
var wordLengths = /* @__PURE__ */ __name((string) => string.split(" ").map((word) => stringWidth2(word)), "wordLengths");
|
|
3048
|
-
var wrapWord = /* @__PURE__ */ __name((rows, word, columns) => {
|
|
3049
|
-
const characters = getGraphemes(word);
|
|
3050
|
-
let isInsideEscape = false;
|
|
3051
|
-
let isInsideLinkEscape = false;
|
|
3052
|
-
let visible = stringWidth2(stripAnsi(rows.at(-1)));
|
|
3053
|
-
for (const [index, character] of characters.entries()) {
|
|
3054
|
-
const characterLength = stringWidth2(character);
|
|
3055
|
-
if (visible + characterLength <= columns) {
|
|
3056
|
-
rows[rows.length - 1] += character;
|
|
3057
|
-
} else {
|
|
3058
|
-
rows.push(character);
|
|
3059
|
-
visible = 0;
|
|
3060
|
-
}
|
|
3061
|
-
if (ESCAPES.has(character) && !(isInsideLinkEscape && character === ANSI_ESCAPE && characters[index + 1] === "\\")) {
|
|
3062
|
-
isInsideEscape = true;
|
|
3063
|
-
const ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join("");
|
|
3064
|
-
isInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;
|
|
3065
|
-
}
|
|
3066
|
-
if (isInsideEscape) {
|
|
3067
|
-
if (isInsideLinkEscape) {
|
|
3068
|
-
if (character === ANSI_ESCAPE_BELL || character === "\\" && index > 0 && characters[index - 1] === ANSI_ESCAPE) {
|
|
3069
|
-
isInsideEscape = false;
|
|
3070
|
-
isInsideLinkEscape = false;
|
|
3071
|
-
}
|
|
3072
|
-
} else if (character === ANSI_SGR_TERMINATOR) {
|
|
3073
|
-
isInsideEscape = false;
|
|
3074
|
-
}
|
|
3075
|
-
continue;
|
|
3076
|
-
}
|
|
3077
|
-
visible += characterLength;
|
|
3078
|
-
if (visible === columns && index < characters.length - 1) {
|
|
3079
|
-
rows.push("");
|
|
3080
|
-
visible = 0;
|
|
3081
|
-
}
|
|
3082
|
-
}
|
|
3083
|
-
if (!visible && rows.at(-1).length > 0 && rows.length > 1) {
|
|
3084
|
-
rows[rows.length - 2] += rows.pop();
|
|
3085
|
-
}
|
|
3086
|
-
}, "wrapWord");
|
|
3087
|
-
var stringVisibleTrimSpacesRight = /* @__PURE__ */ __name((string) => {
|
|
3088
|
-
const words = string.split(" ");
|
|
3089
|
-
let last = words.length;
|
|
3090
|
-
while (last > 0) {
|
|
3091
|
-
if (stringWidth2(words[last - 1]) > 0) {
|
|
3092
|
-
break;
|
|
3093
|
-
}
|
|
3094
|
-
last--;
|
|
3095
|
-
}
|
|
3096
|
-
if (last === words.length) {
|
|
3097
|
-
return string;
|
|
3098
|
-
}
|
|
3099
|
-
return words.slice(0, last).join(" ") + words.slice(last).join("");
|
|
3100
|
-
}, "stringVisibleTrimSpacesRight");
|
|
3101
|
-
var expandTabs = /* @__PURE__ */ __name((line) => {
|
|
3102
|
-
if (!line.includes(" ")) {
|
|
3103
|
-
return line;
|
|
3104
|
-
}
|
|
3105
|
-
const segments = line.split(" ");
|
|
3106
|
-
let visible = 0;
|
|
3107
|
-
let expandedLine = "";
|
|
3108
|
-
for (const [index, segment] of segments.entries()) {
|
|
3109
|
-
expandedLine += segment;
|
|
3110
|
-
visible += stringWidth2(segment);
|
|
3111
|
-
if (index < segments.length - 1) {
|
|
3112
|
-
const spaces = TAB_SIZE - visible % TAB_SIZE;
|
|
3113
|
-
expandedLine += " ".repeat(spaces);
|
|
3114
|
-
visible += spaces;
|
|
3115
|
-
}
|
|
3116
|
-
}
|
|
3117
|
-
return expandedLine;
|
|
3118
|
-
}, "expandTabs");
|
|
3119
|
-
var exec = /* @__PURE__ */ __name((string, columns, options = {}) => {
|
|
3120
|
-
if (options.trim !== false && string.trim() === "") {
|
|
3121
|
-
return "";
|
|
3122
|
-
}
|
|
3123
|
-
let returnValue = "";
|
|
3124
|
-
let escapeUrl;
|
|
3125
|
-
const activeStyles = [];
|
|
3126
|
-
const lengths = wordLengths(string);
|
|
3127
|
-
let rows = [""];
|
|
3128
|
-
for (const [index, word] of string.split(" ").entries()) {
|
|
3129
|
-
if (options.trim !== false) {
|
|
3130
|
-
rows[rows.length - 1] = rows.at(-1).trimStart();
|
|
3131
|
-
}
|
|
3132
|
-
let rowLength = stringWidth2(rows.at(-1));
|
|
3133
|
-
if (index !== 0) {
|
|
3134
|
-
if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {
|
|
3135
|
-
rows.push("");
|
|
3136
|
-
rowLength = 0;
|
|
3137
|
-
}
|
|
3138
|
-
if (rowLength > 0 || options.trim === false) {
|
|
3139
|
-
rows[rows.length - 1] += " ";
|
|
3140
|
-
rowLength++;
|
|
3141
|
-
}
|
|
3142
|
-
}
|
|
3143
|
-
if (options.hard && options.wordWrap !== false && lengths[index] > columns) {
|
|
3144
|
-
const remainingColumns = columns - rowLength;
|
|
3145
|
-
const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);
|
|
3146
|
-
const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);
|
|
3147
|
-
if (breaksStartingNextLine < breaksStartingThisLine) {
|
|
3148
|
-
rows.push("");
|
|
3149
|
-
}
|
|
3150
|
-
wrapWord(rows, word, columns);
|
|
3151
|
-
continue;
|
|
3152
|
-
}
|
|
3153
|
-
if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {
|
|
3154
|
-
if (options.wordWrap === false && rowLength < columns) {
|
|
3155
|
-
wrapWord(rows, word, columns);
|
|
3156
|
-
continue;
|
|
3157
|
-
}
|
|
3158
|
-
rows.push("");
|
|
3159
|
-
}
|
|
3160
|
-
if (rowLength + lengths[index] > columns && options.wordWrap === false) {
|
|
3161
|
-
wrapWord(rows, word, columns);
|
|
3162
|
-
continue;
|
|
3163
|
-
}
|
|
3164
|
-
rows[rows.length - 1] += word;
|
|
3165
|
-
}
|
|
3166
|
-
if (options.trim !== false) {
|
|
3167
|
-
rows = rows.map((row) => stringVisibleTrimSpacesRight(row));
|
|
3168
|
-
}
|
|
3169
|
-
const preString = rows.join("\n");
|
|
3170
|
-
const pre = getGraphemes(preString);
|
|
3171
|
-
let preStringIndex = 0;
|
|
3172
|
-
for (const [index, character] of pre.entries()) {
|
|
3173
|
-
returnValue += character;
|
|
3174
|
-
if (character === ANSI_ESCAPE && pre[index + 1] !== "\\") {
|
|
3175
|
-
const { groups } = ANSI_ESCAPE_REGEX.exec(preString.slice(preStringIndex)) || { groups: {} };
|
|
3176
|
-
if (groups.sgr !== void 0) {
|
|
3177
|
-
applySgrParameters(groups.sgr, activeStyles);
|
|
3178
|
-
} else if (groups.uri !== void 0) {
|
|
3179
|
-
escapeUrl = groups.uri.length === 0 ? void 0 : groups.uri;
|
|
3180
|
-
}
|
|
3181
|
-
} else if (character === ANSI_ESCAPE_CSI) {
|
|
3182
|
-
const { groups } = ANSI_ESCAPE_CSI_REGEX.exec(preString.slice(preStringIndex)) || { groups: {} };
|
|
3183
|
-
if (groups.sgr !== void 0) {
|
|
3184
|
-
applySgrParameters(groups.sgr, activeStyles);
|
|
3185
|
-
}
|
|
3186
|
-
}
|
|
3187
|
-
if (pre[index + 1] === "\n") {
|
|
3188
|
-
if (escapeUrl) {
|
|
3189
|
-
returnValue += wrapAnsiHyperlink("");
|
|
3190
|
-
}
|
|
3191
|
-
returnValue += getClosingSgrSequence(activeStyles);
|
|
3192
|
-
} else if (character === "\n") {
|
|
3193
|
-
const openingStyles = [...activeStyles];
|
|
3194
|
-
applyLeadingSgrResets(preString.slice(preStringIndex + 1), openingStyles);
|
|
3195
|
-
returnValue += getOpeningSgrSequence(openingStyles);
|
|
3196
|
-
if (escapeUrl) {
|
|
3197
|
-
returnValue += wrapAnsiHyperlink(escapeUrl);
|
|
3198
|
-
}
|
|
3199
|
-
}
|
|
3200
|
-
preStringIndex += character.length;
|
|
3201
|
-
}
|
|
3202
|
-
return returnValue;
|
|
3203
|
-
}, "exec");
|
|
3204
|
-
function wrapAnsi(string, columns, options) {
|
|
3205
|
-
return String(string).normalize().replaceAll("\r\n", "\n").split("\n").map((line) => exec(expandTabs(line), columns, options)).join("\n");
|
|
3206
|
-
}
|
|
3207
|
-
__name(wrapAnsi, "wrapAnsi");
|
|
3208
|
-
|
|
3209
2539
|
// packages/cli/src/ui/utils/latexRenderer.ts
|
|
3210
2540
|
init_esbuild_shims();
|
|
3211
2541
|
var COMMAND_REPLACEMENTS = {
|
|
@@ -6479,14 +5809,15 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
|
|
|
6479
5809
|
availableTerminalHeight,
|
|
6480
5810
|
contentWidth,
|
|
6481
5811
|
textColor = theme.text.primary,
|
|
6482
|
-
sourceCopyIndexOffsets
|
|
5812
|
+
sourceCopyIndexOffsets,
|
|
5813
|
+
enforceHeightBudget = false
|
|
6483
5814
|
}) => {
|
|
6484
5815
|
const { renderMode } = useRenderMode();
|
|
6485
5816
|
if (!text) return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, {});
|
|
6486
5817
|
const renderVisualBlocks = renderMode === "render";
|
|
6487
5818
|
const displayText = isPending ? text.trimEnd() : text;
|
|
6488
5819
|
const allLines = displayText.split(/\r?\n/);
|
|
6489
|
-
const pendingRenderedBudget = isPending && availableTerminalHeight !== void 0 ? Math.max(MIN_PENDING_CONTENT_LINES, availableTerminalHeight - 2) : void 0;
|
|
5820
|
+
const pendingRenderedBudget = (isPending || enforceHeightBudget) && availableTerminalHeight !== void 0 ? Math.max(MIN_PENDING_CONTENT_LINES, availableTerminalHeight - 2) : void 0;
|
|
6490
5821
|
const headerRegex = /^ *(#{1,4}) +(.*)/;
|
|
6491
5822
|
const codeFenceRegex = CODE_FENCE_RE;
|
|
6492
5823
|
const ulItemRegex = /^([ \t]*)([-*+]) +(.*)/;
|
|
@@ -6497,6 +5828,7 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
|
|
|
6497
5828
|
const tableRowRegex = TABLE_ROW_RE;
|
|
6498
5829
|
const tableSeparatorRegex = TABLE_SEPARATOR_RE;
|
|
6499
5830
|
let lines = allLines;
|
|
5831
|
+
let droppedSourceLines = 0;
|
|
6500
5832
|
if (pendingRenderedBudget !== void 0) {
|
|
6501
5833
|
const tableClampRows = availableTerminalHeight !== void 0 ? Math.max(2, availableTerminalHeight - TABLE_PENDING_RESERVED_ROWS) : Number.MAX_SAFE_INTEGER;
|
|
6502
5834
|
const { keptLines } = fitPendingSlice(
|
|
@@ -6507,8 +5839,10 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
|
|
|
6507
5839
|
);
|
|
6508
5840
|
if (keptLines < allLines.length) {
|
|
6509
5841
|
lines = allLines.slice(0, keptLines);
|
|
5842
|
+
droppedSourceLines = allLines.length - keptLines;
|
|
6510
5843
|
}
|
|
6511
5844
|
}
|
|
5845
|
+
const showTruncationCue = enforceHeightBudget && !isPending && droppedSourceLines > 0;
|
|
6512
5846
|
if (isPending && renderVisualBlocks && lines.length > 0) {
|
|
6513
5847
|
let start = lines.length;
|
|
6514
5848
|
while (start > 0 && /^\s*\|/.test(lines[start - 1])) start--;
|
|
@@ -6934,6 +6268,19 @@ var MarkdownDisplayInternal = /* @__PURE__ */ __name(({
|
|
|
6934
6268
|
)
|
|
6935
6269
|
);
|
|
6936
6270
|
}
|
|
6271
|
+
if (showTruncationCue) {
|
|
6272
|
+
contentBlocks.push(
|
|
6273
|
+
/* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
6274
|
+
Text,
|
|
6275
|
+
{
|
|
6276
|
+
color: theme.text.secondary,
|
|
6277
|
+
wrap: "truncate-end",
|
|
6278
|
+
children: `... ${droppedSourceLines} more line${droppedSourceLines === 1 ? "" : "s"} not shown (viewport too small) ...`
|
|
6279
|
+
},
|
|
6280
|
+
`truncation-cue-${contentBlocks.length}`
|
|
6281
|
+
)
|
|
6282
|
+
);
|
|
6283
|
+
}
|
|
6937
6284
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: contentBlocks });
|
|
6938
6285
|
}, "MarkdownDisplayInternal");
|
|
6939
6286
|
var RenderCodeBlockInternal = /* @__PURE__ */ __name(({
|
|
@@ -7356,6 +6703,7 @@ var AssistantMessageContent = /* @__PURE__ */ __name(({
|
|
|
7356
6703
|
}
|
|
7357
6704
|
), "AssistantMessageContent");
|
|
7358
6705
|
var MAX_STREAMING_THINKING_VISUAL_LINES = 4;
|
|
6706
|
+
var BRIEF_THOUGHT_THRESHOLD_MS = 1e3;
|
|
7359
6707
|
function tailVisualLines(text, width, maxLines) {
|
|
7360
6708
|
const charBudget = maxLines * width * 2;
|
|
7361
6709
|
let sliceStart = Math.max(0, text.length - charBudget);
|
|
@@ -7369,6 +6717,31 @@ function tailVisualLines(text, width, maxLines) {
|
|
|
7369
6717
|
return lines.slice(-maxLines).join("\n");
|
|
7370
6718
|
}
|
|
7371
6719
|
__name(tailVisualLines, "tailVisualLines");
|
|
6720
|
+
var ThinkBody = /* @__PURE__ */ __name(({ text, isPending, expanded, availableTerminalHeight, contentWidth }) => {
|
|
6721
|
+
if (!isPending && !expanded) return null;
|
|
6722
|
+
if (isPending && !expanded) {
|
|
6723
|
+
const innerWidth = Math.max(contentWidth - 2, 20);
|
|
6724
|
+
const maxLines = availableTerminalHeight != null ? Math.max(
|
|
6725
|
+
1,
|
|
6726
|
+
Math.min(
|
|
6727
|
+
MAX_STREAMING_THINKING_VISUAL_LINES,
|
|
6728
|
+
Math.floor(availableTerminalHeight / 3)
|
|
6729
|
+
)
|
|
6730
|
+
) : MAX_STREAMING_THINKING_VISUAL_LINES;
|
|
6731
|
+
const display = tailVisualLines(text, innerWidth, maxLines);
|
|
6732
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { dimColor: true, wrap: "truncate", children: display }) });
|
|
6733
|
+
}
|
|
6734
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
6735
|
+
MarkdownDisplay,
|
|
6736
|
+
{
|
|
6737
|
+
text,
|
|
6738
|
+
isPending,
|
|
6739
|
+
availableTerminalHeight,
|
|
6740
|
+
contentWidth: contentWidth - 2,
|
|
6741
|
+
textColor: theme.text.secondary
|
|
6742
|
+
}
|
|
6743
|
+
) });
|
|
6744
|
+
}, "ThinkBody");
|
|
7372
6745
|
var ThinkMessage = /* @__PURE__ */ __name(({
|
|
7373
6746
|
text,
|
|
7374
6747
|
isPending,
|
|
@@ -7379,54 +6752,35 @@ var ThinkMessage = /* @__PURE__ */ __name(({
|
|
|
7379
6752
|
clickable = false
|
|
7380
6753
|
}) => {
|
|
7381
6754
|
const durationSuffix = durationMs != null ? ` ${formatDuration2(durationMs)}` : "";
|
|
6755
|
+
const completedLabel = durationMs == null ? null : durationMs < BRIEF_THOUGHT_THRESHOLD_MS ? t("Thought briefly") : `${t("Thought for")} ${formatDuration2(durationMs)}`;
|
|
7382
6756
|
if (!isPending && !expanded) {
|
|
7383
|
-
const
|
|
6757
|
+
const label2 = completedLabel ?? t("Thinking");
|
|
7384
6758
|
const hint = clickable ? t("(click or {{keyHint}} to expand)", { keyHint: toggleKeyHint }) : t("({{keyHint}} to expand)", { keyHint: toggleKeyHint });
|
|
7385
6759
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Text, { dimColor: true, italic: true, children: [
|
|
7386
6760
|
THINKING_ICON,
|
|
7387
|
-
|
|
6761
|
+
label2,
|
|
7388
6762
|
" ",
|
|
7389
6763
|
hint
|
|
7390
6764
|
] });
|
|
7391
6765
|
}
|
|
7392
|
-
|
|
7393
|
-
|
|
7394
|
-
const maxLines = availableTerminalHeight != null ? Math.max(
|
|
7395
|
-
1,
|
|
7396
|
-
Math.min(
|
|
7397
|
-
MAX_STREAMING_THINKING_VISUAL_LINES,
|
|
7398
|
-
Math.floor(availableTerminalHeight / 3)
|
|
7399
|
-
)
|
|
7400
|
-
) : MAX_STREAMING_THINKING_VISUAL_LINES;
|
|
7401
|
-
const display = tailVisualLines(text, innerWidth, maxLines);
|
|
7402
|
-
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
7403
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Text, { dimColor: true, italic: true, children: [
|
|
7404
|
-
THINKING_ICON_PENDING,
|
|
7405
|
-
t("Thinking"),
|
|
7406
|
-
"\u2026",
|
|
7407
|
-
durationSuffix
|
|
7408
|
-
] }),
|
|
7409
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { dimColor: true, wrap: "truncate", children: display }) })
|
|
7410
|
-
] });
|
|
7411
|
-
}
|
|
7412
|
-
const expandedLabel = durationMs != null ? `${t("Thought for")} ${formatDuration2(durationMs)}` : `${t("Thinking")}\u2026`;
|
|
6766
|
+
const label = isPending ? `${t("Thinking")}\u2026${durationSuffix}` : completedLabel ?? `${t("Thinking")}\u2026`;
|
|
6767
|
+
const collapseHint = !isPending && expanded ? ` ${t("({{keyHint}} to collapse)", { keyHint: toggleKeyHint })}` : "";
|
|
7413
6768
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
7414
6769
|
/* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(Text, { dimColor: true, italic: true, children: [
|
|
7415
|
-
THINKING_ICON,
|
|
7416
|
-
|
|
7417
|
-
|
|
7418
|
-
t("({{keyHint}} to collapse)", { keyHint: toggleKeyHint })
|
|
6770
|
+
isPending ? THINKING_ICON_PENDING : THINKING_ICON,
|
|
6771
|
+
label,
|
|
6772
|
+
collapseHint
|
|
7419
6773
|
] }),
|
|
7420
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
7421
|
-
|
|
6774
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
6775
|
+
ThinkBody,
|
|
7422
6776
|
{
|
|
7423
6777
|
text,
|
|
7424
|
-
isPending
|
|
6778
|
+
isPending,
|
|
6779
|
+
expanded,
|
|
7425
6780
|
availableTerminalHeight,
|
|
7426
|
-
contentWidth
|
|
7427
|
-
textColor: theme.text.secondary
|
|
6781
|
+
contentWidth
|
|
7428
6782
|
}
|
|
7429
|
-
)
|
|
6783
|
+
)
|
|
7430
6784
|
] });
|
|
7431
6785
|
}, "ThinkMessage");
|
|
7432
6786
|
var ThinkMessageContent = /* @__PURE__ */ __name(({
|
|
@@ -7435,33 +6789,16 @@ var ThinkMessageContent = /* @__PURE__ */ __name(({
|
|
|
7435
6789
|
expanded = false,
|
|
7436
6790
|
availableTerminalHeight,
|
|
7437
6791
|
contentWidth
|
|
7438
|
-
}) =>
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
|
|
7442
|
-
|
|
7443
|
-
|
|
7444
|
-
|
|
7445
|
-
|
|
7446
|
-
Math.min(
|
|
7447
|
-
MAX_STREAMING_THINKING_VISUAL_LINES,
|
|
7448
|
-
Math.floor(availableTerminalHeight / 3)
|
|
7449
|
-
)
|
|
7450
|
-
) : MAX_STREAMING_THINKING_VISUAL_LINES;
|
|
7451
|
-
const display = tailVisualLines(text, innerWidth, maxLines);
|
|
7452
|
-
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Text, { dimColor: true, wrap: "truncate", children: display }) });
|
|
6792
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
6793
|
+
ThinkBody,
|
|
6794
|
+
{
|
|
6795
|
+
text,
|
|
6796
|
+
isPending,
|
|
6797
|
+
expanded,
|
|
6798
|
+
availableTerminalHeight,
|
|
6799
|
+
contentWidth
|
|
7453
6800
|
}
|
|
7454
|
-
|
|
7455
|
-
MarkdownDisplay,
|
|
7456
|
-
{
|
|
7457
|
-
text,
|
|
7458
|
-
isPending: false,
|
|
7459
|
-
availableTerminalHeight,
|
|
7460
|
-
contentWidth: contentWidth - 2,
|
|
7461
|
-
textColor: theme.text.secondary
|
|
7462
|
-
}
|
|
7463
|
-
) });
|
|
7464
|
-
}, "ThinkMessageContent");
|
|
6801
|
+
), "ThinkMessageContent");
|
|
7465
6802
|
|
|
7466
6803
|
// packages/cli/src/ui/components/messages/ToolGroupMessage.tsx
|
|
7467
6804
|
init_esbuild_shims();
|
|
@@ -9262,15 +8599,15 @@ var isCjkChar = /* @__PURE__ */ __name((char) => CJK_CHAR_REGEX.test(char), "isC
|
|
|
9262
8599
|
var WORD_BOUNDARIES_CACHE_MAX = 500;
|
|
9263
8600
|
var SEGMENTER_LENGTH_LIMIT = 1500;
|
|
9264
8601
|
var wordBoundariesCache = null;
|
|
9265
|
-
var
|
|
8602
|
+
var segmenter = null;
|
|
9266
8603
|
function ensureSegmenterLoaded() {
|
|
9267
|
-
if (
|
|
8604
|
+
if (segmenter !== null) return;
|
|
9268
8605
|
try {
|
|
9269
|
-
|
|
8606
|
+
segmenter = new Intl.Segmenter("zh", { granularity: "word" });
|
|
9270
8607
|
debugLogger4.info("Intl.Segmenter: initialized successfully");
|
|
9271
8608
|
} catch (err) {
|
|
9272
8609
|
debugLogger4.warn("Intl.Segmenter: failed to initialize", err);
|
|
9273
|
-
|
|
8610
|
+
segmenter = false;
|
|
9274
8611
|
}
|
|
9275
8612
|
}
|
|
9276
8613
|
__name(ensureSegmenterLoaded, "ensureSegmenterLoaded");
|
|
@@ -9310,14 +8647,14 @@ function getWordBoundaries(line, codePoints) {
|
|
|
9310
8647
|
return cached;
|
|
9311
8648
|
}
|
|
9312
8649
|
ensureSegmenterLoaded();
|
|
9313
|
-
if (!
|
|
8650
|
+
if (!segmenter) {
|
|
9314
8651
|
const fallback = charByCharFallback(line);
|
|
9315
8652
|
evictCacheIfNeeded();
|
|
9316
8653
|
wordBoundariesCache.set(line, fallback);
|
|
9317
8654
|
return fallback;
|
|
9318
8655
|
}
|
|
9319
8656
|
try {
|
|
9320
|
-
const segments =
|
|
8657
|
+
const segments = segmenter.segment(line);
|
|
9321
8658
|
const cpToStrIdx = [];
|
|
9322
8659
|
let strIdx = 0;
|
|
9323
8660
|
for (let i = 0; i < cps.length; i++) {
|
|
@@ -12042,7 +11379,8 @@ var ToolConfirmationMessage = /* @__PURE__ */ __name(({
|
|
|
12042
11379
|
text: planProps.plan,
|
|
12043
11380
|
isPending: false,
|
|
12044
11381
|
availableTerminalHeight: planHeight,
|
|
12045
|
-
contentWidth
|
|
11382
|
+
contentWidth,
|
|
11383
|
+
enforceHeightBudget: true
|
|
12046
11384
|
}
|
|
12047
11385
|
) });
|
|
12048
11386
|
} else if (confirmationDetails.type === "info") {
|
|
@@ -12307,12 +11645,22 @@ var ShellInputPrompt = /* @__PURE__ */ __name(({
|
|
|
12307
11645
|
return null;
|
|
12308
11646
|
}, "ShellInputPrompt");
|
|
12309
11647
|
|
|
11648
|
+
// packages/cli/src/ui/utils/tool-display-map.ts
|
|
11649
|
+
init_esbuild_shims();
|
|
11650
|
+
var TOOL_DISPLAY_BY_NAME = Object.fromEntries(
|
|
11651
|
+
Object.keys(ToolNames).map((key) => [
|
|
11652
|
+
ToolNames[key],
|
|
11653
|
+
ToolDisplayNames[key]
|
|
11654
|
+
])
|
|
11655
|
+
);
|
|
11656
|
+
|
|
12310
11657
|
// packages/cli/src/ui/components/messages/ToolMessage.tsx
|
|
12311
11658
|
var import_jsx_runtime17 = __toESM(require_jsx_runtime(), 1);
|
|
12312
11659
|
var AGENT_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
12313
11660
|
ToolNames.AGENT,
|
|
12314
11661
|
...Object.entries(ToolNamesMigration).filter(([, canonical]) => canonical === ToolNames.AGENT).map(([legacy]) => legacy)
|
|
12315
11662
|
]);
|
|
11663
|
+
var APPROVAL_CONTEXT_CALLS = 3;
|
|
12316
11664
|
var STATIC_HEIGHT = 1;
|
|
12317
11665
|
var RESERVED_LINE_COUNT = 5;
|
|
12318
11666
|
var MIN_LINES_SHOWN = 2;
|
|
@@ -12431,21 +11779,42 @@ var PlanResultRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childW
|
|
|
12431
11779
|
childWidth
|
|
12432
11780
|
}
|
|
12433
11781
|
), "PlanResultRenderer");
|
|
11782
|
+
var priorApprovalCalls = /* @__PURE__ */ __name((data) => (data.toolCalls ?? []).filter((call) => call.status !== "awaiting_approval").slice(-APPROVAL_CONTEXT_CALLS), "priorApprovalCalls");
|
|
11783
|
+
var SubagentApprovalContext = /* @__PURE__ */ __name(({ data }) => {
|
|
11784
|
+
const priorCalls = priorApprovalCalls(data);
|
|
11785
|
+
if (priorCalls.length === 0) return null;
|
|
11786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { flexDirection: "column", children: priorCalls.map((call) => {
|
|
11787
|
+
const glyph = call.status === "failed" ? "\u2716" : call.status === "success" ? "\u2714" : "\u25CB";
|
|
11788
|
+
const displayName = localizeToolDisplayName(
|
|
11789
|
+
TOOL_DISPLAY_BY_NAME[call.name] ?? call.name
|
|
11790
|
+
);
|
|
11791
|
+
const desc = (call.description ?? "").replace(/\s*\n\s*/g, " ").trim();
|
|
11792
|
+
const label = desc ? `${displayName} ${desc}` : displayName;
|
|
11793
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${glyph} ${sanitizeMultilineForDisplay(label)}` }) }, call.callId);
|
|
11794
|
+
}) });
|
|
11795
|
+
}, "SubagentApprovalContext");
|
|
12434
11796
|
var SubagentExecutionRenderer = /* @__PURE__ */ __name(({ data, availableHeight, childWidth, config, isFocused }) => {
|
|
12435
11797
|
if (data.pendingConfirmation && isFocused) {
|
|
12436
11798
|
const agentLabel = escapeAnsiCtrlCodes(data.subagentName || "agent");
|
|
11799
|
+
const HEADER_LINES = 1;
|
|
11800
|
+
const contextLines = priorApprovalCalls(data).length;
|
|
11801
|
+
const confirmationHeight = availableHeight !== void 0 ? Math.max(
|
|
11802
|
+
MINIMUM_MAX_HEIGHT,
|
|
11803
|
+
availableHeight - contextLines - HEADER_LINES
|
|
11804
|
+
) : availableHeight;
|
|
12437
11805
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
|
|
12438
11806
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { children: [
|
|
12439
11807
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.secondary, children: "Approval requested by " }),
|
|
12440
11808
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { bold: true, color: theme.text.accent, children: agentLabel }),
|
|
12441
11809
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Text, { color: theme.text.secondary, children: ":" })
|
|
12442
11810
|
] }),
|
|
11811
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SubagentApprovalContext, { data }),
|
|
12443
11812
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
12444
11813
|
ToolConfirmationMessage,
|
|
12445
11814
|
{
|
|
12446
11815
|
confirmationDetails: data.pendingConfirmation,
|
|
12447
11816
|
isFocused,
|
|
12448
|
-
availableTerminalHeight:
|
|
11817
|
+
availableTerminalHeight: confirmationHeight,
|
|
12449
11818
|
contentWidth: childWidth - 2,
|
|
12450
11819
|
compactMode: true,
|
|
12451
11820
|
config
|
|
@@ -12634,7 +12003,11 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12634
12003
|
() => usingDetailedDisplay && typeof detailedDisplay === "string" ? sanitizeTerminalText(detailedDisplay) : detailedDisplay,
|
|
12635
12004
|
[detailedDisplay, usingDetailedDisplay]
|
|
12636
12005
|
);
|
|
12637
|
-
const
|
|
12006
|
+
const visionBridgeNoticeDisplay = isVisionBridgeNoticeDisplay(resultDisplay) ? resultDisplay : void 0;
|
|
12007
|
+
const visionBridgeNoticeText = visionBridgeNoticeDisplay ? sanitizeTerminalText(
|
|
12008
|
+
formatVisionBridgeNoticeDisplay(visionBridgeNoticeDisplay)
|
|
12009
|
+
) : void 0;
|
|
12010
|
+
const effectiveResultDisplay = usingDetailedDisplay ? sanitizedDetailedDisplay : visionBridgeNoticeDisplay ? void 0 : resultDisplay;
|
|
12638
12011
|
if (usingDetailedDisplay) {
|
|
12639
12012
|
renderOutputAsMarkdown = false;
|
|
12640
12013
|
}
|
|
@@ -12665,6 +12038,14 @@ var ToolMessage = /* @__PURE__ */ __name(({
|
|
|
12665
12038
|
),
|
|
12666
12039
|
emphasis === "high" && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TrailingIndicator, {})
|
|
12667
12040
|
] }),
|
|
12041
|
+
visionBridgeNoticeText && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
12042
|
+
StringResultRenderer,
|
|
12043
|
+
{
|
|
12044
|
+
data: visionBridgeNoticeText,
|
|
12045
|
+
renderAsMarkdown: false,
|
|
12046
|
+
childWidth: innerWidth
|
|
12047
|
+
}
|
|
12048
|
+
) }),
|
|
12668
12049
|
effectiveDisplayRenderer.type !== "none" && !shouldCollapseResult && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Box_default, { paddingLeft: STATUS_INDICATOR_WIDTH, width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
12669
12050
|
effectiveDisplayRenderer.type === "todo" && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(TodoResultRenderer, { data: effectiveDisplayRenderer.data }),
|
|
12670
12051
|
effectiveDisplayRenderer.type === "plan" && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
@@ -12774,12 +12155,6 @@ function isAgentResult(rd) {
|
|
|
12774
12155
|
return typeof rd === "object" && rd !== null && "type" in rd && rd.type === "task_execution";
|
|
12775
12156
|
}
|
|
12776
12157
|
__name(isAgentResult, "isAgentResult");
|
|
12777
|
-
var TOOL_DISPLAY_BY_NAME = Object.fromEntries(
|
|
12778
|
-
Object.keys(ToolNames).map((key) => [
|
|
12779
|
-
ToolNames[key],
|
|
12780
|
-
ToolDisplayNames[key]
|
|
12781
|
-
])
|
|
12782
|
-
);
|
|
12783
12158
|
function activityLabel(row) {
|
|
12784
12159
|
const last = row.recentActivity;
|
|
12785
12160
|
if (!last) return "";
|
|
@@ -12906,7 +12281,7 @@ var AgentRow = /* @__PURE__ */ __name(({ row, now }) => {
|
|
|
12906
12281
|
const { glyph, color } = statusGlyph(row.status);
|
|
12907
12282
|
const safeName = escapeAnsiCtrlCodes(row.name);
|
|
12908
12283
|
const displayName = truncateMiddle(safeName, NAME_COL_WIDTH);
|
|
12909
|
-
const activity =
|
|
12284
|
+
const activity = sanitizeMultilineForDisplay(activityLabel(row));
|
|
12910
12285
|
const elapsed = elapsedLabel(row, now);
|
|
12911
12286
|
const tokens = row.tokenCount && row.tokenCount > 0 ? formatTokenCount(row.tokenCount) : "";
|
|
12912
12287
|
const trailingParts = [];
|
|
@@ -13073,7 +12448,10 @@ var ToolGroupMessage = /* @__PURE__ */ __name(({
|
|
|
13073
12448
|
memoryBadge
|
|
13074
12449
|
] });
|
|
13075
12450
|
}
|
|
13076
|
-
const collapsibleSummaryHeight =
|
|
12451
|
+
const collapsibleSummaryHeight = estimateCompactToolGroupHeight(
|
|
12452
|
+
collapsibleTools,
|
|
12453
|
+
contentWidth
|
|
12454
|
+
);
|
|
13077
12455
|
const memoryBadgeHeight = hasMemoryBadge ? 1 : 0;
|
|
13078
12456
|
const staticHeight = (
|
|
13079
12457
|
/* marginBottom */
|
|
@@ -15564,6 +14942,7 @@ var ExtensionsList = /* @__PURE__ */ __name(() => {
|
|
|
15564
14942
|
break;
|
|
15565
14943
|
case "update available" /* UPDATE_AVAILABLE */:
|
|
15566
14944
|
case "updated, needs restart" /* UPDATED_NEEDS_RESTART */:
|
|
14945
|
+
case "updated with warnings" /* UPDATED_WITH_WARNINGS */:
|
|
15567
14946
|
stateColor = "yellow";
|
|
15568
14947
|
break;
|
|
15569
14948
|
case "error" /* ERROR */:
|
|
@@ -16970,6 +16349,7 @@ var ClickableThinkMessage = /* @__PURE__ */ __name(({
|
|
|
16970
16349
|
onToggle
|
|
16971
16350
|
}) => {
|
|
16972
16351
|
const ref = (0, import_react34.useRef)(null);
|
|
16352
|
+
const { rows: terminalHeight } = useTerminalSize();
|
|
16973
16353
|
const settings = useSettings();
|
|
16974
16354
|
const clickable = !!settings.merged.ui?.useTerminalBuffer;
|
|
16975
16355
|
const isActive = !isPending;
|
|
@@ -16979,12 +16359,12 @@ var ClickableThinkMessage = /* @__PURE__ */ __name(({
|
|
|
16979
16359
|
if (event.name !== "left-press" || !ref.current) return;
|
|
16980
16360
|
const metrics = measureElementPosition(ref.current);
|
|
16981
16361
|
const col = event.col - 1;
|
|
16982
|
-
const row = event.row
|
|
16362
|
+
const row = layoutRowForEvent(ref.current, event.row, terminalHeight);
|
|
16983
16363
|
if (col >= metrics.x && col < metrics.x + metrics.width && row >= metrics.y && row < metrics.y + metrics.height) {
|
|
16984
16364
|
onToggle();
|
|
16985
16365
|
}
|
|
16986
16366
|
},
|
|
16987
|
-
[onToggle]
|
|
16367
|
+
[onToggle, terminalHeight]
|
|
16988
16368
|
),
|
|
16989
16369
|
{ isActive }
|
|
16990
16370
|
);
|
|
@@ -17646,6 +17026,7 @@ export {
|
|
|
17646
17026
|
renderSoftwareCursor,
|
|
17647
17027
|
TextInput,
|
|
17648
17028
|
ToolConfirmationMessage,
|
|
17029
|
+
TOOL_DISPLAY_BY_NAME,
|
|
17649
17030
|
dist_default,
|
|
17650
17031
|
AboutBox,
|
|
17651
17032
|
dist_default2,
|