@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
|
@@ -11,39 +11,44 @@ import {
|
|
|
11
11
|
use_is_screen_reader_enabled_default,
|
|
12
12
|
use_stdin_default,
|
|
13
13
|
use_stdout_default
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OVIV236K.js";
|
|
15
15
|
import {
|
|
16
16
|
require_react
|
|
17
17
|
} from "./chunk-HTHUX2T5.js";
|
|
18
18
|
import {
|
|
19
19
|
formatHistoryGapNotice,
|
|
20
20
|
indexGapsByChild
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-VT5AWJN4.js";
|
|
22
22
|
import {
|
|
23
|
-
sanitizeFilenameForDisplay
|
|
24
|
-
|
|
23
|
+
sanitizeFilenameForDisplay,
|
|
24
|
+
stringWidth
|
|
25
|
+
} from "./chunk-MFNKBXYH.js";
|
|
26
|
+
import {
|
|
27
|
+
eastAsianWidth
|
|
28
|
+
} from "./chunk-QHTIBUWB.js";
|
|
25
29
|
import {
|
|
26
30
|
formatDuration
|
|
27
31
|
} from "./chunk-E5Z2AVNV.js";
|
|
28
32
|
import {
|
|
29
33
|
t
|
|
30
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-7GM2RWCR.js";
|
|
31
35
|
import {
|
|
32
36
|
fetchGitDiff,
|
|
33
37
|
findProviderByCredentials,
|
|
34
38
|
getToolResponseDisplayText,
|
|
35
|
-
resolveMetadataKey
|
|
36
|
-
|
|
39
|
+
resolveMetadataKey,
|
|
40
|
+
stripAnsi
|
|
41
|
+
} from "./chunk-SA6QVLWI.js";
|
|
37
42
|
import {
|
|
38
43
|
KittySequenceOverflowEvent,
|
|
39
44
|
logKittySequenceOverflow
|
|
40
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-YYBZUIPL.js";
|
|
41
46
|
import {
|
|
42
47
|
ToolDisplayNames
|
|
43
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
44
49
|
import {
|
|
45
50
|
createDebugLogger
|
|
46
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
47
52
|
import {
|
|
48
53
|
init_esbuild_shims
|
|
49
54
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1938,21 +1943,18 @@ function writeOsc52(text) {
|
|
|
1938
1943
|
__name(writeOsc52, "writeOsc52");
|
|
1939
1944
|
var linuxClipboardTool;
|
|
1940
1945
|
var cachedWlPasteImageTypes = null;
|
|
1941
|
-
var
|
|
1942
|
-
var clipboardLoadAttempted = false;
|
|
1946
|
+
var clipboardModulePromise = null;
|
|
1943
1947
|
async function getClipboardModule() {
|
|
1944
|
-
if (
|
|
1945
|
-
clipboardLoadAttempted = true;
|
|
1946
|
-
try {
|
|
1948
|
+
if (!clipboardModulePromise) {
|
|
1947
1949
|
const modName = "@teddyzhu/clipboard";
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
);
|
|
1954
|
-
return null;
|
|
1950
|
+
clipboardModulePromise = import(modName).catch(() => {
|
|
1951
|
+
debugLogger.error(
|
|
1952
|
+
"Failed to load @teddyzhu/clipboard native module. Clipboard image features will be unavailable."
|
|
1953
|
+
);
|
|
1954
|
+
return null;
|
|
1955
|
+
});
|
|
1955
1956
|
}
|
|
1957
|
+
return clipboardModulePromise;
|
|
1956
1958
|
}
|
|
1957
1959
|
__name(getClipboardModule, "getClipboardModule");
|
|
1958
1960
|
function getLinuxClipboardTool() {
|
|
@@ -2101,7 +2103,7 @@ async function checkClipboardForImage(command, args) {
|
|
|
2101
2103
|
});
|
|
2102
2104
|
}
|
|
2103
2105
|
__name(checkClipboardForImage, "checkClipboardForImage");
|
|
2104
|
-
async function clipboardHasImage() {
|
|
2106
|
+
async function clipboardHasImage(onUnavailable) {
|
|
2105
2107
|
cachedWlPasteImageTypes = null;
|
|
2106
2108
|
if (process.platform === "linux") {
|
|
2107
2109
|
try {
|
|
@@ -2125,7 +2127,10 @@ async function clipboardHasImage() {
|
|
|
2125
2127
|
}
|
|
2126
2128
|
try {
|
|
2127
2129
|
const mod = await getClipboardModule();
|
|
2128
|
-
if (!mod)
|
|
2130
|
+
if (!mod) {
|
|
2131
|
+
onUnavailable?.();
|
|
2132
|
+
return false;
|
|
2133
|
+
}
|
|
2129
2134
|
const clipboard = new mod.ClipboardManager();
|
|
2130
2135
|
return clipboard.hasFormat("image");
|
|
2131
2136
|
} catch (error) {
|
|
@@ -3010,7 +3015,10 @@ function KeypressProvider({
|
|
|
3010
3015
|
sequence: pasteBuffer.toString()
|
|
3011
3016
|
});
|
|
3012
3017
|
} else {
|
|
3013
|
-
|
|
3018
|
+
let clipboardImageUnavailable = false;
|
|
3019
|
+
const hasImage = await clipboardHasImage(() => {
|
|
3020
|
+
clipboardImageUnavailable = true;
|
|
3021
|
+
});
|
|
3014
3022
|
broadcast({
|
|
3015
3023
|
name: "",
|
|
3016
3024
|
ctrl: false,
|
|
@@ -3018,6 +3026,7 @@ function KeypressProvider({
|
|
|
3018
3026
|
shift: false,
|
|
3019
3027
|
paste: true,
|
|
3020
3028
|
pasteImage: hasImage,
|
|
3029
|
+
clipboardImageUnavailable,
|
|
3021
3030
|
sequence: pasteBuffer.toString()
|
|
3022
3031
|
});
|
|
3023
3032
|
}
|
|
@@ -3481,6 +3490,679 @@ import * as path2 from "node:path";
|
|
|
3481
3490
|
// packages/cli/src/ui/components/messages/CompactToolGroupDisplay.tsx
|
|
3482
3491
|
init_esbuild_shims();
|
|
3483
3492
|
|
|
3493
|
+
// packages/cli/node_modules/wrap-ansi/index.js
|
|
3494
|
+
init_esbuild_shims();
|
|
3495
|
+
|
|
3496
|
+
// packages/cli/node_modules/wrap-ansi/node_modules/string-width/index.js
|
|
3497
|
+
init_esbuild_shims();
|
|
3498
|
+
var segmenter = new Intl.Segmenter();
|
|
3499
|
+
var zeroWidthClusterRegex = new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Format}|\\p{Mark}|\\p{Surrogate})+$", "v");
|
|
3500
|
+
var leadingNonPrintingRegex = new RegExp("^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+", "v");
|
|
3501
|
+
var rgiEmojiRegex = new RegExp("^\\p{RGI_Emoji}$", "v");
|
|
3502
|
+
var unqualifiedKeycapRegex = /^[\d#*]\u20E3$/;
|
|
3503
|
+
var extendedPictographicRegex = new RegExp("\\p{Extended_Pictographic}", "gu");
|
|
3504
|
+
function isDoubleWidthNonRgiEmojiSequence(segment) {
|
|
3505
|
+
if (segment.length > 50) {
|
|
3506
|
+
return false;
|
|
3507
|
+
}
|
|
3508
|
+
if (unqualifiedKeycapRegex.test(segment)) {
|
|
3509
|
+
return true;
|
|
3510
|
+
}
|
|
3511
|
+
if (segment.includes("\u200D")) {
|
|
3512
|
+
const pictographics = segment.match(extendedPictographicRegex);
|
|
3513
|
+
return pictographics !== null && pictographics.length >= 2;
|
|
3514
|
+
}
|
|
3515
|
+
return false;
|
|
3516
|
+
}
|
|
3517
|
+
__name(isDoubleWidthNonRgiEmojiSequence, "isDoubleWidthNonRgiEmojiSequence");
|
|
3518
|
+
function baseVisible(segment) {
|
|
3519
|
+
return segment.replace(leadingNonPrintingRegex, "");
|
|
3520
|
+
}
|
|
3521
|
+
__name(baseVisible, "baseVisible");
|
|
3522
|
+
function isZeroWidthCluster(segment) {
|
|
3523
|
+
return zeroWidthClusterRegex.test(segment);
|
|
3524
|
+
}
|
|
3525
|
+
__name(isZeroWidthCluster, "isZeroWidthCluster");
|
|
3526
|
+
function isHangulLeadingJamo(codePoint) {
|
|
3527
|
+
return codePoint >= 4352 && codePoint <= 4447 || codePoint >= 43360 && codePoint <= 43388;
|
|
3528
|
+
}
|
|
3529
|
+
__name(isHangulLeadingJamo, "isHangulLeadingJamo");
|
|
3530
|
+
function isHangulVowelJamo(codePoint) {
|
|
3531
|
+
return codePoint >= 4448 && codePoint <= 4519 || codePoint >= 55216 && codePoint <= 55238;
|
|
3532
|
+
}
|
|
3533
|
+
__name(isHangulVowelJamo, "isHangulVowelJamo");
|
|
3534
|
+
function isHangulTrailingJamo(codePoint) {
|
|
3535
|
+
return codePoint >= 4520 && codePoint <= 4607 || codePoint >= 55243 && codePoint <= 55291;
|
|
3536
|
+
}
|
|
3537
|
+
__name(isHangulTrailingJamo, "isHangulTrailingJamo");
|
|
3538
|
+
function isHangulJamo(codePoint) {
|
|
3539
|
+
return isHangulLeadingJamo(codePoint) || isHangulVowelJamo(codePoint) || isHangulTrailingJamo(codePoint);
|
|
3540
|
+
}
|
|
3541
|
+
__name(isHangulJamo, "isHangulJamo");
|
|
3542
|
+
function hangulClusterWidth(visibleSegment, eastAsianWidthOptions) {
|
|
3543
|
+
const codePoints = [];
|
|
3544
|
+
for (const character of visibleSegment) {
|
|
3545
|
+
if (zeroWidthClusterRegex.test(character)) {
|
|
3546
|
+
continue;
|
|
3547
|
+
}
|
|
3548
|
+
codePoints.push(character.codePointAt(0));
|
|
3549
|
+
}
|
|
3550
|
+
if (codePoints.length === 0) {
|
|
3551
|
+
return void 0;
|
|
3552
|
+
}
|
|
3553
|
+
let width = 0;
|
|
3554
|
+
for (let index = 0; index < codePoints.length; index++) {
|
|
3555
|
+
const codePoint = codePoints[index];
|
|
3556
|
+
if (!isHangulJamo(codePoint)) {
|
|
3557
|
+
if (width === 0) {
|
|
3558
|
+
return void 0;
|
|
3559
|
+
}
|
|
3560
|
+
for (let remaining = index; remaining < codePoints.length; remaining++) {
|
|
3561
|
+
width += eastAsianWidth(codePoints[remaining], eastAsianWidthOptions);
|
|
3562
|
+
}
|
|
3563
|
+
return width;
|
|
3564
|
+
}
|
|
3565
|
+
if (isHangulLeadingJamo(codePoint) && isHangulVowelJamo(codePoints[index + 1])) {
|
|
3566
|
+
width += 2;
|
|
3567
|
+
index += isHangulTrailingJamo(codePoints[index + 2]) ? 2 : 1;
|
|
3568
|
+
continue;
|
|
3569
|
+
}
|
|
3570
|
+
width += eastAsianWidth(codePoint, eastAsianWidthOptions);
|
|
3571
|
+
}
|
|
3572
|
+
return width;
|
|
3573
|
+
}
|
|
3574
|
+
__name(hangulClusterWidth, "hangulClusterWidth");
|
|
3575
|
+
function trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions) {
|
|
3576
|
+
let extra = 0;
|
|
3577
|
+
let first = true;
|
|
3578
|
+
for (const character of visibleSegment) {
|
|
3579
|
+
if (first) {
|
|
3580
|
+
first = false;
|
|
3581
|
+
continue;
|
|
3582
|
+
}
|
|
3583
|
+
if (character >= "\uFF00" && character <= "\uFFEF") {
|
|
3584
|
+
extra += eastAsianWidth(character.codePointAt(0), eastAsianWidthOptions);
|
|
3585
|
+
}
|
|
3586
|
+
}
|
|
3587
|
+
return extra;
|
|
3588
|
+
}
|
|
3589
|
+
__name(trailingHalfwidthWidth, "trailingHalfwidthWidth");
|
|
3590
|
+
function stringWidth2(input, options = {}) {
|
|
3591
|
+
if (typeof input !== "string" || input.length === 0) {
|
|
3592
|
+
return 0;
|
|
3593
|
+
}
|
|
3594
|
+
const {
|
|
3595
|
+
ambiguousIsNarrow = true,
|
|
3596
|
+
countAnsiEscapeCodes = false
|
|
3597
|
+
} = options;
|
|
3598
|
+
let string = input;
|
|
3599
|
+
if (!countAnsiEscapeCodes && (string.includes("\x1B") || string.includes("\x9B"))) {
|
|
3600
|
+
string = stripAnsi(string);
|
|
3601
|
+
}
|
|
3602
|
+
if (string.length === 0) {
|
|
3603
|
+
return 0;
|
|
3604
|
+
}
|
|
3605
|
+
if (/^[\u0020-\u007E]*$/.test(string)) {
|
|
3606
|
+
return string.length;
|
|
3607
|
+
}
|
|
3608
|
+
let width = 0;
|
|
3609
|
+
const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
|
|
3610
|
+
for (const { segment } of segmenter.segment(string)) {
|
|
3611
|
+
if (isZeroWidthCluster(segment)) {
|
|
3612
|
+
continue;
|
|
3613
|
+
}
|
|
3614
|
+
if (rgiEmojiRegex.test(segment) || isDoubleWidthNonRgiEmojiSequence(segment)) {
|
|
3615
|
+
width += 2;
|
|
3616
|
+
continue;
|
|
3617
|
+
}
|
|
3618
|
+
const visibleSegment = baseVisible(segment);
|
|
3619
|
+
const hangulWidth = hangulClusterWidth(visibleSegment, eastAsianWidthOptions);
|
|
3620
|
+
if (hangulWidth !== void 0) {
|
|
3621
|
+
width += hangulWidth;
|
|
3622
|
+
continue;
|
|
3623
|
+
}
|
|
3624
|
+
const codePoint = visibleSegment.codePointAt(0);
|
|
3625
|
+
width += eastAsianWidth(codePoint, eastAsianWidthOptions);
|
|
3626
|
+
width += trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions);
|
|
3627
|
+
}
|
|
3628
|
+
return width;
|
|
3629
|
+
}
|
|
3630
|
+
__name(stringWidth2, "stringWidth");
|
|
3631
|
+
|
|
3632
|
+
// packages/cli/node_modules/ansi-styles/index.js
|
|
3633
|
+
init_esbuild_shims();
|
|
3634
|
+
var ANSI_BACKGROUND_OFFSET = 10;
|
|
3635
|
+
var wrapAnsi16 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${code + offset}m`, "wrapAnsi16");
|
|
3636
|
+
var wrapAnsi256 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`, "wrapAnsi256");
|
|
3637
|
+
var wrapAnsi16m = /* @__PURE__ */ __name((offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`, "wrapAnsi16m");
|
|
3638
|
+
var styles = {
|
|
3639
|
+
modifier: {
|
|
3640
|
+
reset: [0, 0],
|
|
3641
|
+
// 21 isn't widely supported and 22 does the same thing
|
|
3642
|
+
bold: [1, 22],
|
|
3643
|
+
dim: [2, 22],
|
|
3644
|
+
italic: [3, 23],
|
|
3645
|
+
underline: [4, 24],
|
|
3646
|
+
overline: [53, 55],
|
|
3647
|
+
inverse: [7, 27],
|
|
3648
|
+
hidden: [8, 28],
|
|
3649
|
+
strikethrough: [9, 29]
|
|
3650
|
+
},
|
|
3651
|
+
color: {
|
|
3652
|
+
black: [30, 39],
|
|
3653
|
+
red: [31, 39],
|
|
3654
|
+
green: [32, 39],
|
|
3655
|
+
yellow: [33, 39],
|
|
3656
|
+
blue: [34, 39],
|
|
3657
|
+
magenta: [35, 39],
|
|
3658
|
+
cyan: [36, 39],
|
|
3659
|
+
white: [37, 39],
|
|
3660
|
+
// Bright color
|
|
3661
|
+
blackBright: [90, 39],
|
|
3662
|
+
gray: [90, 39],
|
|
3663
|
+
// Alias of `blackBright`
|
|
3664
|
+
grey: [90, 39],
|
|
3665
|
+
// Alias of `blackBright`
|
|
3666
|
+
redBright: [91, 39],
|
|
3667
|
+
greenBright: [92, 39],
|
|
3668
|
+
yellowBright: [93, 39],
|
|
3669
|
+
blueBright: [94, 39],
|
|
3670
|
+
magentaBright: [95, 39],
|
|
3671
|
+
cyanBright: [96, 39],
|
|
3672
|
+
whiteBright: [97, 39]
|
|
3673
|
+
},
|
|
3674
|
+
bgColor: {
|
|
3675
|
+
bgBlack: [40, 49],
|
|
3676
|
+
bgRed: [41, 49],
|
|
3677
|
+
bgGreen: [42, 49],
|
|
3678
|
+
bgYellow: [43, 49],
|
|
3679
|
+
bgBlue: [44, 49],
|
|
3680
|
+
bgMagenta: [45, 49],
|
|
3681
|
+
bgCyan: [46, 49],
|
|
3682
|
+
bgWhite: [47, 49],
|
|
3683
|
+
// Bright color
|
|
3684
|
+
bgBlackBright: [100, 49],
|
|
3685
|
+
bgGray: [100, 49],
|
|
3686
|
+
// Alias of `bgBlackBright`
|
|
3687
|
+
bgGrey: [100, 49],
|
|
3688
|
+
// Alias of `bgBlackBright`
|
|
3689
|
+
bgRedBright: [101, 49],
|
|
3690
|
+
bgGreenBright: [102, 49],
|
|
3691
|
+
bgYellowBright: [103, 49],
|
|
3692
|
+
bgBlueBright: [104, 49],
|
|
3693
|
+
bgMagentaBright: [105, 49],
|
|
3694
|
+
bgCyanBright: [106, 49],
|
|
3695
|
+
bgWhiteBright: [107, 49]
|
|
3696
|
+
}
|
|
3697
|
+
};
|
|
3698
|
+
var modifierNames = Object.keys(styles.modifier);
|
|
3699
|
+
var foregroundColorNames = Object.keys(styles.color);
|
|
3700
|
+
var backgroundColorNames = Object.keys(styles.bgColor);
|
|
3701
|
+
var colorNames = [...foregroundColorNames, ...backgroundColorNames];
|
|
3702
|
+
function assembleStyles() {
|
|
3703
|
+
const codes = /* @__PURE__ */ new Map();
|
|
3704
|
+
for (const [groupName, group] of Object.entries(styles)) {
|
|
3705
|
+
for (const [styleName, style] of Object.entries(group)) {
|
|
3706
|
+
styles[styleName] = {
|
|
3707
|
+
open: `\x1B[${style[0]}m`,
|
|
3708
|
+
close: `\x1B[${style[1]}m`
|
|
3709
|
+
};
|
|
3710
|
+
group[styleName] = styles[styleName];
|
|
3711
|
+
codes.set(style[0], style[1]);
|
|
3712
|
+
}
|
|
3713
|
+
Object.defineProperty(styles, groupName, {
|
|
3714
|
+
value: group,
|
|
3715
|
+
enumerable: false
|
|
3716
|
+
});
|
|
3717
|
+
}
|
|
3718
|
+
Object.defineProperty(styles, "codes", {
|
|
3719
|
+
value: codes,
|
|
3720
|
+
enumerable: false
|
|
3721
|
+
});
|
|
3722
|
+
styles.color.close = "\x1B[39m";
|
|
3723
|
+
styles.bgColor.close = "\x1B[49m";
|
|
3724
|
+
styles.color.ansi = wrapAnsi16();
|
|
3725
|
+
styles.color.ansi256 = wrapAnsi256();
|
|
3726
|
+
styles.color.ansi16m = wrapAnsi16m();
|
|
3727
|
+
styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
|
|
3728
|
+
styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
|
|
3729
|
+
styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
|
|
3730
|
+
Object.defineProperties(styles, {
|
|
3731
|
+
rgbToAnsi256: {
|
|
3732
|
+
value(red, green, blue) {
|
|
3733
|
+
if (red === green && green === blue) {
|
|
3734
|
+
if (red < 8) {
|
|
3735
|
+
return 16;
|
|
3736
|
+
}
|
|
3737
|
+
if (red > 248) {
|
|
3738
|
+
return 231;
|
|
3739
|
+
}
|
|
3740
|
+
return Math.round((red - 8) / 247 * 24) + 232;
|
|
3741
|
+
}
|
|
3742
|
+
return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
|
|
3743
|
+
},
|
|
3744
|
+
enumerable: false
|
|
3745
|
+
},
|
|
3746
|
+
hexToRgb: {
|
|
3747
|
+
value(hex) {
|
|
3748
|
+
const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
|
|
3749
|
+
if (!matches) {
|
|
3750
|
+
return [0, 0, 0];
|
|
3751
|
+
}
|
|
3752
|
+
let [colorString] = matches;
|
|
3753
|
+
if (colorString.length === 3) {
|
|
3754
|
+
colorString = [...colorString].map((character) => character + character).join("");
|
|
3755
|
+
}
|
|
3756
|
+
const integer = Number.parseInt(colorString, 16);
|
|
3757
|
+
return [
|
|
3758
|
+
/* eslint-disable no-bitwise */
|
|
3759
|
+
integer >> 16 & 255,
|
|
3760
|
+
integer >> 8 & 255,
|
|
3761
|
+
integer & 255
|
|
3762
|
+
/* eslint-enable no-bitwise */
|
|
3763
|
+
];
|
|
3764
|
+
},
|
|
3765
|
+
enumerable: false
|
|
3766
|
+
},
|
|
3767
|
+
hexToAnsi256: {
|
|
3768
|
+
value: /* @__PURE__ */ __name((hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)), "value"),
|
|
3769
|
+
enumerable: false
|
|
3770
|
+
},
|
|
3771
|
+
ansi256ToAnsi: {
|
|
3772
|
+
value(code) {
|
|
3773
|
+
if (code < 8) {
|
|
3774
|
+
return 30 + code;
|
|
3775
|
+
}
|
|
3776
|
+
if (code < 16) {
|
|
3777
|
+
return 90 + (code - 8);
|
|
3778
|
+
}
|
|
3779
|
+
let red;
|
|
3780
|
+
let green;
|
|
3781
|
+
let blue;
|
|
3782
|
+
if (code >= 232) {
|
|
3783
|
+
red = ((code - 232) * 10 + 8) / 255;
|
|
3784
|
+
green = red;
|
|
3785
|
+
blue = red;
|
|
3786
|
+
} else {
|
|
3787
|
+
code -= 16;
|
|
3788
|
+
const remainder = code % 36;
|
|
3789
|
+
red = Math.floor(code / 36) / 5;
|
|
3790
|
+
green = Math.floor(remainder / 6) / 5;
|
|
3791
|
+
blue = remainder % 6 / 5;
|
|
3792
|
+
}
|
|
3793
|
+
const value = Math.max(red, green, blue) * 2;
|
|
3794
|
+
if (value === 0) {
|
|
3795
|
+
return 30;
|
|
3796
|
+
}
|
|
3797
|
+
let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
|
|
3798
|
+
if (value === 2) {
|
|
3799
|
+
result += 60;
|
|
3800
|
+
}
|
|
3801
|
+
return result;
|
|
3802
|
+
},
|
|
3803
|
+
enumerable: false
|
|
3804
|
+
},
|
|
3805
|
+
rgbToAnsi: {
|
|
3806
|
+
value: /* @__PURE__ */ __name((red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)), "value"),
|
|
3807
|
+
enumerable: false
|
|
3808
|
+
},
|
|
3809
|
+
hexToAnsi: {
|
|
3810
|
+
value: /* @__PURE__ */ __name((hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)), "value"),
|
|
3811
|
+
enumerable: false
|
|
3812
|
+
}
|
|
3813
|
+
});
|
|
3814
|
+
return styles;
|
|
3815
|
+
}
|
|
3816
|
+
__name(assembleStyles, "assembleStyles");
|
|
3817
|
+
var ansiStyles = assembleStyles();
|
|
3818
|
+
var ansi_styles_default = ansiStyles;
|
|
3819
|
+
|
|
3820
|
+
// packages/cli/node_modules/wrap-ansi/index.js
|
|
3821
|
+
var ANSI_ESCAPE = "\x1B";
|
|
3822
|
+
var ANSI_ESCAPE_CSI = "\x9B";
|
|
3823
|
+
var ESCAPES = /* @__PURE__ */ new Set([
|
|
3824
|
+
ANSI_ESCAPE,
|
|
3825
|
+
ANSI_ESCAPE_CSI
|
|
3826
|
+
]);
|
|
3827
|
+
var ANSI_ESCAPE_BELL = "\x07";
|
|
3828
|
+
var ANSI_CSI = "[";
|
|
3829
|
+
var ANSI_OSC = "]";
|
|
3830
|
+
var ANSI_SGR_TERMINATOR = "m";
|
|
3831
|
+
var ANSI_SGR_RESET = 0;
|
|
3832
|
+
var ANSI_SGR_RESET_FOREGROUND = 39;
|
|
3833
|
+
var ANSI_SGR_RESET_BACKGROUND = 49;
|
|
3834
|
+
var ANSI_SGR_RESET_UNDERLINE_COLOR = 59;
|
|
3835
|
+
var ANSI_SGR_FOREGROUND_EXTENDED = 38;
|
|
3836
|
+
var ANSI_SGR_BACKGROUND_EXTENDED = 48;
|
|
3837
|
+
var ANSI_SGR_UNDERLINE_COLOR_EXTENDED = 58;
|
|
3838
|
+
var ANSI_SGR_COLOR_MODE_256 = 5;
|
|
3839
|
+
var ANSI_SGR_COLOR_MODE_RGB = 2;
|
|
3840
|
+
var ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;
|
|
3841
|
+
var ANSI_ESCAPE_REGEX = new RegExp(`^\\u001B(?:\\${ANSI_CSI}(?<sgr>[0-9;]*)${ANSI_SGR_TERMINATOR}|${ANSI_ESCAPE_LINK}(?<uri>[^\\u0007\\u001B]*)(?:\\u0007|\\u001B\\\\))`);
|
|
3842
|
+
var ANSI_ESCAPE_CSI_REGEX = new RegExp(`^\\u009B(?<sgr>[0-9;]*)${ANSI_SGR_TERMINATOR}`);
|
|
3843
|
+
var ANSI_SGR_MODIFIER_CLOSE_CODES = new Set(ansi_styles_default.codes.values());
|
|
3844
|
+
ANSI_SGR_MODIFIER_CLOSE_CODES.delete(ANSI_SGR_RESET);
|
|
3845
|
+
var segmenter2 = new Intl.Segmenter();
|
|
3846
|
+
var getGraphemes = /* @__PURE__ */ __name((string) => Array.from(segmenter2.segment(string), ({ segment }) => segment), "getGraphemes");
|
|
3847
|
+
var TAB_SIZE = 8;
|
|
3848
|
+
var wrapAnsiCode = /* @__PURE__ */ __name((code) => `${ANSI_ESCAPE}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`, "wrapAnsiCode");
|
|
3849
|
+
var wrapAnsiHyperlink = /* @__PURE__ */ __name((url) => `${ANSI_ESCAPE}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`, "wrapAnsiHyperlink");
|
|
3850
|
+
var getSgrTokens = /* @__PURE__ */ __name((sgrParameters) => {
|
|
3851
|
+
const codes = sgrParameters.split(";").map((sgrParameter) => sgrParameter === "" ? ANSI_SGR_RESET : Number.parseInt(sgrParameter, 10));
|
|
3852
|
+
const sgrTokens = [];
|
|
3853
|
+
for (let index = 0; index < codes.length; index++) {
|
|
3854
|
+
const code = codes[index];
|
|
3855
|
+
if (!Number.isFinite(code)) {
|
|
3856
|
+
continue;
|
|
3857
|
+
}
|
|
3858
|
+
if (code === ANSI_SGR_FOREGROUND_EXTENDED || code === ANSI_SGR_BACKGROUND_EXTENDED || code === ANSI_SGR_UNDERLINE_COLOR_EXTENDED) {
|
|
3859
|
+
if (index + 1 >= codes.length) {
|
|
3860
|
+
break;
|
|
3861
|
+
}
|
|
3862
|
+
const mode = codes[index + 1];
|
|
3863
|
+
if (mode === ANSI_SGR_COLOR_MODE_256 && Number.isFinite(codes[index + 2])) {
|
|
3864
|
+
sgrTokens.push([code, mode, codes[index + 2]]);
|
|
3865
|
+
index += 2;
|
|
3866
|
+
continue;
|
|
3867
|
+
}
|
|
3868
|
+
const red = codes[index + 2];
|
|
3869
|
+
const green = codes[index + 3];
|
|
3870
|
+
const blue = codes[index + 4];
|
|
3871
|
+
if (mode === ANSI_SGR_COLOR_MODE_RGB && Number.isFinite(red) && Number.isFinite(green) && Number.isFinite(blue)) {
|
|
3872
|
+
sgrTokens.push([code, mode, red, green, blue]);
|
|
3873
|
+
index += 4;
|
|
3874
|
+
continue;
|
|
3875
|
+
}
|
|
3876
|
+
break;
|
|
3877
|
+
}
|
|
3878
|
+
sgrTokens.push([code]);
|
|
3879
|
+
}
|
|
3880
|
+
return sgrTokens;
|
|
3881
|
+
}, "getSgrTokens");
|
|
3882
|
+
var removeActiveStyle = /* @__PURE__ */ __name((activeStyles, family) => {
|
|
3883
|
+
const activeStyleIndex = activeStyles.findIndex((activeStyle) => activeStyle.family === family);
|
|
3884
|
+
if (activeStyleIndex !== -1) {
|
|
3885
|
+
activeStyles.splice(activeStyleIndex, 1);
|
|
3886
|
+
}
|
|
3887
|
+
}, "removeActiveStyle");
|
|
3888
|
+
var upsertActiveStyle = /* @__PURE__ */ __name((activeStyles, nextActiveStyle) => {
|
|
3889
|
+
removeActiveStyle(activeStyles, nextActiveStyle.family);
|
|
3890
|
+
activeStyles.push(nextActiveStyle);
|
|
3891
|
+
}, "upsertActiveStyle");
|
|
3892
|
+
var removeModifierStylesByClose = /* @__PURE__ */ __name((activeStyles, closeCode) => {
|
|
3893
|
+
for (let index = activeStyles.length - 1; index >= 0; index--) {
|
|
3894
|
+
const activeStyle = activeStyles[index];
|
|
3895
|
+
if (activeStyle.family.startsWith("modifier-") && activeStyle.close === closeCode) {
|
|
3896
|
+
activeStyles.splice(index, 1);
|
|
3897
|
+
}
|
|
3898
|
+
}
|
|
3899
|
+
}, "removeModifierStylesByClose");
|
|
3900
|
+
var getColorStyle = /* @__PURE__ */ __name((code, sgrToken) => {
|
|
3901
|
+
if (code >= 30 && code <= 37 || code >= 90 && code <= 97 || code === ANSI_SGR_FOREGROUND_EXTENDED && sgrToken.length > 1) {
|
|
3902
|
+
return {
|
|
3903
|
+
family: "foreground",
|
|
3904
|
+
open: sgrToken.join(";"),
|
|
3905
|
+
close: ANSI_SGR_RESET_FOREGROUND
|
|
3906
|
+
};
|
|
3907
|
+
}
|
|
3908
|
+
if (code >= 40 && code <= 47 || code >= 100 && code <= 107 || code === ANSI_SGR_BACKGROUND_EXTENDED && sgrToken.length > 1) {
|
|
3909
|
+
return {
|
|
3910
|
+
family: "background",
|
|
3911
|
+
open: sgrToken.join(";"),
|
|
3912
|
+
close: ANSI_SGR_RESET_BACKGROUND
|
|
3913
|
+
};
|
|
3914
|
+
}
|
|
3915
|
+
if (code === ANSI_SGR_UNDERLINE_COLOR_EXTENDED && sgrToken.length > 1) {
|
|
3916
|
+
return {
|
|
3917
|
+
family: "underlineColor",
|
|
3918
|
+
open: sgrToken.join(";"),
|
|
3919
|
+
close: ANSI_SGR_RESET_UNDERLINE_COLOR
|
|
3920
|
+
};
|
|
3921
|
+
}
|
|
3922
|
+
}, "getColorStyle");
|
|
3923
|
+
var applySgrResetCode = /* @__PURE__ */ __name((code, activeStyles) => {
|
|
3924
|
+
if (code === ANSI_SGR_RESET) {
|
|
3925
|
+
activeStyles.length = 0;
|
|
3926
|
+
return true;
|
|
3927
|
+
}
|
|
3928
|
+
if (code === ANSI_SGR_RESET_FOREGROUND) {
|
|
3929
|
+
removeActiveStyle(activeStyles, "foreground");
|
|
3930
|
+
return true;
|
|
3931
|
+
}
|
|
3932
|
+
if (code === ANSI_SGR_RESET_BACKGROUND) {
|
|
3933
|
+
removeActiveStyle(activeStyles, "background");
|
|
3934
|
+
return true;
|
|
3935
|
+
}
|
|
3936
|
+
if (code === ANSI_SGR_RESET_UNDERLINE_COLOR) {
|
|
3937
|
+
removeActiveStyle(activeStyles, "underlineColor");
|
|
3938
|
+
return true;
|
|
3939
|
+
}
|
|
3940
|
+
if (ANSI_SGR_MODIFIER_CLOSE_CODES.has(code)) {
|
|
3941
|
+
removeModifierStylesByClose(activeStyles, code);
|
|
3942
|
+
return true;
|
|
3943
|
+
}
|
|
3944
|
+
return false;
|
|
3945
|
+
}, "applySgrResetCode");
|
|
3946
|
+
var applySgrToken = /* @__PURE__ */ __name((sgrToken, activeStyles) => {
|
|
3947
|
+
const [code] = sgrToken;
|
|
3948
|
+
if (applySgrResetCode(code, activeStyles)) {
|
|
3949
|
+
return;
|
|
3950
|
+
}
|
|
3951
|
+
const colorStyle = getColorStyle(code, sgrToken);
|
|
3952
|
+
if (colorStyle) {
|
|
3953
|
+
upsertActiveStyle(activeStyles, colorStyle);
|
|
3954
|
+
return;
|
|
3955
|
+
}
|
|
3956
|
+
const close = ansi_styles_default.codes.get(code);
|
|
3957
|
+
if (close !== void 0 && close !== ANSI_SGR_RESET) {
|
|
3958
|
+
upsertActiveStyle(activeStyles, {
|
|
3959
|
+
family: `modifier-${code}`,
|
|
3960
|
+
open: sgrToken.join(";"),
|
|
3961
|
+
close
|
|
3962
|
+
});
|
|
3963
|
+
}
|
|
3964
|
+
}, "applySgrToken");
|
|
3965
|
+
var applySgrParameters = /* @__PURE__ */ __name((sgrParameters, activeStyles) => {
|
|
3966
|
+
for (const sgrToken of getSgrTokens(sgrParameters)) {
|
|
3967
|
+
applySgrToken(sgrToken, activeStyles);
|
|
3968
|
+
}
|
|
3969
|
+
}, "applySgrParameters");
|
|
3970
|
+
var applySgrResets = /* @__PURE__ */ __name((sgrParameters, activeStyles) => {
|
|
3971
|
+
for (const sgrToken of getSgrTokens(sgrParameters)) {
|
|
3972
|
+
const [code] = sgrToken;
|
|
3973
|
+
applySgrResetCode(code, activeStyles);
|
|
3974
|
+
}
|
|
3975
|
+
}, "applySgrResets");
|
|
3976
|
+
var applyLeadingSgrResets = /* @__PURE__ */ __name((string, activeStyles) => {
|
|
3977
|
+
let remainder = string;
|
|
3978
|
+
while (remainder.length > 0) {
|
|
3979
|
+
if (remainder.startsWith(ANSI_ESCAPE) && remainder[1] !== "\\") {
|
|
3980
|
+
const match = ANSI_ESCAPE_REGEX.exec(remainder);
|
|
3981
|
+
if (!match) {
|
|
3982
|
+
break;
|
|
3983
|
+
}
|
|
3984
|
+
if (match.groups.sgr !== void 0) {
|
|
3985
|
+
applySgrResets(match.groups.sgr, activeStyles);
|
|
3986
|
+
}
|
|
3987
|
+
remainder = remainder.slice(match[0].length);
|
|
3988
|
+
continue;
|
|
3989
|
+
}
|
|
3990
|
+
if (remainder.startsWith(ANSI_ESCAPE_CSI)) {
|
|
3991
|
+
const match = ANSI_ESCAPE_CSI_REGEX.exec(remainder);
|
|
3992
|
+
if (!match || match.groups.sgr === void 0) {
|
|
3993
|
+
break;
|
|
3994
|
+
}
|
|
3995
|
+
applySgrResets(match.groups.sgr, activeStyles);
|
|
3996
|
+
remainder = remainder.slice(match[0].length);
|
|
3997
|
+
continue;
|
|
3998
|
+
}
|
|
3999
|
+
break;
|
|
4000
|
+
}
|
|
4001
|
+
}, "applyLeadingSgrResets");
|
|
4002
|
+
var getClosingSgrSequence = /* @__PURE__ */ __name((activeStyles) => [...activeStyles].reverse().map((activeStyle) => wrapAnsiCode(activeStyle.close)).join(""), "getClosingSgrSequence");
|
|
4003
|
+
var getOpeningSgrSequence = /* @__PURE__ */ __name((activeStyles) => activeStyles.map((activeStyle) => wrapAnsiCode(activeStyle.open)).join(""), "getOpeningSgrSequence");
|
|
4004
|
+
var wordLengths = /* @__PURE__ */ __name((string) => string.split(" ").map((word) => stringWidth2(word)), "wordLengths");
|
|
4005
|
+
var wrapWord = /* @__PURE__ */ __name((rows, word, columns) => {
|
|
4006
|
+
const characters = getGraphemes(word);
|
|
4007
|
+
let isInsideEscape = false;
|
|
4008
|
+
let isInsideLinkEscape = false;
|
|
4009
|
+
let visible = stringWidth2(stripAnsi(rows.at(-1)));
|
|
4010
|
+
for (const [index, character] of characters.entries()) {
|
|
4011
|
+
const characterLength = stringWidth2(character);
|
|
4012
|
+
if (visible + characterLength <= columns) {
|
|
4013
|
+
rows[rows.length - 1] += character;
|
|
4014
|
+
} else {
|
|
4015
|
+
rows.push(character);
|
|
4016
|
+
visible = 0;
|
|
4017
|
+
}
|
|
4018
|
+
if (ESCAPES.has(character) && !(isInsideLinkEscape && character === ANSI_ESCAPE && characters[index + 1] === "\\")) {
|
|
4019
|
+
isInsideEscape = true;
|
|
4020
|
+
const ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join("");
|
|
4021
|
+
isInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;
|
|
4022
|
+
}
|
|
4023
|
+
if (isInsideEscape) {
|
|
4024
|
+
if (isInsideLinkEscape) {
|
|
4025
|
+
if (character === ANSI_ESCAPE_BELL || character === "\\" && index > 0 && characters[index - 1] === ANSI_ESCAPE) {
|
|
4026
|
+
isInsideEscape = false;
|
|
4027
|
+
isInsideLinkEscape = false;
|
|
4028
|
+
}
|
|
4029
|
+
} else if (character === ANSI_SGR_TERMINATOR) {
|
|
4030
|
+
isInsideEscape = false;
|
|
4031
|
+
}
|
|
4032
|
+
continue;
|
|
4033
|
+
}
|
|
4034
|
+
visible += characterLength;
|
|
4035
|
+
if (visible === columns && index < characters.length - 1) {
|
|
4036
|
+
rows.push("");
|
|
4037
|
+
visible = 0;
|
|
4038
|
+
}
|
|
4039
|
+
}
|
|
4040
|
+
if (!visible && rows.at(-1).length > 0 && rows.length > 1) {
|
|
4041
|
+
rows[rows.length - 2] += rows.pop();
|
|
4042
|
+
}
|
|
4043
|
+
}, "wrapWord");
|
|
4044
|
+
var stringVisibleTrimSpacesRight = /* @__PURE__ */ __name((string) => {
|
|
4045
|
+
const words = string.split(" ");
|
|
4046
|
+
let last = words.length;
|
|
4047
|
+
while (last > 0) {
|
|
4048
|
+
if (stringWidth2(words[last - 1]) > 0) {
|
|
4049
|
+
break;
|
|
4050
|
+
}
|
|
4051
|
+
last--;
|
|
4052
|
+
}
|
|
4053
|
+
if (last === words.length) {
|
|
4054
|
+
return string;
|
|
4055
|
+
}
|
|
4056
|
+
return words.slice(0, last).join(" ") + words.slice(last).join("");
|
|
4057
|
+
}, "stringVisibleTrimSpacesRight");
|
|
4058
|
+
var expandTabs = /* @__PURE__ */ __name((line) => {
|
|
4059
|
+
if (!line.includes(" ")) {
|
|
4060
|
+
return line;
|
|
4061
|
+
}
|
|
4062
|
+
const segments = line.split(" ");
|
|
4063
|
+
let visible = 0;
|
|
4064
|
+
let expandedLine = "";
|
|
4065
|
+
for (const [index, segment] of segments.entries()) {
|
|
4066
|
+
expandedLine += segment;
|
|
4067
|
+
visible += stringWidth2(segment);
|
|
4068
|
+
if (index < segments.length - 1) {
|
|
4069
|
+
const spaces = TAB_SIZE - visible % TAB_SIZE;
|
|
4070
|
+
expandedLine += " ".repeat(spaces);
|
|
4071
|
+
visible += spaces;
|
|
4072
|
+
}
|
|
4073
|
+
}
|
|
4074
|
+
return expandedLine;
|
|
4075
|
+
}, "expandTabs");
|
|
4076
|
+
var exec = /* @__PURE__ */ __name((string, columns, options = {}) => {
|
|
4077
|
+
if (options.trim !== false && string.trim() === "") {
|
|
4078
|
+
return "";
|
|
4079
|
+
}
|
|
4080
|
+
let returnValue = "";
|
|
4081
|
+
let escapeUrl;
|
|
4082
|
+
const activeStyles = [];
|
|
4083
|
+
const lengths = wordLengths(string);
|
|
4084
|
+
let rows = [""];
|
|
4085
|
+
for (const [index, word] of string.split(" ").entries()) {
|
|
4086
|
+
if (options.trim !== false) {
|
|
4087
|
+
rows[rows.length - 1] = rows.at(-1).trimStart();
|
|
4088
|
+
}
|
|
4089
|
+
let rowLength = stringWidth2(rows.at(-1));
|
|
4090
|
+
if (index !== 0) {
|
|
4091
|
+
if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {
|
|
4092
|
+
rows.push("");
|
|
4093
|
+
rowLength = 0;
|
|
4094
|
+
}
|
|
4095
|
+
if (rowLength > 0 || options.trim === false) {
|
|
4096
|
+
rows[rows.length - 1] += " ";
|
|
4097
|
+
rowLength++;
|
|
4098
|
+
}
|
|
4099
|
+
}
|
|
4100
|
+
if (options.hard && options.wordWrap !== false && lengths[index] > columns) {
|
|
4101
|
+
const remainingColumns = columns - rowLength;
|
|
4102
|
+
const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);
|
|
4103
|
+
const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);
|
|
4104
|
+
if (breaksStartingNextLine < breaksStartingThisLine) {
|
|
4105
|
+
rows.push("");
|
|
4106
|
+
}
|
|
4107
|
+
wrapWord(rows, word, columns);
|
|
4108
|
+
continue;
|
|
4109
|
+
}
|
|
4110
|
+
if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {
|
|
4111
|
+
if (options.wordWrap === false && rowLength < columns) {
|
|
4112
|
+
wrapWord(rows, word, columns);
|
|
4113
|
+
continue;
|
|
4114
|
+
}
|
|
4115
|
+
rows.push("");
|
|
4116
|
+
}
|
|
4117
|
+
if (rowLength + lengths[index] > columns && options.wordWrap === false) {
|
|
4118
|
+
wrapWord(rows, word, columns);
|
|
4119
|
+
continue;
|
|
4120
|
+
}
|
|
4121
|
+
rows[rows.length - 1] += word;
|
|
4122
|
+
}
|
|
4123
|
+
if (options.trim !== false) {
|
|
4124
|
+
rows = rows.map((row) => stringVisibleTrimSpacesRight(row));
|
|
4125
|
+
}
|
|
4126
|
+
const preString = rows.join("\n");
|
|
4127
|
+
const pre = getGraphemes(preString);
|
|
4128
|
+
let preStringIndex = 0;
|
|
4129
|
+
for (const [index, character] of pre.entries()) {
|
|
4130
|
+
returnValue += character;
|
|
4131
|
+
if (character === ANSI_ESCAPE && pre[index + 1] !== "\\") {
|
|
4132
|
+
const { groups } = ANSI_ESCAPE_REGEX.exec(preString.slice(preStringIndex)) || { groups: {} };
|
|
4133
|
+
if (groups.sgr !== void 0) {
|
|
4134
|
+
applySgrParameters(groups.sgr, activeStyles);
|
|
4135
|
+
} else if (groups.uri !== void 0) {
|
|
4136
|
+
escapeUrl = groups.uri.length === 0 ? void 0 : groups.uri;
|
|
4137
|
+
}
|
|
4138
|
+
} else if (character === ANSI_ESCAPE_CSI) {
|
|
4139
|
+
const { groups } = ANSI_ESCAPE_CSI_REGEX.exec(preString.slice(preStringIndex)) || { groups: {} };
|
|
4140
|
+
if (groups.sgr !== void 0) {
|
|
4141
|
+
applySgrParameters(groups.sgr, activeStyles);
|
|
4142
|
+
}
|
|
4143
|
+
}
|
|
4144
|
+
if (pre[index + 1] === "\n") {
|
|
4145
|
+
if (escapeUrl) {
|
|
4146
|
+
returnValue += wrapAnsiHyperlink("");
|
|
4147
|
+
}
|
|
4148
|
+
returnValue += getClosingSgrSequence(activeStyles);
|
|
4149
|
+
} else if (character === "\n") {
|
|
4150
|
+
const openingStyles = [...activeStyles];
|
|
4151
|
+
applyLeadingSgrResets(preString.slice(preStringIndex + 1), openingStyles);
|
|
4152
|
+
returnValue += getOpeningSgrSequence(openingStyles);
|
|
4153
|
+
if (escapeUrl) {
|
|
4154
|
+
returnValue += wrapAnsiHyperlink(escapeUrl);
|
|
4155
|
+
}
|
|
4156
|
+
}
|
|
4157
|
+
preStringIndex += character.length;
|
|
4158
|
+
}
|
|
4159
|
+
return returnValue;
|
|
4160
|
+
}, "exec");
|
|
4161
|
+
function wrapAnsi(string, columns, options) {
|
|
4162
|
+
return String(string).normalize().replaceAll("\r\n", "\n").split("\n").map((line) => exec(expandTabs(line), columns, options)).join("\n");
|
|
4163
|
+
}
|
|
4164
|
+
__name(wrapAnsi, "wrapAnsi");
|
|
4165
|
+
|
|
3484
4166
|
// packages/cli/src/ui/constants.ts
|
|
3485
4167
|
init_esbuild_shims();
|
|
3486
4168
|
var EstimatedArtWidth = 59;
|
|
@@ -3654,6 +4336,9 @@ var ToolElapsedTime = /* @__PURE__ */ __name(({
|
|
|
3654
4336
|
|
|
3655
4337
|
// packages/cli/src/ui/components/messages/CompactToolGroupDisplay.tsx
|
|
3656
4338
|
var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
|
|
4339
|
+
var COMPACT_GROUP_HORIZONTAL_PADDING = 2;
|
|
4340
|
+
var ELAPSED_TIME_MARGIN_LEFT = 1;
|
|
4341
|
+
var EXECUTING_ELAPSED_TIME_RESERVED_LABEL = "99h 59m 59s";
|
|
3657
4342
|
function getOverallStatus(toolCalls) {
|
|
3658
4343
|
if (toolCalls.some((t2) => t2.status === "Confirming" /* Confirming */))
|
|
3659
4344
|
return "Confirming" /* Confirming */;
|
|
@@ -3680,6 +4365,23 @@ function getShellTimeoutMs(tool) {
|
|
|
3680
4365
|
return void 0;
|
|
3681
4366
|
}
|
|
3682
4367
|
__name(getShellTimeoutMs, "getShellTimeoutMs");
|
|
4368
|
+
function isToolGroupActive(status) {
|
|
4369
|
+
return status === "Executing" /* Executing */ || status === "Pending" /* Pending */ || status === "Confirming" /* Confirming */;
|
|
4370
|
+
}
|
|
4371
|
+
__name(isToolGroupActive, "isToolGroupActive");
|
|
4372
|
+
function getElapsedTimeReservedWidth(tool, status) {
|
|
4373
|
+
if (status !== "Executing" /* Executing */) return 0;
|
|
4374
|
+
const timeoutMs = getShellTimeoutMs(tool);
|
|
4375
|
+
let label = EXECUTING_ELAPSED_TIME_RESERVED_LABEL;
|
|
4376
|
+
if (timeoutMs != null && timeoutMs > 0) {
|
|
4377
|
+
const maxElapsedStr = formatDuration(timeoutMs, {
|
|
4378
|
+
hideTrailingZeros: true
|
|
4379
|
+
});
|
|
4380
|
+
label = `(${maxElapsedStr} \xB7 timeout ${maxElapsedStr})`;
|
|
4381
|
+
}
|
|
4382
|
+
return ELAPSED_TIME_MARGIN_LEFT + stringWidth(label);
|
|
4383
|
+
}
|
|
4384
|
+
__name(getElapsedTimeReservedWidth, "getElapsedTimeReservedWidth");
|
|
3683
4385
|
var TOOL_NAME_TO_CATEGORY = {
|
|
3684
4386
|
[ToolDisplayNames.READ_FILE]: "read",
|
|
3685
4387
|
[ToolDisplayNames.EDIT]: "edit",
|
|
@@ -3842,14 +4544,31 @@ function buildToolSummary(toolCalls, isActive) {
|
|
|
3842
4544
|
return parts.join(", ");
|
|
3843
4545
|
}
|
|
3844
4546
|
__name(buildToolSummary, "buildToolSummary");
|
|
4547
|
+
function estimateCompactToolGroupHeight(toolCalls, contentWidth) {
|
|
4548
|
+
if (toolCalls.length === 0) return 0;
|
|
4549
|
+
const overallStatus = getOverallStatus(toolCalls);
|
|
4550
|
+
const activeTool = getActiveTool(toolCalls);
|
|
4551
|
+
const isActive = isToolGroupActive(overallStatus);
|
|
4552
|
+
const summary = `${buildToolSummary(toolCalls, isActive)}${isActive ? "\u2026" : ""}`;
|
|
4553
|
+
const summaryWidth = Math.max(
|
|
4554
|
+
1,
|
|
4555
|
+
contentWidth - COMPACT_GROUP_HORIZONTAL_PADDING - STATUS_INDICATOR_WIDTH - getElapsedTimeReservedWidth(activeTool, overallStatus)
|
|
4556
|
+
);
|
|
4557
|
+
const wrappedSummary = wrapAnsi(summary, summaryWidth, {
|
|
4558
|
+
hard: true,
|
|
4559
|
+
trim: false
|
|
4560
|
+
});
|
|
4561
|
+
return Math.max(1, wrappedSummary.split("\n").length);
|
|
4562
|
+
}
|
|
4563
|
+
__name(estimateCompactToolGroupHeight, "estimateCompactToolGroupHeight");
|
|
3845
4564
|
var CompactToolGroupDisplay = /* @__PURE__ */ __name(({ toolCalls, contentWidth }) => {
|
|
3846
4565
|
if (toolCalls.length === 0) return null;
|
|
3847
4566
|
const overallStatus = getOverallStatus(toolCalls);
|
|
3848
4567
|
const activeTool = getActiveTool(toolCalls);
|
|
3849
|
-
const isActive = overallStatus
|
|
4568
|
+
const isActive = isToolGroupActive(overallStatus);
|
|
3850
4569
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Box_default, { flexDirection: "column", width: contentWidth, paddingX: 1, gap: 0, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
3851
4570
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ToolStatusIndicator, { status: overallStatus, name: activeTool.name }),
|
|
3852
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Text, { wrap: "
|
|
4571
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Box_default, { flexGrow: 1, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Text, { wrap: "wrap", bold: true, children: [
|
|
3853
4572
|
buildToolSummary(toolCalls, isActive),
|
|
3854
4573
|
isActive && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Text, { children: "\u2026" }, "ellipsis")
|
|
3855
4574
|
] }) }),
|
|
@@ -4606,6 +5325,7 @@ export {
|
|
|
4606
5325
|
useFocus,
|
|
4607
5326
|
useKeypressContext,
|
|
4608
5327
|
KeypressProvider,
|
|
5328
|
+
wrapAnsi,
|
|
4609
5329
|
SCREEN_READER_USER_PREFIX,
|
|
4610
5330
|
SCREEN_READER_MODEL_PREFIX,
|
|
4611
5331
|
SHELL_COMMAND_NAME,
|
|
@@ -4619,6 +5339,7 @@ export {
|
|
|
4619
5339
|
ToolStatusIndicator,
|
|
4620
5340
|
ToolElapsedTime,
|
|
4621
5341
|
isCollapsibleTool,
|
|
5342
|
+
estimateCompactToolGroupHeight,
|
|
4622
5343
|
CompactToolGroupDisplay,
|
|
4623
5344
|
getSystemInfoFields,
|
|
4624
5345
|
calculateErrorRate,
|