@qwen-code/qwen-code 0.21.1-simplify-system-prompt.0 → 0.21.1
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/model-providers.md +2 -0
- package/bundled/qc-helper/docs/configuration/settings.md +38 -28
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/github.md +107 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +61 -6
- package/bundled/qc-helper/docs/features/code-review.md +1 -1
- package/bundled/qc-helper/docs/features/hooks.md +52 -15
- package/bundled/qc-helper/docs/features/mcp.md +9 -1
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +3 -1
- package/bundled/qc-helper/docs/features/sub-agents.md +20 -0
- package/bundled/qc-helper/docs/qwen-serve.md +4 -2
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
- package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
- package/bundled/review/DESIGN.md +19 -0
- package/bundled/review/SKILL.md +120 -61
- package/chunks/MaxSizedBox-VI3ROJJA.js +84 -0
- package/chunks/{StandaloneSessionPicker-O6RKBPU4.js → StandaloneSessionPicker-LYXKD2EV.js} +66 -68
- package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-DFVPFQ6C.js} +2 -2
- package/chunks/{acpAgent-HYFVXVDR.js → acpAgent-WN5SRDQO.js} +1317 -542
- package/chunks/agent-K6ECSM64.js +80 -0
- package/chunks/agent-headless-NO4Y2HOE.js +74 -0
- package/chunks/{anthropicContentGenerator-LXUXMOE7.js → anthropicContentGenerator-V2QOGVYD.js} +61 -20
- package/chunks/{artifact-tool-Y5T7GG7F.js → artifact-tool-6K6U7XYJ.js} +4 -4
- package/chunks/{askUserQuestion-2H6747FR.js → askUserQuestion-GD2IJJ7I.js} +4 -4
- package/chunks/bridge-3KJEWDNE.js +90 -0
- package/chunks/{build-RV63TIRH.js → build-S6DO7LMM.js} +1 -1
- package/chunks/{ca-25EDXPFZ.js → ca-6W3SK7OQ.js} +6 -1
- package/chunks/{channel-management-service-G74LFADV.js → channel-management-service-XR7GZSWF.js} +4 -4
- package/chunks/channel-settings-store-HW4FXXUA.js +87 -0
- package/chunks/{channel-worker-group-PTJIJSKC.js → channel-worker-group-XDPTDWTX.js} +9 -5
- package/chunks/{channel-worker-manager-WIMGM2FD.js → channel-worker-manager-YYEHVRRE.js} +9 -5
- package/chunks/{channel-worker-supervisor-KUFTR6P5.js → channel-worker-supervisor-74HTWA2G.js} +5 -4
- package/chunks/{chunk-M5JM7OSF.js → chunk-2DN4J57Y.js} +2 -3
- package/chunks/{chunk-WDSWXQU3.js → chunk-2FAK6PNM.js} +2 -2
- package/chunks/{chunk-BPJSQIJX.js → chunk-2J3OJGTL.js} +0 -2
- package/chunks/{chunk-EPDRMGT4.js → chunk-2LKVPASC.js} +4 -28
- package/chunks/{chunk-PWTZEM3C.js → chunk-2LQTH543.js} +3 -37
- package/chunks/{chunk-PANH4R3B.js → chunk-2N7CODY5.js} +18 -12
- package/chunks/{chunk-ER5LWJR6.js → chunk-2XSLTRFZ.js} +3 -3
- package/chunks/{chunk-6PSLCFQ2.js → chunk-3EFXSQCM.js} +18 -9
- package/chunks/{chunk-HIJQF5B5.js → chunk-3L2SPEBH.js} +1 -1
- package/chunks/{chunk-BIQWWWJN.js → chunk-4G2BISNC.js} +1 -1
- package/chunks/{chunk-B4UMZKMU.js → chunk-52ZSWYEG.js} +1 -1
- package/chunks/{chunk-YAF5VNU7.js → chunk-5KTQXHPY.js} +4 -5
- package/chunks/{chunk-2YZJCM5T.js → chunk-5MKRTI4T.js} +4 -4
- package/chunks/{chunk-DHHOYAPR.js → chunk-5TBMQLGG.js} +7 -7
- package/chunks/{chunk-A4UCTEB5.js → chunk-5WV5S2GT.js} +0 -1
- package/chunks/{chunk-FY3M44RD.js → chunk-5YKDXHUY.js} +3 -3
- package/chunks/{chunk-TF2X2WCT.js → chunk-5ZF5XXTS.js} +2 -2
- package/chunks/{chunk-K4XWPEWB.js → chunk-64LQLPL7.js} +4 -33
- package/chunks/{chunk-B7QDM6Z7.js → chunk-657BH7VM.js} +2 -2
- package/chunks/{chunk-5THCYPLO.js → chunk-65PQENQP.js} +14 -7
- package/chunks/{chunk-J6D3VXCC.js → chunk-6PE7N3A4.js} +17 -6
- package/chunks/{chunk-JZA3JUDJ.js → chunk-6QIGFD5W.js} +1 -1
- package/chunks/{chunk-Z5BLYMZM.js → chunk-6RPMI2AB.js} +6 -6
- package/chunks/{chunk-OHNBB4XR.js → chunk-75GFAX4R.js} +1 -1
- package/chunks/{chunk-BO4XCS7P.js → chunk-75MIQ3LV.js} +20 -85
- package/chunks/{chunk-52O2CIUL.js → chunk-7AEJDLRA.js} +130 -5
- package/chunks/{chunk-BYFNTGKI.js → chunk-7BAU433D.js} +2287 -941
- package/chunks/{chunk-ZE5WPL4I.js → chunk-7DXQIJID.js} +3 -3
- package/chunks/{chunk-ML52PL6O.js → chunk-7I5GTCT4.js} +483 -248
- package/chunks/{chunk-A5L3JMUA.js → chunk-7XATOOE7.js} +18 -4
- package/chunks/{chunk-C3NS4F2Q.js → chunk-A2D5BAVP.js} +1 -1
- package/chunks/{chunk-5I2IWRSH.js → chunk-A3NDJ5SB.js} +2 -2
- package/chunks/{chunk-2JM6GZ5D.js → chunk-A4COXFB3.js} +8 -13
- package/chunks/{chunk-CC4N4M36.js → chunk-AQIDMUGU.js} +1 -1
- package/chunks/{chunk-PJIZUQVC.js → chunk-AZQ3DT76.js} +2 -2
- package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
- package/chunks/{chunk-BJX6ZSUK.js → chunk-BCZFQXWK.js} +2 -2
- package/chunks/{chunk-SRZ6DXVG.js → chunk-BGTQCTQW.js} +44 -136
- package/chunks/{chunk-PSWQZHEA.js → chunk-BMFALVGQ.js} +1 -1
- package/chunks/{chunk-XHRTVPG2.js → chunk-BNWB5CYE.js} +7 -7
- package/chunks/{chunk-P5V4T7NK.js → chunk-BPZKP57P.js} +11 -3
- package/chunks/{chunk-2OM7GEXO.js → chunk-CAPPWD3X.js} +3 -3
- package/chunks/{chunk-LNURQEMZ.js → chunk-CQL64ESB.js} +7 -7
- package/chunks/{chunk-TOFQCPDC.js → chunk-CVHIL5IG.js} +4 -5
- package/chunks/{chunk-XVNQMZ2I.js → chunk-DGEIYUC3.js} +0 -1
- package/chunks/{chunk-BPZALHVR.js → chunk-DI35ZN7T.js} +1 -1
- package/chunks/{chunk-SQBYH7PX.js → chunk-DZLYR4U3.js} +1 -1
- package/chunks/{chunk-JALU3ZDU.js → chunk-EIF3FXTB.js} +117 -24
- package/chunks/{chunk-TQCBGUHN.js → chunk-EJGJIBRS.js} +5 -5
- package/chunks/{chunk-5U4IPFBR.js → chunk-EVKE2FZL.js} +4 -4
- package/chunks/{chunk-OKY7HXPG.js → chunk-FNMZK765.js} +2 -2
- package/chunks/{chunk-KU5XMLDK.js → chunk-FTD6DP4T.js} +3 -1
- package/chunks/chunk-FYJ7W2PI.js +194 -0
- package/chunks/{chunk-L5UHQJTJ.js → chunk-GATT5TKW.js} +1 -1
- package/chunks/{chunk-MVS3NS2N.js → chunk-GEBV2JGB.js} +28 -5
- package/chunks/{chunk-VAK25FTU.js → chunk-GKX7E4CO.js} +1 -1
- package/chunks/{chunk-LS77BEZP.js → chunk-GLCZKT5V.js} +1 -5
- package/chunks/{chunk-N3FAY5CM.js → chunk-GNR2RNMP.js} +157 -4
- package/chunks/{chunk-YH6G52F2.js → chunk-GXIJHV66.js} +4 -4
- package/chunks/{chunk-HV3G62R6.js → chunk-GZ3RCT54.js} +1 -1
- package/chunks/{chunk-QY5MMZ6O.js → chunk-HMRM2A3U.js} +3 -3
- package/chunks/chunk-HV26XH34.js +319 -0
- package/chunks/{chunk-M4UKFCZ2.js → chunk-J7OACQDE.js} +193 -155
- package/chunks/{chunk-3HBZKBMQ.js → chunk-JFMA7Y5M.js} +5 -5
- package/chunks/{chunk-OJGCZBB7.js → chunk-JHNRZMHI.js} +41 -36
- package/chunks/{chunk-63P4EL5V.js → chunk-JMONIXMJ.js} +1 -1
- package/chunks/{chunk-L26JL52R.js → chunk-JSD33JG6.js} +47 -64
- package/chunks/{chunk-KIUFNBHR.js → chunk-JTV5K7NH.js} +1 -1
- package/chunks/{chunk-PHVR5UUY.js → chunk-JX27F6QS.js} +1 -1
- package/chunks/chunk-JYBU6YUE.js +378 -0
- package/chunks/{chunk-A6UO2C7C.js → chunk-KAMYKP7E.js} +167 -81
- package/chunks/{chunk-LG4GZIVV.js → chunk-KCO4FLFJ.js} +4 -4
- package/chunks/{chunk-2W3OOD4W.js → chunk-L55JWS76.js} +6 -3
- package/chunks/{chunk-RHLZR4E5.js → chunk-LGAOC3ZS.js} +1 -1
- package/chunks/{chunk-DM22XS4K.js → chunk-LO4ROVP4.js} +261 -15
- package/chunks/{chunk-NH6KE4JX.js → chunk-LW3RFMG7.js} +3 -3
- package/chunks/{chunk-J56UI34H.js → chunk-M7OONWYU.js} +2 -2
- package/chunks/{chunk-V6VRAM7B.js → chunk-MHAIJPTD.js} +12 -12
- package/chunks/{chunk-FODK6UMO.js → chunk-MPHPFVKK.js} +0 -2
- package/chunks/{chunk-LZEMEFKY.js → chunk-MR5EAQ5M.js} +1 -1
- package/chunks/{chunk-JESCGQM3.js → chunk-NAVJD2PQ.js} +8 -7
- package/chunks/{chunk-H5FFA6TH.js → chunk-NOKIVHOL.js} +16 -3
- package/chunks/{chunk-6OUGMXDC.js → chunk-NWNEANAT.js} +7 -7
- package/chunks/{chunk-B6ZJ7SI6.js → chunk-OCESJA77.js} +391 -328
- package/chunks/chunk-OCPBI7J5.js +18 -0
- package/chunks/{chunk-E5TUC6CA.js → chunk-OKF7JF3R.js} +3 -3
- package/chunks/{chunk-2Q3OT4OV.js → chunk-P4WOAOJW.js} +141 -64
- package/chunks/{chunk-4M377AZG.js → chunk-PB3MBFKG.js} +6 -6
- package/chunks/{chunk-QPDRAXDJ.js → chunk-PLDQBIO6.js} +1 -1
- package/chunks/{chunk-FNQ6T3CV.js → chunk-PONHVBRT.js} +10 -7
- package/chunks/{chunk-RWS5VYWC.js → chunk-PT722TDT.js} +267 -378
- package/chunks/chunk-Q43KPN7X.js +2196 -0
- package/chunks/{chunk-VDDGDZMA.js → chunk-QHWCP53L.js} +14 -7
- package/chunks/{chunk-SASBXAQL.js → chunk-QIZKCVM3.js} +4 -4
- package/chunks/{chunk-32MVHM4T.js → chunk-RCUQIPTN.js} +1 -1
- package/chunks/{chunk-6FGBXPWM.js → chunk-RPLGZJV2.js} +38 -44
- package/chunks/{chunk-3IXOIAKE.js → chunk-S4WJVPZW.js} +18 -6
- package/chunks/{chunk-6AM5D4ME.js → chunk-S6LOFUVP.js} +0 -12
- package/chunks/{chunk-INADJJGW.js → chunk-S7W2GKIO.js} +0 -2
- package/chunks/{chunk-MUP3T3AD.js → chunk-SGFT55XI.js} +1 -35
- package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
- package/chunks/chunk-T26EAKDL.js +13 -0
- package/chunks/{chunk-3MSHSCSN.js → chunk-T2QMKU3R.js} +79 -1
- package/chunks/{chunk-VFSJ5VRH.js → chunk-T3O2B4XO.js} +3 -3
- package/chunks/{chunk-MSLKI6C2.js → chunk-T4TXDL7G.js} +32 -21
- package/chunks/{chunk-E5WH5O3C.js → chunk-TBBV36Y4.js} +4 -4
- package/chunks/{chunk-VV6XU5L7.js → chunk-TCIFAA7K.js} +16 -11
- package/chunks/{chunk-DN6ZX5AY.js → chunk-TDL6LB4K.js} +46 -11
- package/chunks/{chunk-W4CQXHT6.js → chunk-TFRMVU6R.js} +1 -1
- package/chunks/{chunk-GDIPH4JY.js → chunk-TV64SXKD.js} +6 -6
- package/chunks/{chunk-FQK6JAFG.js → chunk-U3E3UQAA.js} +4 -4
- package/chunks/{chunk-7FZEBPKS.js → chunk-UBEPNVDI.js} +23 -18
- package/chunks/{chunk-NL7LTRLR.js → chunk-UHUSJ6X7.js} +29 -68
- package/chunks/{chunk-ZOIFNCKL.js → chunk-UPUG4GXM.js} +3 -23
- package/chunks/{chunk-6GMVPFB2.js → chunk-UWMLWVCA.js} +19 -6
- package/chunks/{chunk-U7TXFVUN.js → chunk-VCPIZRYH.js} +118 -95
- package/chunks/{chunk-LNARWLZQ.js → chunk-VWOOBLTY.js} +2 -2
- package/chunks/{chunk-I7XZ3RY5.js → chunk-VYOXCEPJ.js} +1 -1
- package/chunks/{chunk-USTWD7QV.js → chunk-W4MIWP6M.js} +26 -16
- package/chunks/{chunk-DLWL3Z7A.js → chunk-WBSMNTSV.js} +3 -3
- package/chunks/{chunk-G4WFQUYQ.js → chunk-WUZ7H6DP.js} +1 -1
- package/chunks/{chunk-2JZBVYTU.js → chunk-WZRWHXFE.js} +1 -8
- package/chunks/{chunk-DM4Q4JJH.js → chunk-X5WNMMIA.js} +22506 -33611
- package/chunks/{chunk-MK7VQDN3.js → chunk-XBYYDKAZ.js} +7 -6
- package/chunks/{chunk-COH43MRJ.js → chunk-XCGIMOLN.js} +27 -1
- package/chunks/{chunk-BRRAJXPA.js → chunk-XFZYFU3I.js} +1 -1
- package/chunks/{chunk-3QMGYBFN.js → chunk-XWWKIXVD.js} +1 -80
- package/chunks/{chunk-3SJ43L4W.js → chunk-XZC5VLBZ.js} +2 -0
- package/chunks/{chunk-UUUTRMI2.js → chunk-Y4IHBGBP.js} +1 -1
- package/chunks/{chunk-PR75REBZ.js → chunk-Y6AXW2OG.js} +12 -82
- package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
- package/chunks/{chunk-3JAQDSXN.js → chunk-YGF33UXG.js} +70 -8
- package/chunks/chunk-Z4X5MTRT.js +133 -0
- package/chunks/{chunk-UW5EOVUN.js → chunk-ZBVS26BY.js} +4 -4
- package/chunks/{chunk-ZD6UTE4A.js → chunk-ZHBO7WVX.js} +1 -1
- package/chunks/{chunk-HTO4JFDZ.js → chunk-ZPJWUGCS.js} +0 -1
- package/chunks/{chunk-66RMLJHC.js → chunk-ZURDMIDR.js} +355 -143
- package/chunks/{computer-use-DOFAHZAB.js → computer-use-ZTIDHMMA.js} +48 -50
- package/chunks/{config-utils-VFQXVGNR.js → config-utils-NYSXDMEQ.js} +4 -4
- package/chunks/contextCommand-2PIEU37Z.js +79 -0
- package/chunks/core-runtime-3XEYLQFK.js +133 -0
- package/chunks/{create-sub-session-7543K2QA.js → create-sub-session-R76FVXCI.js} +45 -47
- package/chunks/{create-sub-session-IWW2IZ2T.js → create-sub-session-SBYUMSSS.js} +3 -3
- package/chunks/{cron-create-YIID5XAW.js → cron-create-2QK6TCEC.js} +6 -6
- package/chunks/{cron-delete-ZVHYCEP2.js → cron-delete-FDCDFYMG.js} +5 -5
- package/chunks/{cron-list-XEGS463Q.js → cron-list-XN3WVBTP.js} +6 -6
- package/chunks/{daemon-VOMQW7KZ.js → daemon-Q2AB5Z23.js} +167 -15
- package/chunks/daemon-status-provider-3XJI6CAL.js +89 -0
- package/chunks/daemon-trust-policy-ILUDTLHD.js +84 -0
- package/chunks/daemon-trust-policy-monitor-HS3PKKRO.js +171 -0
- package/chunks/{de-HGRCYDEJ.js → de-SY6O76BF.js} +6 -1
- package/chunks/deferred-core-runtime-X4QV662U.js +88 -0
- package/chunks/dist-BSTVRPMT.js +4227 -0
- package/chunks/{dist-NNVBBOGU.js → dist-DOLYHMXE.js} +2 -2
- package/chunks/{dist-RTJFMNEZ.js → dist-HVRQ2CFL.js} +271 -11
- package/chunks/{dist-ANLAT3GS.js → dist-IXQEQWRG.js} +2 -1
- package/chunks/{dist-BRB6EXK4.js → dist-SSU66DM4.js} +3 -3
- package/chunks/{dist-KTYYJ2C5.js → dist-SV7Q3AWJ.js} +1 -1
- package/chunks/{dist-K6Y4E7FX.js → dist-YGBBMK3Z.js} +1 -1
- package/chunks/earlyInputCapture-XKLZT7ZD.js +81 -0
- package/chunks/{edit-RIEOJWKB.js → edit-HHGIOTQ2.js} +47 -49
- package/chunks/{en-MTWBNGDO.js → en-NBK3JKCE.js} +9 -1
- package/chunks/{enter-worktree-OGK5FQ3R.js → enter-worktree-ZN7PUQ46.js} +47 -49
- package/chunks/{enterPlanMode-IWZYALIB.js → enterPlanMode-EIFIDSIV.js} +47 -49
- package/chunks/{environment-VZ7BRI4Q.js → environment-XXQ75D2Q.js} +47 -49
- package/chunks/errors-4GMVU7CK.js +87 -0
- package/chunks/esm-K5FARBNI.js +5548 -0
- package/chunks/{exit-worktree-4TEYVIVP.js → exit-worktree-GXMI4ATY.js} +47 -49
- package/chunks/exitPlanMode-34UVY7M6.js +72 -0
- package/chunks/{fast-path-HYE7IFEV.js → fast-path-VPIVA7L6.js} +13 -3
- package/chunks/{fr-45RLL55O.js → fr-4KG5V7UT.js} +6 -1
- package/chunks/{gemini-NGRQX3YJ.js → gemini-4BWIK4WD.js} +103 -103
- package/chunks/{geminiContentGenerator-FQHPFZSR.js → geminiContentGenerator-3XVV5MSS.js} +7 -7
- package/chunks/{getMachineId-bsd-V7W3GODC.js → getMachineId-bsd-FG7IUY6U.js} +1 -1
- package/chunks/{getMachineId-darwin-TDO75DQP.js → getMachineId-darwin-GLCJI2RA.js} +1 -1
- package/chunks/{getMachineId-linux-TF43WQT2.js → getMachineId-linux-O6OPPAKO.js} +1 -1
- package/chunks/{getMachineId-unsupported-ZGUO3TXT.js → getMachineId-unsupported-S6CKYVGC.js} +1 -1
- package/chunks/{getMachineId-win-ECFYZZFQ.js → getMachineId-win-X5SRNEH7.js} +1 -1
- package/chunks/{glob-FRTM3X2E.js → glob-TZ2ABCJG.js} +47 -49
- package/chunks/{grep-RKWVROCW.js → grep-BEF463NA.js} +49 -50
- package/chunks/handleAutoUpdate-L6ERF36Y.js +80 -0
- package/chunks/i18n-FMM5FDXR.js +96 -0
- package/chunks/{image-gen-WIEM7KZA.js → image-gen-HHVLF7HS.js} +12 -12
- package/chunks/initializer-625TIAIO.js +85 -0
- package/chunks/installationInfo-6AM4I2Y3.js +79 -0
- package/chunks/{ja-B7DF7DFG.js → ja-F3GSQXMF.js} +6 -1
- package/chunks/{keychain-token-storage-MDTG3WRM.js → keychain-token-storage-72IYCAZV.js} +3 -3
- package/chunks/lib-RUF3WZA6.js +9 -0
- package/chunks/list-L2GA674Y.js +88 -0
- package/chunks/{list-agents-5KJJHR6I.js → list-agents-R6KDXQR3.js} +3 -3
- package/chunks/loadedSettingsAdapter-SPUTNKAV.js +82 -0
- package/chunks/{loggingContentGenerator-WGM27QAW.js → loggingContentGenerator-LKOF7XI7.js} +31 -30
- package/chunks/{loop-wakeup-FXKNNYSY.js → loop-wakeup-3IQKCYAH.js} +7 -7
- package/chunks/{ls-NTK6VOQJ.js → ls-DKZ37A7N.js} +5 -5
- package/chunks/{lsp-2JI24STP.js → lsp-QNWN7KN3.js} +3 -3
- package/chunks/{managed-npm-update-JQ2CG3RH.js → managed-npm-update-ACQGGIN5.js} +46 -48
- package/chunks/mcp-SZLHKFJW.js +82 -0
- package/chunks/{monitor-7FEWXX5F.js → monitor-DF52UVHI.js} +47 -49
- package/chunks/nonInteractiveCli-5T7KYKLK.js +144 -0
- package/chunks/{notebook-edit-JGJV2K6J.js → notebook-edit-FCWS4XVN.js} +47 -49
- package/chunks/{openaiContentGenerator-JPVXDTAO.js → openaiContentGenerator-7LDK3DCJ.js} +25 -27
- package/chunks/pidfile-6ERW3DF4.js +85 -0
- package/chunks/process-registry-2CHQBXH5.js +157 -0
- package/chunks/{processUtils-V2LCK6T6.js → processUtils-COKZAMUP.js} +2 -2
- package/chunks/{pt-22Q3FP73.js → pt-EQ33KWEN.js} +6 -1
- package/chunks/{qwenContentGenerator-TICV2W2Z.js → qwenContentGenerator-TKWUMR7N.js} +51 -53
- package/chunks/{qwenOAuth2-XGFI5XJG.js → qwenOAuth2-7HMU47SF.js} +10 -10
- package/chunks/read-file-X6DRC574.js +29 -0
- package/chunks/{read-mcp-resource-4DKQWGHD.js → read-mcp-resource-GFTWYXMK.js} +4 -4
- package/chunks/{record-artifact-RQKFYO5B.js → record-artifact-XAMSFSW4.js} +3 -3
- package/chunks/resumeHistoryUtils-PFPM2GWM.js +90 -0
- package/chunks/ripGrep-OWV2IVJC.js +72 -0
- package/chunks/{ru-FZCNZHDC.js → ru-7OZAUKGG.js} +6 -1
- package/chunks/{run-qwen-serve-3VCV4I7E.js → run-qwen-serve-TSTCO4XE.js} +917 -249
- package/chunks/{runtime-AXJWIEDU.js → runtime-DAUPSUKI.js} +55 -57
- package/chunks/{scheduler-RS2I6RU5.js → scheduler-KMADMT26.js} +45 -47
- package/chunks/{sdk-exporters-grpc-AK3LGHNO.js → sdk-exporters-grpc-54L4LS5L.js} +4 -4
- package/chunks/{sdk-exporters-http-FS6ZV7MF.js → sdk-exporters-http-WO556XNU.js} +7 -7
- package/chunks/{sdk-impl-7FZSCSXB.js → sdk-impl-LPAVACSF.js} +10 -10
- package/chunks/{send-message-Q6OOR6BR.js → send-message-SAWK4DZX.js} +6 -6
- package/chunks/serve-NNRWS6F4.js +88 -0
- package/chunks/{server-HRZ23U7M.js → server-WEH7DVCH.js} +3304 -842
- package/chunks/{session-7XHZKTVV.js → session-WXC56V2I.js} +94 -94
- package/chunks/{settings-7ZGZDXAS.js → settings-DJDXFDZ3.js} +54 -56
- package/chunks/shell-JN5VRQXD.js +82 -0
- package/chunks/{skill-LIWXNLDW.js → skill-SGXPKJCS.js} +20 -22
- package/chunks/skill-settings-VJ5PDMZI.js +90 -0
- package/chunks/spawnChannel-ETMJW7YX.js +81 -0
- package/chunks/standalone-update-MK3Z7KBI.js +91 -0
- package/chunks/{startInteractiveUI-IW3CSKHA.js → startInteractiveUI-ZCGIXPGT.js} +715 -373
- package/chunks/{syntheticOutput-I3757IWH.js → syntheticOutput-355CB6CJ.js} +4 -4
- package/chunks/{task-create-N7WQSGYA.js → task-create-INGWNUG4.js} +10 -10
- package/chunks/{task-list-FOPULZEP.js → task-list-5XNNGTF4.js} +7 -7
- package/chunks/{task-stop-H6RHXFVQ.js → task-stop-4ROAOBXH.js} +3 -3
- package/chunks/{task-update-M57TFZJT.js → task-update-CRK5VWWZ.js} +10 -10
- package/chunks/{team-create-O2FROQ4R.js → team-create-QQGAJG7P.js} +49 -51
- package/chunks/{team-delete-QE2UXJL7.js → team-delete-S2RCXA4P.js} +7 -7
- package/chunks/{team-plan-approval-Q6WDBXTQ.js → team-plan-approval-RT7Q5R6O.js} +47 -49
- package/chunks/theme-manager-EEWIQJ7J.js +76 -0
- package/chunks/{todoWrite-VQ7FKOHL.js → todoWrite-7WM3VDMY.js} +7 -7
- package/chunks/{tool-search-APECNQ3Z.js → tool-search-Z3Z4AYKP.js} +19 -21
- package/chunks/total-session-admission-44JKRWQD.js +84 -0
- package/chunks/{tree-sitter-FS4VPMZA.js → tree-sitter-4D7QS7F6.js} +1 -1
- package/chunks/{tree-sitter-bash-6B46JJCV.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
- package/chunks/trustedFolders-X2JEIO57.js +94 -0
- package/chunks/{update-relaunch-ON5MDJQG.js → update-relaunch-VWNPYDIP.js} +5 -5
- package/chunks/updateCheck-KAQH67DV.js +91 -0
- package/chunks/useAutoAcceptIndicator-JH6BCF7S.js +92 -0
- package/chunks/{validateNonInterActiveAuth-JBLKBKRD.js → validateNonInterActiveAuth-GIUJ2UFS.js} +88 -88
- package/chunks/{version-LTNUBQJY.js → version-BGLYIJUY.js} +1 -1
- package/chunks/{web-fetch-L5UTI53V.js → web-fetch-OTDU4VQF.js} +19 -21
- package/chunks/{web-search-KM33JOS3.js → web-search-FP6SIHPR.js} +13 -13
- package/chunks/{workflow-K7FAWV77.js → workflow-YCIVBYSB.js} +48 -50
- package/chunks/workspace-providers-status-S35YAIUS.js +85 -0
- package/chunks/{workspace-registration-store-6TGVDJV5.js → workspace-registration-store-OTMS3H4C.js} +1 -1
- package/chunks/workspace-registry-O63R6IZ4.js +92 -0
- package/chunks/workspace-service-M6LLHKJ5.js +99 -0
- package/chunks/workspace-skills-status-C2V7BAIS.js +85 -0
- package/chunks/workspace-trust-reconciler-IBUPOUJN.js +345 -0
- package/chunks/write-file-3BZC3EAE.js +72 -0
- package/chunks/xterm-headless-NTYVIBT3.js +3475 -0
- package/chunks/{zh-LUIGBD55.js → zh-H3YDK5QW.js} +9 -1
- package/chunks/{zh-TW-F5KG2IYD.js → zh-TW-JYCP7XUA.js} +9 -1
- package/chunks/zoom-image-TZ6S2O57.js +351 -0
- package/cli.js +13 -13
- package/locales/ca.js +7 -2
- package/locales/de.js +7 -2
- package/locales/en.js +10 -2
- package/locales/fr.js +7 -2
- package/locales/ja.js +7 -2
- package/locales/pt.js +7 -2
- package/locales/ru.js +7 -2
- package/locales/zh-TW.js +10 -2
- package/locales/zh.js +10 -2
- package/package.json +5 -4
- package/web-shell/assets/{arc-BbHijhiN.js → arc-75-Wdeo3.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-Cb4B_JD0.js → architectureDiagram-3BPJPVTR-FKeXQbyP.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-Dsjlh3H-.js → blockDiagram-GPEHLZMM-CY0vc-A3.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-Cp5AeR4U.js → c4Diagram-AAUBKEIU-CNP-A-8u.js} +1 -1
- package/web-shell/assets/channel-DPYMT76A.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-CLcY7W2e.js → chunk-2J33WTMH-GybS4Gii.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BUhvY2LR.js → chunk-4BX2VUAB-02H91V8v.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-kDIFC_71.js → chunk-55IACEB6-D3M-2VT6.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CIBO15f2.js → chunk-727SXJPM-CCu29u4H.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BJ_T_slV.js → chunk-AQP2D5EJ-CaFKWgrn.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-BEkW35J8.js → chunk-FMBD7UC4-ZZpPqIwQ.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-GGPxofay.js → chunk-ND2GUHAM-D22DqGs8.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-Bifllrb6.js → chunk-QZHKN3VN-Bu85S0fw.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-C-Add_Dp.js → cose-bilkent-S5V4N54A-f1CK1Gwe.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-B7MfwNq2.js → dagre-BM42HDAG-D0Ow8F_n.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CY_0zuDz.js → diagram-2AECGRRQ-BPrmTWp8.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-VyYSbCgA.js → diagram-5GNKFQAL-HccuFAzy.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CBiIZ2PL.js → diagram-KO2AKTUF-BrS76mbA.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BL3CrVOx.js → diagram-LMA3HP47-V7T9lU-5.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CZUPx96P.js → diagram-OG6HWLK6-DKidyJMR.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-B81xHr1-.js → erDiagram-TEJ5UH35-DBadZIkp.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-EZWhir-J.js → flowDiagram-I6XJVG4X-BymfqdNJ.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CVFSuIAg.js → ganttDiagram-6RSMTGT7-DOw340jf.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-C1H2uQDv.js → gitGraphDiagram-PVQCEYII-_8EiD8sl.js} +1 -1
- package/web-shell/assets/{index-BYo99NBH.js → index-CKIadvET.js} +1 -1
- package/web-shell/assets/index-D1eXNRHe.js +1389 -0
- package/web-shell/assets/index-DVLD4CQq.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-BwyFMlF8.js → infoDiagram-5YYISTIA-D61KYQBu.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CQ7Yhn2Y.js → ishikawaDiagram-YF4QCWOH-CsiXSpNx.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CJn2sf0l.js → journeyDiagram-JHISSGLW-Sdfionyh.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-DaNRqwVN.js → kanban-definition-UN3LZRKU-C3WI3Cnl.js} +1 -1
- package/web-shell/assets/{linear-DCKODZe2.js → linear-Dpigcc62.js} +1 -1
- package/web-shell/assets/{mermaid.core-CTGJOk27.js → mermaid.core-Ct97pqgW.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BKU3_3rg.js → mindmap-definition-RKZ34NQL-BzeaN0rB.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-COcwBJ82.js → pieDiagram-4H26LBE5-CvjgcbVD.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CQnQ443x.js → quadrantDiagram-W4KKPZXB-BUzgTNdH.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CZ2oj5cD.js → requirementDiagram-4Y6WPE33-B7zKlgUQ.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BxAv5mNu.js → sankeyDiagram-5OEKKPKP-Bb9CQgrT.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CztaySPs.js → sequenceDiagram-3UESZ5HK-DJ6V7itG.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CTQT1oGD.js → stateDiagram-AJRCARHV-IImflERY.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-K9Mkex5A.js → timeline-definition-PNZ67QCA-6Q_uWHKh.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-B2rVIw76.js → vennDiagram-CIIHVFJN-TmyKyjwv.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-Z1w2JR4M.js → wardley-L42UT6IY-CRh9uiPv.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-CIX9aKXf.js → wardleyDiagram-YWT4CUSO-59TKAW8w.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-CI9DLIKB.js → xychartDiagram-2RQKCTM6-GCSUIK2L.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/MaxSizedBox-INHRH72H.js +0 -86
- package/chunks/agent-VXDAN5JK.js +0 -82
- package/chunks/agent-headless-K4ZMMNBD.js +0 -76
- package/chunks/bridge-LGPZCFHO.js +0 -91
- package/chunks/channel-settings-store-CHCDRTPY.js +0 -89
- package/chunks/chunk-SZRN75WQ.js +0 -29
- package/chunks/chunk-UGYMA4EI.js +0 -219
- package/chunks/chunk-VCBZUOSI.js +0 -8575
- package/chunks/contextCommand-QIZYHDR5.js +0 -81
- package/chunks/daemon-status-provider-OS5UWBHV.js +0 -90
- package/chunks/earlyInputCapture-WQT24RWD.js +0 -83
- package/chunks/errors-PCX25DVP.js +0 -89
- package/chunks/exitPlanMode-GHPUHBZJ.js +0 -423
- package/chunks/handleAutoUpdate-2CZQRJ66.js +0 -82
- package/chunks/i18n-XEQVMRKN.js +0 -98
- package/chunks/initializer-OVGZ4FLY.js +0 -87
- package/chunks/installationInfo-5UUQJI6Y.js +0 -81
- package/chunks/list-HODU6RXD.js +0 -90
- package/chunks/loadedSettingsAdapter-TYNLBALY.js +0 -84
- package/chunks/mcp-J3DFWX4A.js +0 -84
- package/chunks/nonInteractiveCli-F4GYSMHT.js +0 -144
- package/chunks/pidfile-4VNAR3EP.js +0 -87
- package/chunks/read-file-LZXUR4TO.js +0 -31
- package/chunks/resumeHistoryUtils-65OX3SGJ.js +0 -92
- package/chunks/ripGrep-2U2FRGMV.js +0 -74
- package/chunks/serve-W2GC47CM.js +0 -90
- package/chunks/shell-45IPBDP5.js +0 -84
- package/chunks/spawnChannel-PVXQ5AGV.js +0 -83
- package/chunks/src-AY65BYR7.js +0 -3166
- package/chunks/standalone-update-ZMFNKAEY.js +0 -93
- package/chunks/theme-manager-YYPZFBAH.js +0 -78
- package/chunks/total-session-admission-JXES723M.js +0 -85
- package/chunks/trustedFolders-HVI7IXUH.js +0 -94
- package/chunks/updateCheck-WUJGHWZZ.js +0 -93
- package/chunks/useAutoAcceptIndicator-CHSTZLZD.js +0 -94
- package/chunks/workspace-providers-status-GAKSF4LL.js +0 -87
- package/chunks/workspace-registry-A7NQUONG.js +0 -89
- package/chunks/workspace-service-STGVSO4N.js +0 -99
- package/chunks/workspace-skills-status-66AK3DUA.js +0 -86
- package/chunks/write-file-HUUCEG4P.js +0 -74
- package/web-shell/assets/channel-Bzdx6E8P.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cd6wbiuK.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cd6wbiuK.js +0 -1
- package/web-shell/assets/index-B2bXx96W.js +0 -1249
- package/web-shell/assets/index-_8mKjx8q.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BjMdT6E_.js +0 -1
- package/chunks/{chunk-TARRHLLG.js → chunk-QUGAUQGJ.js} +25 -25
- package/chunks/{chunk-U7ZFW55U.js → chunk-VOQXFAY5.js} +977 -977
- /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
|
@@ -3,89 +3,16 @@
|
|
|
3
3
|
import {
|
|
4
4
|
buildPermissionSuggestions
|
|
5
5
|
} from "./chunk-43T5WDQ7.js";
|
|
6
|
-
import {
|
|
7
|
-
startPostRenderPrefetches
|
|
8
|
-
} from "./chunk-V6VRAM7B.js";
|
|
9
|
-
import {
|
|
10
|
-
stopAndGetCapturedInput
|
|
11
|
-
} from "./chunk-63P4EL5V.js";
|
|
12
|
-
import {
|
|
13
|
-
useAutoAcceptIndicator
|
|
14
|
-
} from "./chunk-QY5MMZ6O.js";
|
|
15
|
-
import {
|
|
16
|
-
classifyApiError
|
|
17
|
-
} from "./chunk-V7RNNPGC.js";
|
|
18
6
|
import {
|
|
19
7
|
TUI_CHAT_RECORDING_FAILURE_MESSAGE,
|
|
20
8
|
reportChatRecordingFailureToAdapter
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import {
|
|
23
|
-
MAX_SUGGESTIONS_TO_SHOW,
|
|
24
|
-
SESSION_MENTION_PREFIX,
|
|
25
|
-
buildMcpResourceRef,
|
|
26
|
-
buildMcpServerRef,
|
|
27
|
-
buildSessionRef,
|
|
28
|
-
getExtensionSuggestions,
|
|
29
|
-
handleAtCommand,
|
|
30
|
-
matchMcpServerPrefix,
|
|
31
|
-
resolveAtCommandQuery,
|
|
32
|
-
sanitizeDisplayText
|
|
33
|
-
} from "./chunk-GDIPH4JY.js";
|
|
9
|
+
} from "./chunk-657BH7VM.js";
|
|
34
10
|
import {
|
|
35
11
|
StreamJsonOutputAdapter
|
|
36
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-BPZKP57P.js";
|
|
37
13
|
import {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
CommandService,
|
|
41
|
-
DISPLAY_HOOK_EVENTS,
|
|
42
|
-
FileCommandLoader,
|
|
43
|
-
MAX_STACKED_SKILLS,
|
|
44
|
-
McpPromptLoader,
|
|
45
|
-
SavedWorkflowLoader,
|
|
46
|
-
SkillCommandLoader,
|
|
47
|
-
addConfigToMatcherGroup,
|
|
48
|
-
appendUserPromptExpansionAdditionalContext,
|
|
49
|
-
copyToClipboard,
|
|
50
|
-
createEmptyHookEventInfo,
|
|
51
|
-
dayKey,
|
|
52
|
-
findMidInputSlashCommand,
|
|
53
|
-
findSlashCommandTokens,
|
|
54
|
-
formatApprovalModeDescription,
|
|
55
|
-
formatApprovalModeName,
|
|
56
|
-
formatUserPromptExpansionBlockedMessage,
|
|
57
|
-
getAllConfigs,
|
|
58
|
-
getBestSlashCommandMatch,
|
|
59
|
-
getTranslatedSourceDisplayMap,
|
|
60
|
-
hasBlockingBackgroundWork,
|
|
61
|
-
hasSlashCommandPathSeparator,
|
|
62
|
-
isAtCommand,
|
|
63
|
-
isBtwCommand,
|
|
64
|
-
isMidInputCompletableCommand,
|
|
65
|
-
isSlashCommand,
|
|
66
|
-
normalizePartList,
|
|
67
|
-
parseDayKey,
|
|
68
|
-
parseSlashCommand,
|
|
69
|
-
parseStackedSlashCommands,
|
|
70
|
-
refreshExtensionContentRuntime,
|
|
71
|
-
resetBackgroundStateForSessionSwitch,
|
|
72
|
-
serializeUserPromptExpansionPrompt,
|
|
73
|
-
supportsMatchers
|
|
74
|
-
} from "./chunk-M4UKFCZ2.js";
|
|
75
|
-
import {
|
|
76
|
-
EXTENSION_RELOAD_FAILED_REASON,
|
|
77
|
-
ExtensionRefreshState,
|
|
78
|
-
appEvents,
|
|
79
|
-
cleanupReviewWorktreeLeases,
|
|
80
|
-
loadHierarchicalGeminiMemory
|
|
81
|
-
} from "./chunk-BYFNTGKI.js";
|
|
82
|
-
import {
|
|
83
|
-
disableKittyProtocol,
|
|
84
|
-
isKittyProtocolEnabled,
|
|
85
|
-
isKittyProtocolSupported,
|
|
86
|
-
pushKittyProtocolFlags
|
|
87
|
-
} from "./chunk-PQNHRFJC.js";
|
|
88
|
-
import "./chunk-5THCYPLO.js";
|
|
14
|
+
startPostRenderPrefetches
|
|
15
|
+
} from "./chunk-MHAIJPTD.js";
|
|
89
16
|
import {
|
|
90
17
|
AboutBox,
|
|
91
18
|
BaseSelectionList,
|
|
@@ -117,6 +44,7 @@ import {
|
|
|
117
44
|
UIStateContext,
|
|
118
45
|
USER_AGREEMENT_RATE_HIGH,
|
|
119
46
|
USER_AGREEMENT_RATE_MEDIUM,
|
|
47
|
+
VirtualViewportContext,
|
|
120
48
|
checkExhaustive,
|
|
121
49
|
colorizeCode,
|
|
122
50
|
countMarkdownSourceBlocks,
|
|
@@ -157,22 +85,111 @@ import {
|
|
|
157
85
|
useTerminalSize,
|
|
158
86
|
useTextBuffer,
|
|
159
87
|
useUIActions,
|
|
160
|
-
useUIState
|
|
161
|
-
|
|
88
|
+
useUIState,
|
|
89
|
+
useVirtualViewport
|
|
90
|
+
} from "./chunk-OCESJA77.js";
|
|
91
|
+
import {
|
|
92
|
+
GeminiRespondingSpinner,
|
|
93
|
+
GeminiSpinner,
|
|
94
|
+
ICON,
|
|
95
|
+
SCREEN_READER_USER_PREFIX,
|
|
96
|
+
SHELL_COMMAND_NAME,
|
|
97
|
+
StreamingContext,
|
|
98
|
+
applyCollapsePolicyAndSummary,
|
|
99
|
+
buildResumedHistoryItems,
|
|
100
|
+
build_default,
|
|
101
|
+
expandCollapsedHistory,
|
|
102
|
+
isCollapsibleTool,
|
|
103
|
+
useStreamingContext
|
|
104
|
+
} from "./chunk-TDL6LB4K.js";
|
|
105
|
+
import {
|
|
106
|
+
stopAndGetCapturedInput
|
|
107
|
+
} from "./chunk-JMONIXMJ.js";
|
|
108
|
+
import {
|
|
109
|
+
useAutoAcceptIndicator
|
|
110
|
+
} from "./chunk-HMRM2A3U.js";
|
|
162
111
|
import {
|
|
163
112
|
KeypressProvider,
|
|
164
113
|
useFocus,
|
|
165
114
|
useKeypress,
|
|
166
115
|
useKeypressContext
|
|
167
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-CQL64ESB.js";
|
|
117
|
+
import {
|
|
118
|
+
classifyApiError
|
|
119
|
+
} from "./chunk-V7RNNPGC.js";
|
|
120
|
+
import {
|
|
121
|
+
MAX_SUGGESTIONS_TO_SHOW,
|
|
122
|
+
SESSION_MENTION_PREFIX,
|
|
123
|
+
buildMcpResourceRef,
|
|
124
|
+
buildMcpServerRef,
|
|
125
|
+
buildSessionRef,
|
|
126
|
+
getExtensionSuggestions,
|
|
127
|
+
handleAtCommand,
|
|
128
|
+
matchMcpServerPrefix,
|
|
129
|
+
resolveAtCommandQuery,
|
|
130
|
+
sanitizeDisplayText
|
|
131
|
+
} from "./chunk-TV64SXKD.js";
|
|
132
|
+
import {
|
|
133
|
+
BuiltinCommandLoader,
|
|
134
|
+
BundledSkillLoader,
|
|
135
|
+
CommandService,
|
|
136
|
+
DISPLAY_HOOK_EVENTS,
|
|
137
|
+
FileCommandLoader,
|
|
138
|
+
MAX_STACKED_SKILLS,
|
|
139
|
+
McpPromptLoader,
|
|
140
|
+
SavedWorkflowLoader,
|
|
141
|
+
SkillCommandLoader,
|
|
142
|
+
addConfigToMatcherGroup,
|
|
143
|
+
appendUserPromptExpansionAdditionalContext,
|
|
144
|
+
copyToClipboard,
|
|
145
|
+
createEmptyHookEventInfo,
|
|
146
|
+
dayKey,
|
|
147
|
+
findMidInputSlashCommand,
|
|
148
|
+
findSlashCommandTokens,
|
|
149
|
+
formatApprovalModeDescription,
|
|
150
|
+
formatApprovalModeName,
|
|
151
|
+
formatUserPromptExpansionBlockedMessage,
|
|
152
|
+
getAllConfigs,
|
|
153
|
+
getBestSlashCommandMatch,
|
|
154
|
+
getTranslatedSourceDisplayMap,
|
|
155
|
+
hasBlockingBackgroundWork,
|
|
156
|
+
hasSlashCommandPathSeparator,
|
|
157
|
+
isAtCommand,
|
|
158
|
+
isBtwCommand,
|
|
159
|
+
isMidInputCompletableCommand,
|
|
160
|
+
isSlashCommand,
|
|
161
|
+
isStackedSkillCompletableCommand,
|
|
162
|
+
isValidStackedSkillPrefix,
|
|
163
|
+
normalizePartList,
|
|
164
|
+
parseDayKey,
|
|
165
|
+
parseSlashCommand,
|
|
166
|
+
parseStackedSlashCommands,
|
|
167
|
+
refreshExtensionContentRuntime,
|
|
168
|
+
resetBackgroundStateForSessionSwitch,
|
|
169
|
+
serializeUserPromptExpansionPrompt,
|
|
170
|
+
supportsMatchers
|
|
171
|
+
} from "./chunk-J7OACQDE.js";
|
|
172
|
+
import {
|
|
173
|
+
EXTENSION_RELOAD_FAILED_REASON,
|
|
174
|
+
ExtensionRefreshState,
|
|
175
|
+
appEvents,
|
|
176
|
+
cleanupReviewWorktreeLeases,
|
|
177
|
+
loadHierarchicalGeminiMemory
|
|
178
|
+
} from "./chunk-7BAU433D.js";
|
|
168
179
|
import {
|
|
169
180
|
getCommandDisplayName,
|
|
170
181
|
getCommandSourceBadge
|
|
171
|
-
} from "./chunk-
|
|
182
|
+
} from "./chunk-JX27F6QS.js";
|
|
172
183
|
import {
|
|
173
184
|
computeSessionStats,
|
|
174
185
|
levelLabel
|
|
175
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-7AEJDLRA.js";
|
|
187
|
+
import {
|
|
188
|
+
disableKittyProtocol,
|
|
189
|
+
isKittyProtocolEnabled,
|
|
190
|
+
isKittyProtocolSupported,
|
|
191
|
+
pushKittyProtocolFlags
|
|
192
|
+
} from "./chunk-PQNHRFJC.js";
|
|
176
193
|
import {
|
|
177
194
|
BEL,
|
|
178
195
|
OSC_PREFIX,
|
|
@@ -185,33 +202,27 @@ import {
|
|
|
185
202
|
oscKittyNotify,
|
|
186
203
|
saveClipboardImage,
|
|
187
204
|
writeOsc52
|
|
188
|
-
} from "./chunk-
|
|
205
|
+
} from "./chunk-M7OONWYU.js";
|
|
206
|
+
import "./chunk-65PQENQP.js";
|
|
189
207
|
import "./chunk-4WGODMVR.js";
|
|
208
|
+
import "./chunk-JFMA7Y5M.js";
|
|
209
|
+
import "./chunk-KW7NOTN6.js";
|
|
190
210
|
import {
|
|
191
211
|
MaxSizedBox,
|
|
192
212
|
OverflowProvider,
|
|
193
213
|
useOverflowState
|
|
194
|
-
} from "./chunk-
|
|
195
|
-
import {
|
|
196
|
-
GeminiRespondingSpinner,
|
|
197
|
-
GeminiSpinner,
|
|
198
|
-
ICON,
|
|
199
|
-
SCREEN_READER_USER_PREFIX,
|
|
200
|
-
SHELL_COMMAND_NAME,
|
|
201
|
-
StreamingContext,
|
|
202
|
-
applyCollapsePolicyAndSummary,
|
|
203
|
-
buildResumedHistoryItems,
|
|
204
|
-
build_default,
|
|
205
|
-
expandCollapsedHistory,
|
|
206
|
-
isCollapsibleTool,
|
|
207
|
-
useStreamingContext
|
|
208
|
-
} from "./chunk-DN6ZX5AY.js";
|
|
214
|
+
} from "./chunk-U3E3UQAA.js";
|
|
209
215
|
import {
|
|
210
216
|
theme
|
|
211
|
-
} from "./chunk-
|
|
217
|
+
} from "./chunk-GKX7E4CO.js";
|
|
212
218
|
import {
|
|
213
219
|
require_jsx_runtime
|
|
214
220
|
} from "./chunk-SV5PQVQE.js";
|
|
221
|
+
import {
|
|
222
|
+
AUTO_THEME_NAME,
|
|
223
|
+
DEFAULT_THEME,
|
|
224
|
+
themeManager
|
|
225
|
+
} from "./chunk-GATT5TKW.js";
|
|
215
226
|
import {
|
|
216
227
|
Box_default,
|
|
217
228
|
Static,
|
|
@@ -225,42 +236,36 @@ import {
|
|
|
225
236
|
use_is_screen_reader_enabled_default,
|
|
226
237
|
use_stdin_default,
|
|
227
238
|
use_stdout_default
|
|
228
|
-
} from "./chunk-
|
|
239
|
+
} from "./chunk-UWMLWVCA.js";
|
|
229
240
|
import {
|
|
230
241
|
require_react
|
|
231
242
|
} from "./chunk-5QWWOFGG.js";
|
|
232
|
-
import "./chunk-
|
|
243
|
+
import "./chunk-EVKE2FZL.js";
|
|
244
|
+
import {
|
|
245
|
+
getErrorMessage as getErrorMessage2
|
|
246
|
+
} from "./chunk-T3O2B4XO.js";
|
|
247
|
+
import "./chunk-EJGJIBRS.js";
|
|
233
248
|
import {
|
|
234
249
|
relaunchApp
|
|
235
|
-
} from "./chunk-
|
|
250
|
+
} from "./chunk-A2D5BAVP.js";
|
|
236
251
|
import {
|
|
237
252
|
setUpdateHandler
|
|
238
|
-
} from "./chunk-
|
|
239
|
-
import "./chunk-
|
|
253
|
+
} from "./chunk-PB3MBFKG.js";
|
|
254
|
+
import "./chunk-7DXQIJID.js";
|
|
240
255
|
import "./chunk-YAF2MQZ6.js";
|
|
241
|
-
import "./chunk-
|
|
242
|
-
import {
|
|
243
|
-
AUTO_THEME_NAME,
|
|
244
|
-
DEFAULT_THEME,
|
|
245
|
-
themeManager
|
|
246
|
-
} from "./chunk-L5UHQJTJ.js";
|
|
247
|
-
import "./chunk-KW7NOTN6.js";
|
|
248
|
-
import "./chunk-3IXOIAKE.js";
|
|
256
|
+
import "./chunk-S4WJVPZW.js";
|
|
249
257
|
import "./chunk-6H67XLET.js";
|
|
250
|
-
import "./chunk-5U4IPFBR.js";
|
|
251
|
-
import {
|
|
252
|
-
getErrorMessage as getErrorMessage2
|
|
253
|
-
} from "./chunk-VFSJ5VRH.js";
|
|
254
258
|
import {
|
|
255
259
|
openQwenAsrRealtimeStream,
|
|
256
260
|
openVoiceStream,
|
|
257
261
|
openVoiceStreamWithRetry
|
|
258
|
-
} from "./chunk-
|
|
262
|
+
} from "./chunk-BCZFQXWK.js";
|
|
259
263
|
import {
|
|
260
264
|
recordGoalStatusItem,
|
|
261
265
|
restoreGoalFromHistory
|
|
262
|
-
} from "./chunk-
|
|
263
|
-
import "./chunk-
|
|
266
|
+
} from "./chunk-LO4ROVP4.js";
|
|
267
|
+
import "./chunk-LGAOC3ZS.js";
|
|
268
|
+
import "./chunk-XFZYFU3I.js";
|
|
264
269
|
import {
|
|
265
270
|
cpLen,
|
|
266
271
|
cpSlice,
|
|
@@ -272,8 +277,7 @@ import {
|
|
|
272
277
|
sanitizeTerminalText,
|
|
273
278
|
stripUnsafeCharacters,
|
|
274
279
|
toCodePoints
|
|
275
|
-
} from "./chunk-
|
|
276
|
-
import "./chunk-BRRAJXPA.js";
|
|
280
|
+
} from "./chunk-YDLJGZHL.js";
|
|
277
281
|
import {
|
|
278
282
|
stringWidth
|
|
279
283
|
} from "./chunk-2MIN6GRR.js";
|
|
@@ -289,24 +293,18 @@ import {
|
|
|
289
293
|
isStreamingVoiceModel,
|
|
290
294
|
resolveVoiceStreamConfig,
|
|
291
295
|
transcribeVoiceAudio
|
|
292
|
-
} from "./chunk-
|
|
296
|
+
} from "./chunk-CAPPWD3X.js";
|
|
293
297
|
import {
|
|
294
298
|
formatUnsupportedVoiceModelMessage,
|
|
295
299
|
isSelectableVoiceModel
|
|
296
|
-
} from "./chunk-
|
|
297
|
-
import "./chunk-
|
|
298
|
-
import "./chunk-XHRTVPG2.js";
|
|
299
|
-
import {
|
|
300
|
-
requestConsentInteractive,
|
|
301
|
-
requestConsentOrFail
|
|
302
|
-
} from "./chunk-2YZJCM5T.js";
|
|
303
|
-
import "./chunk-57OAHC2Y.js";
|
|
300
|
+
} from "./chunk-JTV5K7NH.js";
|
|
301
|
+
import "./chunk-ZHBO7WVX.js";
|
|
304
302
|
import {
|
|
305
303
|
createLoadedSettingsAdapter
|
|
306
|
-
} from "./chunk-
|
|
304
|
+
} from "./chunk-WUZ7H6DP.js";
|
|
307
305
|
import {
|
|
308
306
|
getExtendedSystemInfo
|
|
309
|
-
} from "./chunk-
|
|
307
|
+
} from "./chunk-QIZKCVM3.js";
|
|
310
308
|
import {
|
|
311
309
|
formatDuration,
|
|
312
310
|
formatMemoryUsage,
|
|
@@ -314,29 +312,39 @@ import {
|
|
|
314
312
|
formatTokenCount
|
|
315
313
|
} from "./chunk-E5Z2AVNV.js";
|
|
316
314
|
import "./chunk-GLWP3FDB.js";
|
|
317
|
-
import "./chunk-
|
|
315
|
+
import "./chunk-XCGIMOLN.js";
|
|
318
316
|
import {
|
|
319
317
|
isInlineModelOverrideAllowed
|
|
320
|
-
} from "./chunk-
|
|
321
|
-
import "./chunk-MVS3NS2N.js";
|
|
322
|
-
import "./chunk-ER5LWJR6.js";
|
|
323
|
-
import "./chunk-W4CQXHT6.js";
|
|
324
|
-
import "./chunk-MK7VQDN3.js";
|
|
325
|
-
import "./chunk-V6WHFGST.js";
|
|
318
|
+
} from "./chunk-KCO4FLFJ.js";
|
|
326
319
|
import {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
320
|
+
computeWorkspaceSkillListUpdates,
|
|
321
|
+
resolveSkillSettings,
|
|
322
|
+
skillSettingStrings
|
|
323
|
+
} from "./chunk-Z4X5MTRT.js";
|
|
324
|
+
import "./chunk-BNWB5CYE.js";
|
|
325
|
+
import {
|
|
326
|
+
requestConsentInteractive,
|
|
327
|
+
requestConsentOrFail
|
|
328
|
+
} from "./chunk-5MKRTI4T.js";
|
|
329
|
+
import "./chunk-57OAHC2Y.js";
|
|
330
|
+
import "./chunk-2XSLTRFZ.js";
|
|
331
|
+
import "./chunk-TFRMVU6R.js";
|
|
332
|
+
import "./chunk-XBYYDKAZ.js";
|
|
333
|
+
import "./chunk-V6WHFGST.js";
|
|
331
334
|
import "./chunk-2RFKHEXL.js";
|
|
335
|
+
import "./chunk-FYJ7W2PI.js";
|
|
332
336
|
import "./chunk-U4VTUMMK.js";
|
|
333
|
-
import "./chunk-
|
|
337
|
+
import "./chunk-GZ3RCT54.js";
|
|
334
338
|
import "./chunk-ALMR3E6Q.js";
|
|
335
339
|
import "./chunk-BK2UNYWD.js";
|
|
336
340
|
import "./chunk-M5GB774H.js";
|
|
337
|
-
import "./chunk-
|
|
341
|
+
import "./chunk-4G2BISNC.js";
|
|
342
|
+
import "./chunk-GEBV2JGB.js";
|
|
343
|
+
import "./chunk-7I5GTCT4.js";
|
|
338
344
|
import "./chunk-UDXSXLER.js";
|
|
339
|
-
import
|
|
345
|
+
import {
|
|
346
|
+
loadMcpApprovals
|
|
347
|
+
} from "./chunk-6RPMI2AB.js";
|
|
340
348
|
import {
|
|
341
349
|
CORRUPTED_SUFFIX,
|
|
342
350
|
SettingScope,
|
|
@@ -359,36 +367,39 @@ import {
|
|
|
359
367
|
settingExistsInScope,
|
|
360
368
|
validateSettingValue,
|
|
361
369
|
writeOutputLanguageAndRegisterPath
|
|
362
|
-
} from "./chunk-
|
|
370
|
+
} from "./chunk-EIF3FXTB.js";
|
|
363
371
|
import "./chunk-RKUWKYED.js";
|
|
364
|
-
import "./chunk-GOXKNSDZ.js";
|
|
365
|
-
import "./chunk-IDS7MSUP.js";
|
|
366
372
|
import {
|
|
367
373
|
getCurrentLanguage,
|
|
368
374
|
localizeToolDisplayName,
|
|
369
375
|
t,
|
|
370
376
|
ta
|
|
371
|
-
} from "./chunk-
|
|
372
|
-
import "./chunk-
|
|
377
|
+
} from "./chunk-TCIFAA7K.js";
|
|
378
|
+
import "./chunk-2N7CODY5.js";
|
|
379
|
+
import "./chunk-DP3IHZGG.js";
|
|
380
|
+
import "./chunk-VWOOBLTY.js";
|
|
381
|
+
import "./chunk-GOXKNSDZ.js";
|
|
382
|
+
import "./chunk-IDS7MSUP.js";
|
|
373
383
|
import "./chunk-6PEXNQTX.js";
|
|
384
|
+
import "./chunk-XFSFZCM5.js";
|
|
374
385
|
import "./chunk-URK542T4.js";
|
|
375
386
|
import {
|
|
376
387
|
getCliVersion
|
|
377
|
-
} from "./chunk-
|
|
388
|
+
} from "./chunk-VYOXCEPJ.js";
|
|
378
389
|
import "./chunk-VJNBRRZG.js";
|
|
379
390
|
import {
|
|
380
391
|
isWorkspaceTrusted,
|
|
381
392
|
loadTrustedFolders
|
|
382
|
-
} from "./chunk-
|
|
393
|
+
} from "./chunk-Q43KPN7X.js";
|
|
383
394
|
import {
|
|
384
395
|
require_strip_json_comments
|
|
385
396
|
} from "./chunk-ALGGS7UH.js";
|
|
386
397
|
import "./chunk-MR3PXB6E.js";
|
|
387
398
|
import {
|
|
388
399
|
clearScreen,
|
|
389
|
-
writeStderrLine
|
|
400
|
+
writeStderrLine,
|
|
401
|
+
writeStderrLineSafe
|
|
390
402
|
} from "./chunk-OWAK7LMW.js";
|
|
391
|
-
import "./chunk-XFSFZCM5.js";
|
|
392
403
|
import {
|
|
393
404
|
ALIBABA_PROVIDERS,
|
|
394
405
|
AsyncFzf,
|
|
@@ -495,68 +506,68 @@ import {
|
|
|
495
506
|
validateWorkflowName,
|
|
496
507
|
watchRepoBranch,
|
|
497
508
|
writeRuntimeStatus
|
|
498
|
-
} from "./chunk-
|
|
499
|
-
import "./chunk-5M6IDOMF.js";
|
|
509
|
+
} from "./chunk-X5WNMMIA.js";
|
|
500
510
|
import "./chunk-TWPJO254.js";
|
|
501
511
|
import "./chunk-H6XPXXMH.js";
|
|
502
|
-
import "./chunk-
|
|
503
|
-
import "./chunk-
|
|
504
|
-
import "./chunk-
|
|
505
|
-
import "./chunk-
|
|
506
|
-
import "./chunk-FNQ6T3CV.js";
|
|
507
|
-
import "./chunk-ZOIFNCKL.js";
|
|
508
|
-
import "./chunk-PWTZEM3C.js";
|
|
512
|
+
import "./chunk-5M6IDOMF.js";
|
|
513
|
+
import "./chunk-UPUG4GXM.js";
|
|
514
|
+
import "./chunk-64LQLPL7.js";
|
|
515
|
+
import "./chunk-2LQTH543.js";
|
|
509
516
|
import "./chunk-KRXPRVGL.js";
|
|
510
|
-
import "./chunk-6PVPNMXU.js";
|
|
511
517
|
import {
|
|
512
518
|
resolveModelId
|
|
513
|
-
} from "./chunk-
|
|
514
|
-
import "./chunk-
|
|
515
|
-
import "./chunk-
|
|
519
|
+
} from "./chunk-BMFALVGQ.js";
|
|
520
|
+
import "./chunk-CVHIL5IG.js";
|
|
521
|
+
import "./chunk-IRH27ZC2.js";
|
|
522
|
+
import "./chunk-QHWCP53L.js";
|
|
523
|
+
import "./chunk-PONHVBRT.js";
|
|
524
|
+
import "./chunk-T26EAKDL.js";
|
|
525
|
+
import "./chunk-6PVPNMXU.js";
|
|
516
526
|
import "./chunk-CPBF7KYF.js";
|
|
527
|
+
import "./chunk-6QIGFD5W.js";
|
|
528
|
+
import {
|
|
529
|
+
HOOKS_CONFIG_FIELDS
|
|
530
|
+
} from "./chunk-XWWKIXVD.js";
|
|
531
|
+
import "./chunk-75GFAX4R.js";
|
|
532
|
+
import "./chunk-OKF7JF3R.js";
|
|
517
533
|
import {
|
|
518
534
|
APPROVAL_MODES,
|
|
519
535
|
getStartupContextLength,
|
|
520
536
|
isSystemReminderContent,
|
|
521
537
|
runOutsideAgentContext
|
|
522
|
-
} from "./chunk-
|
|
523
|
-
import "./chunk-
|
|
524
|
-
import "./chunk-JZA3JUDJ.js";
|
|
525
|
-
import {
|
|
526
|
-
HOOKS_CONFIG_FIELDS
|
|
527
|
-
} from "./chunk-3QMGYBFN.js";
|
|
538
|
+
} from "./chunk-JSD33JG6.js";
|
|
539
|
+
import "./chunk-S6LOFUVP.js";
|
|
528
540
|
import "./chunk-JCW2R7WC.js";
|
|
529
541
|
import {
|
|
530
542
|
isPathWithinRoot
|
|
531
|
-
} from "./chunk-
|
|
532
|
-
import "./chunk-
|
|
533
|
-
import "./chunk-E5TUC6CA.js";
|
|
543
|
+
} from "./chunk-2DN4J57Y.js";
|
|
544
|
+
import "./chunk-ZPJWUGCS.js";
|
|
534
545
|
import {
|
|
535
546
|
osc8Hyperlink,
|
|
536
547
|
qwenOAuth2Events,
|
|
537
548
|
sanitizeForOsc,
|
|
538
549
|
supportsHyperlinks,
|
|
539
550
|
wrapForMultiplexer
|
|
540
|
-
} from "./chunk-
|
|
541
|
-
import "./chunk-
|
|
542
|
-
import "./chunk-
|
|
543
|
-
import "./chunk-
|
|
551
|
+
} from "./chunk-2LKVPASC.js";
|
|
552
|
+
import "./chunk-NAVJD2PQ.js";
|
|
553
|
+
import "./chunk-LW3RFMG7.js";
|
|
554
|
+
import "./chunk-W4MIWP6M.js";
|
|
544
555
|
import {
|
|
545
556
|
REASONING_EFFORT_TIERS
|
|
546
|
-
} from "./chunk-
|
|
557
|
+
} from "./chunk-DGEIYUC3.js";
|
|
547
558
|
import {
|
|
548
559
|
getUnsupportedImageFormatWarning,
|
|
549
560
|
isSupportedImageMimeType
|
|
550
|
-
} from "./chunk-
|
|
561
|
+
} from "./chunk-MPHPFVKK.js";
|
|
551
562
|
import "./chunk-GLNBDYUX.js";
|
|
552
563
|
import "./chunk-DJ2GSRLV.js";
|
|
553
|
-
import "./chunk-
|
|
554
|
-
import "./chunk-
|
|
555
|
-
import "./chunk-
|
|
564
|
+
import "./chunk-5KTQXHPY.js";
|
|
565
|
+
import "./chunk-75MIQ3LV.js";
|
|
566
|
+
import "./chunk-2J3OJGTL.js";
|
|
556
567
|
import "./chunk-P3QQPMQA.js";
|
|
557
|
-
import "./chunk-
|
|
558
|
-
import "./chunk-
|
|
559
|
-
import "./chunk-
|
|
568
|
+
import "./chunk-RPLGZJV2.js";
|
|
569
|
+
import "./chunk-GLCZKT5V.js";
|
|
570
|
+
import "./chunk-DZLYR4U3.js";
|
|
560
571
|
import {
|
|
561
572
|
ApiCancelEvent,
|
|
562
573
|
AuthEvent,
|
|
@@ -597,7 +608,7 @@ import {
|
|
|
597
608
|
runVisionBridge,
|
|
598
609
|
shouldRunVisionBridge,
|
|
599
610
|
splitImageParts
|
|
600
|
-
} from "./chunk-
|
|
611
|
+
} from "./chunk-PT722TDT.js";
|
|
601
612
|
import "./chunk-VGC4I5JJ.js";
|
|
602
613
|
import {
|
|
603
614
|
AUTO_MEMORY_INDEX_FILENAME,
|
|
@@ -605,30 +616,27 @@ import {
|
|
|
605
616
|
getAutoMemoryRoot,
|
|
606
617
|
getUserAutoMemoryRoot,
|
|
607
618
|
isAnyAutoMemPath
|
|
608
|
-
} from "./chunk-
|
|
619
|
+
} from "./chunk-SGFT55XI.js";
|
|
620
|
+
import "./chunk-Y4IHBGBP.js";
|
|
621
|
+
import {
|
|
622
|
+
ToolNames,
|
|
623
|
+
isShellProgressData
|
|
624
|
+
} from "./chunk-Y6AXW2OG.js";
|
|
609
625
|
import {
|
|
610
626
|
MAINLINE_CODER_MODEL
|
|
611
|
-
} from "./chunk-
|
|
627
|
+
} from "./chunk-VCPIZRYH.js";
|
|
612
628
|
import "./chunk-46UV252V.js";
|
|
613
|
-
import "./chunk-A4UCTEB5.js";
|
|
614
|
-
import "./chunk-XWRJCPHC.js";
|
|
615
629
|
import {
|
|
616
630
|
DEFAULT_TOKEN_LIMIT
|
|
617
|
-
} from "./chunk-
|
|
618
|
-
import "./chunk-
|
|
619
|
-
import "./chunk-
|
|
631
|
+
} from "./chunk-ZBVS26BY.js";
|
|
632
|
+
import "./chunk-WZRWHXFE.js";
|
|
633
|
+
import "./chunk-A3NDJ5SB.js";
|
|
620
634
|
import {
|
|
621
635
|
atomicWriteFileSync
|
|
622
|
-
} from "./chunk-
|
|
623
|
-
import "./chunk-
|
|
636
|
+
} from "./chunk-7XATOOE7.js";
|
|
637
|
+
import "./chunk-BGTQCTQW.js";
|
|
624
638
|
import "./chunk-W4RQUHY3.js";
|
|
625
|
-
import "./chunk-
|
|
626
|
-
import "./chunk-U7ZFW55U.js";
|
|
627
|
-
import "./chunk-UUUTRMI2.js";
|
|
628
|
-
import {
|
|
629
|
-
ToolNames,
|
|
630
|
-
isShellProgressData
|
|
631
|
-
} from "./chunk-PR75REBZ.js";
|
|
639
|
+
import "./chunk-S7W2GKIO.js";
|
|
632
640
|
import {
|
|
633
641
|
Storage,
|
|
634
642
|
UnauthorizedError,
|
|
@@ -640,17 +648,18 @@ import {
|
|
|
640
648
|
isNodeError,
|
|
641
649
|
shortenPath,
|
|
642
650
|
tildeifyPath
|
|
643
|
-
} from "./chunk-
|
|
644
|
-
import "./chunk-
|
|
651
|
+
} from "./chunk-UHUSJ6X7.js";
|
|
652
|
+
import "./chunk-VOQXFAY5.js";
|
|
653
|
+
import "./chunk-RCUQIPTN.js";
|
|
654
|
+
import {
|
|
655
|
+
registerCleanup,
|
|
656
|
+
runExitCleanup
|
|
657
|
+
} from "./chunk-52ZSWYEG.js";
|
|
645
658
|
import {
|
|
646
659
|
finalizeStartupProfile,
|
|
647
660
|
profileCheckpoint
|
|
648
661
|
} from "./chunk-QSWDGAIC.js";
|
|
649
662
|
import "./chunk-Q7YDKOGY.js";
|
|
650
|
-
import {
|
|
651
|
-
registerCleanup,
|
|
652
|
-
runExitCleanup
|
|
653
|
-
} from "./chunk-B4UMZKMU.js";
|
|
654
663
|
import "./chunk-75DOP5OR.js";
|
|
655
664
|
import "./chunk-DMTGGOSA.js";
|
|
656
665
|
import "./chunk-YQ3U5MUC.js";
|
|
@@ -660,7 +669,7 @@ import {
|
|
|
660
669
|
import "./chunk-TYAMGABM.js";
|
|
661
670
|
import "./chunk-FCMNKVXT.js";
|
|
662
671
|
import "./chunk-AMDSOFFV.js";
|
|
663
|
-
import "./chunk-
|
|
672
|
+
import "./chunk-QUGAUQGJ.js";
|
|
664
673
|
import {
|
|
665
674
|
init_esbuild_shims
|
|
666
675
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -5236,6 +5245,11 @@ var SessionTab = /* @__PURE__ */ __name(() => {
|
|
|
5236
5245
|
totalCached += m.tokens.cached;
|
|
5237
5246
|
}
|
|
5238
5247
|
const cacheRate = totalInput > 0 ? totalCached / totalInput * 100 : 0;
|
|
5248
|
+
const generation = metrics.generation;
|
|
5249
|
+
const lastGeneration = generation?.last;
|
|
5250
|
+
const lastTps = lastGeneration && lastGeneration.generationDurationMs > 0 ? lastGeneration.outputTokens / (lastGeneration.generationDurationMs / 1e3) : void 0;
|
|
5251
|
+
const averageTtft = generation && generation.timedRequests > 0 ? generation.totalTtftMs / generation.timedRequests : void 0;
|
|
5252
|
+
const sessionTps = generation && generation.totalGenerationDurationMs > 0 ? generation.totalThroughputOutputTokens / (generation.totalGenerationDurationMs / 1e3) : void 0;
|
|
5239
5253
|
const successColor = getStatusColor(computed.successRate, {
|
|
5240
5254
|
green: TOOL_SUCCESS_RATE_HIGH,
|
|
5241
5255
|
yellow: TOOL_SUCCESS_RATE_MEDIUM
|
|
@@ -5347,6 +5361,67 @@ var SessionTab = /* @__PURE__ */ __name(() => {
|
|
|
5347
5361
|
] })
|
|
5348
5362
|
] })
|
|
5349
5363
|
] }),
|
|
5364
|
+
lastGeneration && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
5365
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Text, { bold: true, color: theme.text.primary, children: [
|
|
5366
|
+
t("Generation Metrics"),
|
|
5367
|
+
" (",
|
|
5368
|
+
t("Latest Request"),
|
|
5369
|
+
")"
|
|
5370
|
+
] }),
|
|
5371
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { children: [
|
|
5372
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: labelWidth, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
5373
|
+
t("Model"),
|
|
5374
|
+
":"
|
|
5375
|
+
] }) }),
|
|
5376
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.primary, children: lastGeneration.model })
|
|
5377
|
+
] }),
|
|
5378
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { children: [
|
|
5379
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: labelWidth, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.secondary, children: "TTFT:" }) }),
|
|
5380
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.primary, children: formatDuration(lastGeneration.ttftMs) })
|
|
5381
|
+
] }),
|
|
5382
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { children: [
|
|
5383
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: labelWidth, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
5384
|
+
t("Generation Time"),
|
|
5385
|
+
":"
|
|
5386
|
+
] }) }),
|
|
5387
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.primary, children: formatDuration(lastGeneration.generationDurationMs) })
|
|
5388
|
+
] }),
|
|
5389
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { children: [
|
|
5390
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: labelWidth, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
5391
|
+
t("Output Tokens"),
|
|
5392
|
+
":"
|
|
5393
|
+
] }) }),
|
|
5394
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.primary, children: lastGeneration.outputTokens.toLocaleString() })
|
|
5395
|
+
] }),
|
|
5396
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { children: [
|
|
5397
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: labelWidth, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.secondary, children: "TPS:" }) }),
|
|
5398
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.primary, children: lastTps === void 0 ? "\u2014" : `${lastTps.toFixed(1)} tok/s` })
|
|
5399
|
+
] }),
|
|
5400
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { paddingLeft: 2, children: [
|
|
5401
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: 26, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
5402
|
+
"\xBB ",
|
|
5403
|
+
t("Requests"),
|
|
5404
|
+
":"
|
|
5405
|
+
] }) }),
|
|
5406
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.primary, children: generation.timedRequests })
|
|
5407
|
+
] }),
|
|
5408
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { paddingLeft: 2, children: [
|
|
5409
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: 26, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
5410
|
+
"\xBB ",
|
|
5411
|
+
t("Average TTFT"),
|
|
5412
|
+
":"
|
|
5413
|
+
] }) }),
|
|
5414
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.primary, children: averageTtft === void 0 ? "\u2014" : formatDuration(averageTtft) })
|
|
5415
|
+
] }),
|
|
5416
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { paddingLeft: 2, children: [
|
|
5417
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Box_default, { width: 26, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
5418
|
+
"\xBB ",
|
|
5419
|
+
t("Session TPS"),
|
|
5420
|
+
":"
|
|
5421
|
+
] }) }),
|
|
5422
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { color: theme.text.primary, children: sessionTps === void 0 ? "\u2014" : `${sessionTps.toFixed(1)} tok/s` })
|
|
5423
|
+
] })
|
|
5424
|
+
] }),
|
|
5350
5425
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
5351
5426
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Text, { bold: true, color: theme.text.primary, children: t("Tokens") }),
|
|
5352
5427
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(Box_default, { children: [
|
|
@@ -9924,19 +9999,43 @@ var useTrustModify = /* @__PURE__ */ __name((onExit, addItem) => {
|
|
|
9924
9999
|
setPendingTrustLevel(trustLevel);
|
|
9925
10000
|
setNeedsRestart(true);
|
|
9926
10001
|
} else {
|
|
10002
|
+
setPendingTrustLevel(void 0);
|
|
10003
|
+
setNeedsRestart(false);
|
|
9927
10004
|
const folders = loadTrustedFolders();
|
|
9928
|
-
|
|
10005
|
+
try {
|
|
10006
|
+
folders.setValue(cwd3, trustLevel);
|
|
10007
|
+
} catch (error) {
|
|
10008
|
+
addItem(
|
|
10009
|
+
{
|
|
10010
|
+
type: "error" /* ERROR */,
|
|
10011
|
+
text: `Could not update workspace trust: ${error instanceof Error ? error.message : String(error)}`
|
|
10012
|
+
},
|
|
10013
|
+
Date.now()
|
|
10014
|
+
);
|
|
10015
|
+
return;
|
|
10016
|
+
}
|
|
9929
10017
|
onExit();
|
|
9930
10018
|
}
|
|
9931
10019
|
},
|
|
9932
10020
|
[cwd3, settings.merged, onExit, addItem]
|
|
9933
10021
|
);
|
|
9934
10022
|
const commitTrustLevelChange = (0, import_react32.useCallback)(() => {
|
|
9935
|
-
if (pendingTrustLevel)
|
|
9936
|
-
|
|
10023
|
+
if (!pendingTrustLevel) return false;
|
|
10024
|
+
const folders = loadTrustedFolders();
|
|
10025
|
+
try {
|
|
9937
10026
|
folders.setValue(cwd3, pendingTrustLevel);
|
|
10027
|
+
return true;
|
|
10028
|
+
} catch (error) {
|
|
10029
|
+
addItem(
|
|
10030
|
+
{
|
|
10031
|
+
type: "error" /* ERROR */,
|
|
10032
|
+
text: `Could not update workspace trust: ${error instanceof Error ? error.message : String(error)}`
|
|
10033
|
+
},
|
|
10034
|
+
Date.now()
|
|
10035
|
+
);
|
|
10036
|
+
return false;
|
|
9938
10037
|
}
|
|
9939
|
-
}, [cwd3, pendingTrustLevel]);
|
|
10038
|
+
}, [addItem, cwd3, pendingTrustLevel]);
|
|
9940
10039
|
return {
|
|
9941
10040
|
cwd: cwd3,
|
|
9942
10041
|
currentTrustLevel,
|
|
@@ -9987,9 +10086,10 @@ function TrustDialog({
|
|
|
9987
10086
|
onExit();
|
|
9988
10087
|
}
|
|
9989
10088
|
if (needsRestart && key.name === "r") {
|
|
9990
|
-
commitTrustLevelChange()
|
|
9991
|
-
|
|
9992
|
-
|
|
10089
|
+
if (commitTrustLevelChange()) {
|
|
10090
|
+
relaunchApp();
|
|
10091
|
+
onExit();
|
|
10092
|
+
}
|
|
9993
10093
|
}
|
|
9994
10094
|
},
|
|
9995
10095
|
{ isActive: true }
|
|
@@ -14663,8 +14763,8 @@ function SkillsManagerDialog({
|
|
|
14663
14763
|
const [loadError, setLoadError] = (0, import_react52.useState)(null);
|
|
14664
14764
|
const [query, setQuery] = (0, import_react52.useState)("");
|
|
14665
14765
|
const [activeValue, setActiveValue] = (0, import_react52.useState)(null);
|
|
14666
|
-
const
|
|
14667
|
-
() =>
|
|
14766
|
+
const initialResolved = (0, import_react52.useMemo)(
|
|
14767
|
+
() => resolveSkillSettings(settings),
|
|
14668
14768
|
[settings]
|
|
14669
14769
|
);
|
|
14670
14770
|
const higher = (0, import_react52.useMemo)(() => buildHigherDisabled(settings), [settings]);
|
|
@@ -14701,12 +14801,19 @@ function SkillsManagerDialog({
|
|
|
14701
14801
|
() => allSkills.filter((s) => !higher.set.has(lower(s.name))),
|
|
14702
14802
|
[allSkills, higher.set]
|
|
14703
14803
|
);
|
|
14804
|
+
const initialSelectedKeys = (0, import_react52.useMemo)(
|
|
14805
|
+
() => new Set(
|
|
14806
|
+
unlockedSkills.filter(
|
|
14807
|
+
(skill) => !initialResolved.disabledNames.has(lower(skill.name))
|
|
14808
|
+
).map((skill) => skill.name)
|
|
14809
|
+
),
|
|
14810
|
+
[initialResolved, unlockedSkills]
|
|
14811
|
+
);
|
|
14704
14812
|
const [selectedKeys, setSelectedKeys] = (0, import_react52.useState)(null);
|
|
14705
14813
|
(0, import_react52.useEffect)(() => {
|
|
14706
14814
|
if (selectedKeys !== null || unlockedSkills.length === 0) return;
|
|
14707
|
-
|
|
14708
|
-
|
|
14709
|
-
}, [unlockedSkills, initialWorkspaceDisabled, selectedKeys]);
|
|
14815
|
+
setSelectedKeys([...initialSelectedKeys]);
|
|
14816
|
+
}, [unlockedSkills, initialSelectedKeys, selectedKeys]);
|
|
14710
14817
|
const filteredUnlocked = (0, import_react52.useMemo)(() => {
|
|
14711
14818
|
const normalizedQuery = query.trim().toLowerCase();
|
|
14712
14819
|
if (!normalizedQuery) return unlockedSkills;
|
|
@@ -14761,33 +14868,40 @@ function SkillsManagerDialog({
|
|
|
14761
14868
|
return "untrusted";
|
|
14762
14869
|
}
|
|
14763
14870
|
const selected = new Set(selectedKeys ?? []);
|
|
14764
|
-
const
|
|
14765
|
-
|
|
14766
|
-
|
|
14871
|
+
const workspaceDisabled = namesFromScope(
|
|
14872
|
+
settings,
|
|
14873
|
+
"Workspace" /* Workspace */
|
|
14874
|
+
).filter((name) => typeof name === "string");
|
|
14875
|
+
const lockedNames = new Set(lockedSkills.map((skill) => lower(skill.name)));
|
|
14876
|
+
const { disabled, enabled, disabledChanged, enabledChanged } = computeWorkspaceSkillListUpdates(
|
|
14877
|
+
workspaceDisabled,
|
|
14878
|
+
lockedNames,
|
|
14879
|
+
skillSettingStrings(settings, "Workspace" /* Workspace */, "enabled"),
|
|
14880
|
+
unlockedSkills.map((skill) => ({
|
|
14881
|
+
name: skill.name,
|
|
14882
|
+
wasEnabled: initialSelectedKeys.has(skill.name),
|
|
14883
|
+
isEnabled: selected.has(skill.name),
|
|
14884
|
+
defaultDisabled: initialResolved.defaultDisabledNames.has(lower(skill.name)) && !initialResolved.enabledNames.has(lower(skill.name))
|
|
14885
|
+
}))
|
|
14767
14886
|
);
|
|
14768
|
-
|
|
14769
|
-
const nextDisabled = [];
|
|
14770
|
-
const allKnownLower = new Set(allSkills.map((s) => lower(s.name)));
|
|
14771
|
-
for (const prev of previousStrings) {
|
|
14772
|
-
if (!allKnownLower.has(lower(prev))) {
|
|
14773
|
-
nextDisabled.push(prev);
|
|
14774
|
-
}
|
|
14775
|
-
}
|
|
14776
|
-
for (const s of unlockedSkills) {
|
|
14777
|
-
if (selected.has(s.name)) continue;
|
|
14778
|
-
const existing = previousMap.get(lower(s.name));
|
|
14779
|
-
nextDisabled.push(existing ?? s.name);
|
|
14780
|
-
}
|
|
14781
|
-
const prevNormalized = normalizeNames(previousWorkspace).sort();
|
|
14782
|
-
const nextNormalized = normalizeNames(nextDisabled).sort();
|
|
14783
|
-
const unchanged = prevNormalized.length === nextNormalized.length && prevNormalized.every((n, i) => n === nextNormalized[i]);
|
|
14784
|
-
if (unchanged) return "ok";
|
|
14887
|
+
if (!disabledChanged && !enabledChanged) return "ok";
|
|
14785
14888
|
try {
|
|
14786
|
-
settings.
|
|
14787
|
-
|
|
14788
|
-
|
|
14789
|
-
|
|
14790
|
-
|
|
14889
|
+
settings.setValues([
|
|
14890
|
+
...disabledChanged ? [
|
|
14891
|
+
{
|
|
14892
|
+
scope: "Workspace" /* Workspace */,
|
|
14893
|
+
key: "skills.disabled",
|
|
14894
|
+
value: disabled.length > 0 ? disabled : void 0
|
|
14895
|
+
}
|
|
14896
|
+
] : [],
|
|
14897
|
+
...enabledChanged ? [
|
|
14898
|
+
{
|
|
14899
|
+
scope: "Workspace" /* Workspace */,
|
|
14900
|
+
key: "skills.enabled",
|
|
14901
|
+
value: enabled.length > 0 ? enabled : void 0
|
|
14902
|
+
}
|
|
14903
|
+
] : []
|
|
14904
|
+
]);
|
|
14791
14905
|
} catch (e) {
|
|
14792
14906
|
addItem(
|
|
14793
14907
|
{
|
|
@@ -14822,7 +14936,9 @@ function SkillsManagerDialog({
|
|
|
14822
14936
|
return "ok";
|
|
14823
14937
|
}, [
|
|
14824
14938
|
addItem,
|
|
14825
|
-
|
|
14939
|
+
initialResolved,
|
|
14940
|
+
initialSelectedKeys,
|
|
14941
|
+
lockedSkills,
|
|
14826
14942
|
reloadCommands,
|
|
14827
14943
|
selectedKeys,
|
|
14828
14944
|
settings,
|
|
@@ -26373,7 +26489,7 @@ function useCommandCompletion(buffer, cwd3, slashCommands, commandContext, rever
|
|
|
26373
26489
|
query,
|
|
26374
26490
|
completionStart,
|
|
26375
26491
|
completionEnd,
|
|
26376
|
-
|
|
26492
|
+
slashCompletionContext
|
|
26377
26493
|
} = (0, import_react88.useMemo)(() => {
|
|
26378
26494
|
const currentLine = buffer.lines[cursorRow] || "";
|
|
26379
26495
|
const codePoints = toCodePoints(currentLine);
|
|
@@ -26408,49 +26524,61 @@ function useCommandCompletion(buffer, cwd3, slashCommands, commandContext, rever
|
|
|
26408
26524
|
query: partialPath,
|
|
26409
26525
|
completionStart: pathStart,
|
|
26410
26526
|
completionEnd: end,
|
|
26411
|
-
|
|
26527
|
+
slashCompletionContext: null
|
|
26412
26528
|
};
|
|
26413
26529
|
}
|
|
26414
26530
|
}
|
|
26415
|
-
if (cursorRow === 0 && isSlashCommand(currentLine.trim())) {
|
|
26416
|
-
return {
|
|
26417
|
-
completionMode: "SLASH" /* SLASH */,
|
|
26418
|
-
query: currentLine,
|
|
26419
|
-
completionStart: 0,
|
|
26420
|
-
completionEnd: currentLine.length,
|
|
26421
|
-
isMidInputSlashCompletion: false
|
|
26422
|
-
};
|
|
26423
|
-
}
|
|
26424
26531
|
const cursorOffset = logicalPosToOffset(buffer.lines, cursorRow, cursorCol);
|
|
26425
26532
|
const midCmd = findMidInputSlashCommand(buffer.text, cursorOffset);
|
|
26426
|
-
if (midCmd
|
|
26427
|
-
midCmd.partialCommand,
|
|
26428
|
-
slashCommands
|
|
26429
|
-
)) {
|
|
26533
|
+
if (midCmd) {
|
|
26430
26534
|
const lineStartOffset = logicalPosToOffset(buffer.lines, cursorRow, 0);
|
|
26431
26535
|
const startOnLine = midCmd.startPos - lineStartOffset;
|
|
26432
|
-
|
|
26536
|
+
const isInitialCommandOnFirstLine = cursorRow === 0 && isSlashCommand(currentLine.trim()) && startOnLine >= 0 && codePoints.slice(0, startOnLine).join("").trim().length === 0;
|
|
26537
|
+
const inputCodePoints = toCodePoints(buffer.text);
|
|
26538
|
+
const prefix = inputCodePoints.slice(0, midCmd.startPos).join("");
|
|
26539
|
+
const isStackedSkill = !isInitialCommandOnFirstLine && isValidStackedSkillPrefix(prefix, slashCommands);
|
|
26540
|
+
const isSlashLedInput = isSlashCommand(prefix.trimStart());
|
|
26541
|
+
const isRegularMidInput = !isInitialCommandOnFirstLine && !isSlashLedInput;
|
|
26542
|
+
if (startOnLine >= 0 && (isStackedSkill || isRegularMidInput && !isExactMidInputModelInvocableCommand(
|
|
26543
|
+
midCmd.partialCommand,
|
|
26544
|
+
slashCommands
|
|
26545
|
+
))) {
|
|
26433
26546
|
return {
|
|
26434
26547
|
completionMode: "SLASH" /* SLASH */,
|
|
26435
26548
|
query: midCmd.token,
|
|
26436
26549
|
completionStart: startOnLine,
|
|
26437
26550
|
completionEnd: startOnLine + midCmd.token.length,
|
|
26438
|
-
|
|
26551
|
+
slashCompletionContext: isStackedSkill ? "stacked-skill" /* STACKED_SKILL */ : "mid-input" /* MID_INPUT */
|
|
26439
26552
|
};
|
|
26440
26553
|
}
|
|
26441
26554
|
}
|
|
26555
|
+
if (cursorRow === 0 && isSlashCommand(currentLine.trim())) {
|
|
26556
|
+
return {
|
|
26557
|
+
completionMode: "SLASH" /* SLASH */,
|
|
26558
|
+
query: currentLine,
|
|
26559
|
+
completionStart: 0,
|
|
26560
|
+
completionEnd: currentLine.length,
|
|
26561
|
+
slashCompletionContext: "line-start" /* LINE_START */
|
|
26562
|
+
};
|
|
26563
|
+
}
|
|
26442
26564
|
return {
|
|
26443
26565
|
completionMode: "IDLE" /* IDLE */,
|
|
26444
26566
|
query: null,
|
|
26445
26567
|
completionStart: -1,
|
|
26446
26568
|
completionEnd: -1,
|
|
26447
|
-
|
|
26569
|
+
slashCompletionContext: null
|
|
26448
26570
|
};
|
|
26449
26571
|
}, [cursorRow, cursorCol, buffer.lines, buffer.text, slashCommands]);
|
|
26450
|
-
const
|
|
26451
|
-
|
|
26452
|
-
|
|
26453
|
-
|
|
26572
|
+
const isMidInputSlashCompletion = slashCompletionContext === "mid-input" /* MID_INPUT */ || slashCompletionContext === "stacked-skill" /* STACKED_SKILL */;
|
|
26573
|
+
const slashCommandsForCompletion = (0, import_react88.useMemo)(() => {
|
|
26574
|
+
if (slashCompletionContext === "stacked-skill" /* STACKED_SKILL */) {
|
|
26575
|
+
return slashCommands.filter(isStackedSkillCompletableCommand);
|
|
26576
|
+
}
|
|
26577
|
+
if (slashCompletionContext === "mid-input" /* MID_INPUT */) {
|
|
26578
|
+
return slashCommands.filter(isMidInputCompletableCommand);
|
|
26579
|
+
}
|
|
26580
|
+
return slashCommands;
|
|
26581
|
+
}, [slashCompletionContext, slashCommands]);
|
|
26454
26582
|
const {
|
|
26455
26583
|
suggestions,
|
|
26456
26584
|
activeSuggestionIndex,
|
|
@@ -26564,6 +26692,8 @@ function useCommandCompletion(buffer, cwd3, slashCommands, commandContext, rever
|
|
|
26564
26692
|
const midCmd = findMidInputSlashCommand(buffer.text, cursorOffset);
|
|
26565
26693
|
if (midCmd) {
|
|
26566
26694
|
if (isMidInputSlashCompletion) return null;
|
|
26695
|
+
const prefix = toCodePoints(buffer.text).slice(0, midCmd.startPos).join("");
|
|
26696
|
+
if (isSlashCommand(prefix.trimStart())) return null;
|
|
26567
26697
|
const match = getBestSlashCommandMatch(
|
|
26568
26698
|
midCmd.partialCommand,
|
|
26569
26699
|
slashCommands,
|
|
@@ -27737,10 +27867,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
27737
27867
|
linesToRender,
|
|
27738
27868
|
prefixWidth
|
|
27739
27869
|
});
|
|
27740
|
-
(
|
|
27741
|
-
setCursorPosition(cursorPosition);
|
|
27742
|
-
return () => setCursorPosition(void 0);
|
|
27743
|
-
}, [setCursorPosition, cursorPosition]);
|
|
27870
|
+
setCursorPosition(cursorPosition);
|
|
27744
27871
|
const resolvedBorderColor = borderColor ?? theme.border.focused;
|
|
27745
27872
|
const resolvedPrefix = prefix ?? /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(Text, { color: theme.text.accent, children: "> " });
|
|
27746
27873
|
const columns = process.stdout.columns || 80;
|
|
@@ -29026,7 +29153,9 @@ var InputPrompt = /* @__PURE__ */ __name(({
|
|
|
29026
29153
|
const uiState = useUIState();
|
|
29027
29154
|
const uiActions = useUIActions();
|
|
29028
29155
|
const settings = useSettings();
|
|
29029
|
-
const mouseInteractionsEnabled =
|
|
29156
|
+
const mouseInteractionsEnabled = useVirtualViewport(
|
|
29157
|
+
settings.merged.ui?.useTerminalBuffer
|
|
29158
|
+
);
|
|
29030
29159
|
const { pasteWorkaround } = useKeypressContext();
|
|
29031
29160
|
const { agents, agentTabBarFocused } = useAgentViewState();
|
|
29032
29161
|
const { setAgentTabBarFocused } = useAgentViewActions();
|
|
@@ -29045,7 +29174,7 @@ var InputPrompt = /* @__PURE__ */ __name(({
|
|
|
29045
29174
|
setPillFocused: setBgPillFocused
|
|
29046
29175
|
} = useBackgroundTaskViewActions();
|
|
29047
29176
|
const hasAgents = agents.size > 0;
|
|
29048
|
-
const liveAgentPanelMaxRows =
|
|
29177
|
+
const liveAgentPanelMaxRows = uiState.useTerminalBuffer ? getLiveAgentPanelVpMaxRows(uiState.terminalHeight) : LIVE_AGENT_PANEL_MAX_ROWS;
|
|
29049
29178
|
const getVisibleBgAgents = (0, import_react98.useCallback)(
|
|
29050
29179
|
() => panelDisplayOrder(
|
|
29051
29180
|
bgEntries.filter((e) => isLiveAgentPanelVisibleEntry(e, Date.now()))
|
|
@@ -29283,6 +29412,7 @@ var InputPrompt = /* @__PURE__ */ __name(({
|
|
|
29283
29412
|
const handleSubmitAndClear = (0, import_react98.useCallback)(
|
|
29284
29413
|
(submittedValue, deferUntilIdle = false) => {
|
|
29285
29414
|
exportCompletion.reset();
|
|
29415
|
+
const submittedPrompt = submittedValue;
|
|
29286
29416
|
let finalValue = submittedValue;
|
|
29287
29417
|
if (pendingPastes.size > 0) {
|
|
29288
29418
|
finalValue = expandPendingPastePlaceholders(finalValue, pendingPastes);
|
|
@@ -29300,11 +29430,7 @@ ${finalValue.trim()}`;
|
|
|
29300
29430
|
}
|
|
29301
29431
|
buffer.setText("");
|
|
29302
29432
|
clearPromptStash(targetDir);
|
|
29303
|
-
|
|
29304
|
-
onSubmit(finalValue, { deferUntilIdle: true });
|
|
29305
|
-
} else {
|
|
29306
|
-
onSubmit(finalValue);
|
|
29307
|
-
}
|
|
29433
|
+
onSubmit(finalValue, { deferUntilIdle, submittedPrompt });
|
|
29308
29434
|
resetHistoryNavRef.current();
|
|
29309
29435
|
followup.dismiss();
|
|
29310
29436
|
onPromptSuggestionDismiss?.();
|
|
@@ -29333,10 +29459,11 @@ ${finalValue.trim()}`;
|
|
|
29333
29459
|
voiceSubmitRef.current = (text) => handleSubmitAndClear(text);
|
|
29334
29460
|
const customSetTextAndResetCompletionSignal = (0, import_react98.useCallback)(
|
|
29335
29461
|
(newText) => {
|
|
29462
|
+
uiActions.invalidateSubmittedPromptProvenance();
|
|
29336
29463
|
buffer.setText(newText);
|
|
29337
29464
|
setHistoryRestoredText(newText);
|
|
29338
29465
|
},
|
|
29339
|
-
[buffer]
|
|
29466
|
+
[buffer, uiActions]
|
|
29340
29467
|
);
|
|
29341
29468
|
const inputHistory = useInputHistory({
|
|
29342
29469
|
userMessages,
|
|
@@ -29767,6 +29894,7 @@ ${currentText}`);
|
|
|
29767
29894
|
}
|
|
29768
29895
|
}
|
|
29769
29896
|
if (keyMatchers["acceptSuggestionReverseSearch" /* ACCEPT_SUGGESTION_REVERSE_SEARCH */](key)) {
|
|
29897
|
+
uiActions.invalidateSubmittedPromptProvenance();
|
|
29770
29898
|
sc.handleAutocomplete(activeSuggestionIndex);
|
|
29771
29899
|
resetState();
|
|
29772
29900
|
setActive(false);
|
|
@@ -29775,6 +29903,9 @@ ${currentText}`);
|
|
|
29775
29903
|
}
|
|
29776
29904
|
if (keyMatchers["submitReverseSearch" /* SUBMIT_REVERSE_SEARCH */](key)) {
|
|
29777
29905
|
const textToSubmit = showSuggestions && activeSuggestionIndex > -1 ? suggestions[activeSuggestionIndex].value : buffer.text;
|
|
29906
|
+
if (showSuggestions && activeSuggestionIndex > -1) {
|
|
29907
|
+
uiActions.invalidateSubmittedPromptProvenance();
|
|
29908
|
+
}
|
|
29778
29909
|
handleSubmitAndClear(textToSubmit);
|
|
29779
29910
|
resetState();
|
|
29780
29911
|
setActive(false);
|
|
@@ -29970,12 +30101,18 @@ ${currentText}`);
|
|
|
29970
30101
|
} else {
|
|
29971
30102
|
if (keyMatchers["navigationUp" /* NAVIGATION_UP */](key)) {
|
|
29972
30103
|
const prevCommand = shellHistory.getPreviousCommand();
|
|
29973
|
-
if (prevCommand !== null)
|
|
30104
|
+
if (prevCommand !== null) {
|
|
30105
|
+
uiActions.invalidateSubmittedPromptProvenance();
|
|
30106
|
+
buffer.setText(prevCommand);
|
|
30107
|
+
}
|
|
29974
30108
|
return true;
|
|
29975
30109
|
}
|
|
29976
30110
|
if (keyMatchers["navigationDown" /* NAVIGATION_DOWN */](key)) {
|
|
29977
30111
|
const nextCommand = shellHistory.getNextCommand();
|
|
29978
|
-
if (nextCommand !== null)
|
|
30112
|
+
if (nextCommand !== null) {
|
|
30113
|
+
uiActions.invalidateSubmittedPromptProvenance();
|
|
30114
|
+
buffer.setText(nextCommand);
|
|
30115
|
+
}
|
|
29979
30116
|
return true;
|
|
29980
30117
|
}
|
|
29981
30118
|
}
|
|
@@ -30242,6 +30379,7 @@ ${currentText}`);
|
|
|
30242
30379
|
if (commandSearchActive || reverseSearchActive) {
|
|
30243
30380
|
const isCommandSearch = commandSearchActive;
|
|
30244
30381
|
const sc = isCommandSearch ? commandSearchCompletion : reverseSearchCompletion;
|
|
30382
|
+
uiActions.invalidateSubmittedPromptProvenance();
|
|
30245
30383
|
sc.handleAutocomplete(index);
|
|
30246
30384
|
sc.resetCompletionState();
|
|
30247
30385
|
(isCommandSearch ? setCommandSearchActive : setReverseSearchActive)(
|
|
@@ -30271,7 +30409,8 @@ ${currentText}`);
|
|
|
30271
30409
|
handleSubmitAndClear,
|
|
30272
30410
|
setExpandedSuggestionIndex,
|
|
30273
30411
|
setCommandSearchActive,
|
|
30274
|
-
setReverseSearchActive
|
|
30412
|
+
setReverseSearchActive,
|
|
30413
|
+
uiActions
|
|
30275
30414
|
]
|
|
30276
30415
|
);
|
|
30277
30416
|
const hasTabConsumer = shouldShowSuggestions || buffer.text.length === 0 && Boolean(availableSuggestion) || Boolean(completion.midInputGhostText?.acceptText);
|
|
@@ -31630,6 +31769,15 @@ function isRecentHistoryTodoSnapshot(snapshotItemIndex, historyLength) {
|
|
|
31630
31769
|
return historyItemsAfterSnapshot < MIN_HISTORY_ITEMS_AFTER_TODO_BEFORE_STICKY;
|
|
31631
31770
|
}
|
|
31632
31771
|
__name(isRecentHistoryTodoSnapshot, "isRecentHistoryTodoSnapshot");
|
|
31772
|
+
function hasUserMessageAfter(items, afterIndex) {
|
|
31773
|
+
for (let i = afterIndex + 1; i < items.length; i++) {
|
|
31774
|
+
if (items[i].type === "user") {
|
|
31775
|
+
return true;
|
|
31776
|
+
}
|
|
31777
|
+
}
|
|
31778
|
+
return false;
|
|
31779
|
+
}
|
|
31780
|
+
__name(hasUserMessageAfter, "hasUserMessageAfter");
|
|
31633
31781
|
function getStickyTodos(history, pendingHistoryItems) {
|
|
31634
31782
|
const pendingSnapshot = findLatestTodoSnapshot(pendingHistoryItems);
|
|
31635
31783
|
if (pendingSnapshot !== void 0) {
|
|
@@ -31642,6 +31790,9 @@ function getStickyTodos(history, pendingHistoryItems) {
|
|
|
31642
31790
|
if (isRecentHistoryTodoSnapshot(historySnapshot.itemIndex, history.length)) {
|
|
31643
31791
|
return null;
|
|
31644
31792
|
}
|
|
31793
|
+
if (hasUserMessageAfter(history, historySnapshot.itemIndex)) {
|
|
31794
|
+
return null;
|
|
31795
|
+
}
|
|
31645
31796
|
if (areAllTodosCompleted(historySnapshot.todos)) {
|
|
31646
31797
|
return null;
|
|
31647
31798
|
}
|
|
@@ -33013,7 +33164,7 @@ var App = /* @__PURE__ */ __name(() => {
|
|
|
33013
33164
|
}, "App");
|
|
33014
33165
|
|
|
33015
33166
|
// packages/cli/src/ui/AppContainer.tsx
|
|
33016
|
-
import
|
|
33167
|
+
import process17 from "node:process";
|
|
33017
33168
|
|
|
33018
33169
|
// packages/cli/src/ui/hooks/useMemoryMonitor.ts
|
|
33019
33170
|
init_esbuild_shims();
|
|
@@ -33405,6 +33556,33 @@ function useSettingsCommand() {
|
|
|
33405
33556
|
}
|
|
33406
33557
|
__name(useSettingsCommand, "useSettingsCommand");
|
|
33407
33558
|
|
|
33559
|
+
// packages/cli/src/ui/utils/terminal-buffer.ts
|
|
33560
|
+
init_esbuild_shims();
|
|
33561
|
+
import process14 from "node:process";
|
|
33562
|
+
function isCiEnvKey(key) {
|
|
33563
|
+
return key === "CI" || key === "CONTINUOUS_INTEGRATION" || key.startsWith("CI_");
|
|
33564
|
+
}
|
|
33565
|
+
__name(isCiEnvKey, "isCiEnvKey");
|
|
33566
|
+
function isActiveCiValue(value) {
|
|
33567
|
+
const normalizedValue = value?.toLowerCase();
|
|
33568
|
+
return value !== void 0 && value !== "" && normalizedValue !== "0" && normalizedValue !== "false";
|
|
33569
|
+
}
|
|
33570
|
+
__name(isActiveCiValue, "isActiveCiValue");
|
|
33571
|
+
function isCiEnvironment(env) {
|
|
33572
|
+
return Object.keys(env).some(
|
|
33573
|
+
(key) => isCiEnvKey(key) && isActiveCiValue(env[key])
|
|
33574
|
+
);
|
|
33575
|
+
}
|
|
33576
|
+
__name(isCiEnvironment, "isCiEnvironment");
|
|
33577
|
+
function isInteractiveTerminal(stdoutIsTTY = process14.stdout.isTTY, env = process14.env) {
|
|
33578
|
+
return Boolean(stdoutIsTTY) && !isCiEnvironment(env) && env["TERM"]?.toLowerCase() !== "dumb";
|
|
33579
|
+
}
|
|
33580
|
+
__name(isInteractiveTerminal, "isInteractiveTerminal");
|
|
33581
|
+
function shouldUseVirtualViewport(useTerminalBuffer, screenReader, terminalInteractive) {
|
|
33582
|
+
return terminalInteractive && (useTerminalBuffer ?? true) && !screenReader;
|
|
33583
|
+
}
|
|
33584
|
+
__name(shouldUseVirtualViewport, "shouldUseVirtualViewport");
|
|
33585
|
+
|
|
33408
33586
|
// packages/cli/src/ui/hooks/useModelCommand.ts
|
|
33409
33587
|
init_esbuild_shims();
|
|
33410
33588
|
var import_react123 = __toESM(require_react(), 1);
|
|
@@ -35605,7 +35783,7 @@ init_esbuild_shims();
|
|
|
35605
35783
|
var import_react134 = __toESM(require_react(), 1);
|
|
35606
35784
|
import * as path11 from "node:path";
|
|
35607
35785
|
var debugLogger35 = createDebugLogger("REACT_TOOL_SCHEDULER");
|
|
35608
|
-
function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorClose) {
|
|
35786
|
+
function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorClose, onToolResultFullTurnModel) {
|
|
35609
35787
|
const [toolCallsForDisplay, setToolCallsForDisplay] = (0, import_react134.useState)([]);
|
|
35610
35788
|
const outputUpdateHandler = (0, import_react134.useCallback)(
|
|
35611
35789
|
(toolCallId, outputChunk) => {
|
|
@@ -35665,7 +35843,8 @@ function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorC
|
|
|
35665
35843
|
onAllToolCallsComplete: allToolCallsCompleteHandler,
|
|
35666
35844
|
onToolCallsUpdate: toolCallsUpdateHandler,
|
|
35667
35845
|
getPreferredEditor,
|
|
35668
|
-
onEditorClose
|
|
35846
|
+
onEditorClose,
|
|
35847
|
+
onToolResultFullTurnModel
|
|
35669
35848
|
}),
|
|
35670
35849
|
[
|
|
35671
35850
|
config,
|
|
@@ -35673,7 +35852,8 @@ function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorC
|
|
|
35673
35852
|
allToolCallsCompleteHandler,
|
|
35674
35853
|
toolCallsUpdateHandler,
|
|
35675
35854
|
getPreferredEditor,
|
|
35676
|
-
onEditorClose
|
|
35855
|
+
onEditorClose,
|
|
35856
|
+
onToolResultFullTurnModel
|
|
35677
35857
|
]
|
|
35678
35858
|
);
|
|
35679
35859
|
const schedule = (0, import_react134.useCallback)(
|
|
@@ -35808,6 +35988,9 @@ function mapToDisplay(toolOrTools, projectRoot) {
|
|
|
35808
35988
|
resultDisplay: compactToolResultDisplayForHistory(
|
|
35809
35989
|
trackedCall.response.resultDisplay
|
|
35810
35990
|
),
|
|
35991
|
+
...trackedCall.response.visionBridgeNotice !== void 0 ? {
|
|
35992
|
+
visionBridgeNotice: trackedCall.response.visionBridgeNotice
|
|
35993
|
+
} : {},
|
|
35811
35994
|
// Full detail for the Ctrl+O transcript (§4.9): derived from the
|
|
35812
35995
|
// already-persisted functionResponse parts; NOT char-capped (the
|
|
35813
35996
|
// bound is whatever core already applied). Consumed ONLY by the
|
|
@@ -35827,6 +36010,9 @@ function mapToDisplay(toolOrTools, projectRoot) {
|
|
|
35827
36010
|
resultDisplay: compactToolResultDisplayForHistory(
|
|
35828
36011
|
trackedCall.response.resultDisplay
|
|
35829
36012
|
),
|
|
36013
|
+
...trackedCall.response.visionBridgeNotice !== void 0 ? {
|
|
36014
|
+
visionBridgeNotice: trackedCall.response.visionBridgeNotice
|
|
36015
|
+
} : {},
|
|
35830
36016
|
confirmationDetails: void 0
|
|
35831
36017
|
};
|
|
35832
36018
|
case "cancelled":
|
|
@@ -35836,6 +36022,9 @@ function mapToDisplay(toolOrTools, projectRoot) {
|
|
|
35836
36022
|
resultDisplay: compactToolResultDisplayForHistory(
|
|
35837
36023
|
trackedCall.response.resultDisplay
|
|
35838
36024
|
),
|
|
36025
|
+
...trackedCall.response.visionBridgeNotice !== void 0 ? {
|
|
36026
|
+
visionBridgeNotice: trackedCall.response.visionBridgeNotice
|
|
36027
|
+
} : {},
|
|
35839
36028
|
confirmationDetails: void 0
|
|
35840
36029
|
};
|
|
35841
36030
|
case "awaiting_approval":
|
|
@@ -35890,42 +36079,53 @@ __name(mapToDisplay, "mapToDisplay");
|
|
|
35890
36079
|
// packages/cli/src/ui/hooks/useGeminiStream.ts
|
|
35891
36080
|
import { promises as fs17 } from "node:fs";
|
|
35892
36081
|
import path12 from "node:path";
|
|
35893
|
-
import
|
|
36082
|
+
import process15 from "node:process";
|
|
35894
36083
|
|
|
35895
36084
|
// packages/cli/src/ui/hooks/useMessageQueue.ts
|
|
35896
36085
|
init_esbuild_shims();
|
|
35897
36086
|
var import_react135 = __toESM(require_react(), 1);
|
|
35898
36087
|
var GOAL_COMMAND_RE = /^\/goal(?:\s|$)/;
|
|
36088
|
+
function aggregateMessages(messages) {
|
|
36089
|
+
const modelText = messages.map((message) => message.modelText).join("\n\n");
|
|
36090
|
+
const submittedPrompts = messages.map((message) => message.submittedPrompt);
|
|
36091
|
+
return submittedPrompts.every(
|
|
36092
|
+
(submittedPrompt) => submittedPrompt !== void 0
|
|
36093
|
+
) ? { modelText, submittedPrompt: submittedPrompts.join("\n\n") } : { modelText };
|
|
36094
|
+
}
|
|
36095
|
+
__name(aggregateMessages, "aggregateMessages");
|
|
35899
36096
|
function useMessageQueue() {
|
|
35900
36097
|
const [queuedMessages, setQueuedMessages] = (0, import_react135.useState)([]);
|
|
35901
36098
|
const queueRef = (0, import_react135.useRef)([]);
|
|
35902
|
-
const addMessage = (0, import_react135.useCallback)(
|
|
35903
|
-
|
|
35904
|
-
|
|
35905
|
-
|
|
35906
|
-
|
|
35907
|
-
|
|
35908
|
-
|
|
35909
|
-
|
|
35910
|
-
|
|
35911
|
-
|
|
36099
|
+
const addMessage = (0, import_react135.useCallback)(
|
|
36100
|
+
(message, deferUntilIdle = false, submittedPrompt) => {
|
|
36101
|
+
const modelText = message.trim();
|
|
36102
|
+
if (modelText.length > 0) {
|
|
36103
|
+
queueRef.current = [
|
|
36104
|
+
...queueRef.current,
|
|
36105
|
+
{ modelText, deferUntilIdle, submittedPrompt }
|
|
36106
|
+
];
|
|
36107
|
+
setQueuedMessages(queueRef.current);
|
|
36108
|
+
}
|
|
36109
|
+
},
|
|
36110
|
+
[]
|
|
36111
|
+
);
|
|
35912
36112
|
const clearQueue = (0, import_react135.useCallback)(() => {
|
|
35913
36113
|
queueRef.current = [];
|
|
35914
36114
|
setQueuedMessages([]);
|
|
35915
36115
|
}, []);
|
|
35916
36116
|
const getQueuedMessagesText = (0, import_react135.useCallback)(() => {
|
|
35917
36117
|
if (queuedMessages.length === 0) return "";
|
|
35918
|
-
return queuedMessages.map(({
|
|
36118
|
+
return queuedMessages.map(({ modelText }) => modelText).join("\n\n");
|
|
35919
36119
|
}, [queuedMessages]);
|
|
35920
36120
|
const popAllMessages = (0, import_react135.useCallback)(() => {
|
|
35921
36121
|
const current = queueRef.current;
|
|
35922
36122
|
if (current.length === 0) return null;
|
|
35923
36123
|
queueRef.current = [];
|
|
35924
36124
|
setQueuedMessages([]);
|
|
35925
|
-
return current
|
|
36125
|
+
return aggregateMessages(current);
|
|
35926
36126
|
}, []);
|
|
35927
36127
|
const restoreMessages = (0, import_react135.useCallback)((messages) => {
|
|
35928
|
-
const restored = messages.map((text) => text.trim()).filter(Boolean).map((
|
|
36128
|
+
const restored = messages.map((text) => text.trim()).filter(Boolean).map((modelText) => ({ modelText, deferUntilIdle: false }));
|
|
35929
36129
|
if (restored.length === 0) return;
|
|
35930
36130
|
queueRef.current = [...restored, ...queueRef.current];
|
|
35931
36131
|
setQueuedMessages(queueRef.current);
|
|
@@ -35933,31 +36133,36 @@ function useMessageQueue() {
|
|
|
35933
36133
|
const drainQueue = (0, import_react135.useCallback)((includeDeferred = false) => {
|
|
35934
36134
|
const current = queueRef.current;
|
|
35935
36135
|
if (current.length === 0) return [];
|
|
35936
|
-
const shouldDrain = /* @__PURE__ */ __name((message) => (!isSlashCommand(message.
|
|
36136
|
+
const shouldDrain = /* @__PURE__ */ __name((message) => (!isSlashCommand(message.modelText) || !includeDeferred && GOAL_COMMAND_RE.test(message.modelText)) && (includeDeferred || !message.deferUntilIdle), "shouldDrain");
|
|
35937
36137
|
const drained = current.filter(shouldDrain);
|
|
35938
36138
|
if (drained.length === 0) return [];
|
|
35939
36139
|
const rest = current.filter((message) => !shouldDrain(message));
|
|
35940
36140
|
queueRef.current = rest;
|
|
35941
36141
|
setQueuedMessages(rest);
|
|
35942
|
-
return drained.map(({
|
|
36142
|
+
return drained.map(({ modelText }) => modelText);
|
|
35943
36143
|
}, []);
|
|
35944
|
-
const
|
|
36144
|
+
const popNextTurn = (0, import_react135.useCallback)(() => {
|
|
35945
36145
|
const current = queueRef.current;
|
|
35946
36146
|
if (current.length === 0) return null;
|
|
35947
|
-
const
|
|
36147
|
+
const plainMessages = current.filter(
|
|
36148
|
+
(message) => !isSlashCommand(message.modelText)
|
|
36149
|
+
);
|
|
36150
|
+
const messages = plainMessages.length > 0 ? plainMessages : [current[0]];
|
|
36151
|
+
const selected = new Set(messages);
|
|
36152
|
+
const rest = current.filter((message) => !selected.has(message));
|
|
35948
36153
|
queueRef.current = rest;
|
|
35949
36154
|
setQueuedMessages(rest);
|
|
35950
|
-
return
|
|
36155
|
+
return aggregateMessages(messages);
|
|
35951
36156
|
}, []);
|
|
35952
36157
|
return {
|
|
35953
|
-
messageQueue: queuedMessages.map(({
|
|
36158
|
+
messageQueue: queuedMessages.map(({ modelText }) => modelText),
|
|
35954
36159
|
addMessage,
|
|
35955
36160
|
clearQueue,
|
|
35956
36161
|
getQueuedMessagesText,
|
|
35957
36162
|
popAllMessages,
|
|
35958
36163
|
restoreMessages,
|
|
35959
36164
|
drainQueue,
|
|
35960
|
-
|
|
36165
|
+
popNextTurn
|
|
35961
36166
|
};
|
|
35962
36167
|
}
|
|
35963
36168
|
__name(useMessageQueue, "useMessageQueue");
|
|
@@ -36112,6 +36317,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
36112
36317
|
const isSubmittingQueryRef = (0, import_react136.useRef)(false);
|
|
36113
36318
|
const lastPromptRef = (0, import_react136.useRef)(null);
|
|
36114
36319
|
const lastTurnUserItemRef = (0, import_react136.useRef)(null);
|
|
36320
|
+
const canUndoLastLoggedUserMessageRef = (0, import_react136.useRef)(false);
|
|
36115
36321
|
const turnSawContentEventRef = (0, import_react136.useRef)(false);
|
|
36116
36322
|
const lastPromptErroredRef = (0, import_react136.useRef)(false);
|
|
36117
36323
|
const commitItem = (0, import_react136.useCallback)(
|
|
@@ -36152,6 +36358,10 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
36152
36358
|
const submitPromptOnCompleteRef = (0, import_react136.useRef)(null);
|
|
36153
36359
|
const modelOverrideRef = (0, import_react136.useRef)(void 0);
|
|
36154
36360
|
const inlineModelOverrideActiveRef = (0, import_react136.useRef)(false);
|
|
36361
|
+
const canUseToolResultFullTurnModel = (0, import_react136.useCallback)((model) => {
|
|
36362
|
+
const current = modelOverrideRef.current;
|
|
36363
|
+
return !inlineModelOverrideActiveRef.current && (!current?.endsWith("\0") || current === model);
|
|
36364
|
+
}, []);
|
|
36155
36365
|
const handledProviderToolCallIdsRef = (0, import_react136.useRef)(/* @__PURE__ */ new Set());
|
|
36156
36366
|
const duplicateProviderToolCallResponseIdsRef = (0, import_react136.useRef)(
|
|
36157
36367
|
/* @__PURE__ */ new Set()
|
|
@@ -36182,7 +36392,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
36182
36392
|
},
|
|
36183
36393
|
config,
|
|
36184
36394
|
getPreferredEditor,
|
|
36185
|
-
onEditorClose
|
|
36395
|
+
onEditorClose,
|
|
36396
|
+
canUseToolResultFullTurnModel
|
|
36186
36397
|
);
|
|
36187
36398
|
const pendingToolCallGroupDisplay = (0, import_react136.useMemo)(
|
|
36188
36399
|
() => toolCalls.length ? mapToDisplay(toolCalls, config.getProjectRoot()) : void 0,
|
|
@@ -36366,6 +36577,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
36366
36577
|
onCancelSubmit({
|
|
36367
36578
|
pendingItem: pendingItemAtCancel,
|
|
36368
36579
|
lastTurnUserItem: lastTurnUserItemRef.current,
|
|
36580
|
+
canUndoLastLoggedUserMessage: canUndoLastLoggedUserMessageRef.current,
|
|
36369
36581
|
turnProducedMeaningfulContent: turnSawContentEventRef.current
|
|
36370
36582
|
});
|
|
36371
36583
|
} finally {
|
|
@@ -36450,14 +36662,16 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
36450
36662
|
[addItem, config]
|
|
36451
36663
|
);
|
|
36452
36664
|
const prepareQueryForGemini = (0, import_react136.useCallback)(
|
|
36453
|
-
async (query, userMessageTimestamp, abortSignal, prompt_id, submitType) => {
|
|
36665
|
+
async (query, userMessageTimestamp, abortSignal, prompt_id, submitType, submittedPrompt, preserveTurnOwnership) => {
|
|
36454
36666
|
if (turnCancelledRef.current) {
|
|
36455
36667
|
return { queryToSend: null, shouldProceed: false };
|
|
36456
36668
|
}
|
|
36457
36669
|
if (typeof query === "string" && query.trim().length === 0) {
|
|
36458
36670
|
return { queryToSend: null, shouldProceed: false };
|
|
36459
36671
|
}
|
|
36460
|
-
|
|
36672
|
+
if (!preserveTurnOwnership) {
|
|
36673
|
+
lastTurnUserItemRef.current = null;
|
|
36674
|
+
}
|
|
36461
36675
|
let localQueryToSendToGemini = null;
|
|
36462
36676
|
if (typeof query === "string") {
|
|
36463
36677
|
const trimmedQuery = query.trim();
|
|
@@ -36475,6 +36689,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
36475
36689
|
}
|
|
36476
36690
|
onDebugMessage(`Received user query (${trimmedQuery.length} chars)`);
|
|
36477
36691
|
await logger?.logMessage("user" /* USER */, trimmedQuery);
|
|
36692
|
+
canUndoLastLoggedUserMessageRef.current = !preserveTurnOwnership && logger != null;
|
|
36478
36693
|
const slashCommandResult = isSlashCommand(trimmedQuery) ? await handleSlashCommand(trimmedQuery) : false;
|
|
36479
36694
|
if (slashCommandResult) {
|
|
36480
36695
|
switch (slashCommandResult.type) {
|
|
@@ -36548,10 +36763,13 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
36548
36763
|
},
|
|
36549
36764
|
userMessageTimestamp
|
|
36550
36765
|
);
|
|
36551
|
-
|
|
36552
|
-
|
|
36553
|
-
|
|
36554
|
-
|
|
36766
|
+
if (!preserveTurnOwnership) {
|
|
36767
|
+
lastTurnUserItemRef.current = {
|
|
36768
|
+
id: insertedId,
|
|
36769
|
+
text: trimmedQuery,
|
|
36770
|
+
...submittedPrompt === void 0 ? {} : { submittedPrompt }
|
|
36771
|
+
};
|
|
36772
|
+
}
|
|
36555
36773
|
await new Promise((r) => setImmediate(r));
|
|
36556
36774
|
}
|
|
36557
36775
|
if (isAtCommand(trimmedQuery)) {
|
|
@@ -37674,6 +37892,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
37674
37892
|
async (query, submitType = "userQuery" /* UserQuery */, prompt_id, metadata) => {
|
|
37675
37893
|
const allowConcurrentBtwDuringResponse = submitType === "userQuery" /* UserQuery */ && streamingState === "responding" /* Responding */ && typeof query === "string" && isBtwCommand(query);
|
|
37676
37894
|
const isTurnContinuation = submitType === "toolResult" /* ToolResult */ || submitType === "steer" /* Steer */;
|
|
37895
|
+
const submittedPrompt = submitType === "userQuery" /* UserQuery */ ? metadata?.submittedPrompt : void 0;
|
|
37677
37896
|
if (isSubmittingQueryRef.current && !isTurnContinuation && !allowConcurrentBtwDuringResponse) {
|
|
37678
37897
|
metadata?.onDeliveryFailed?.();
|
|
37679
37898
|
return;
|
|
@@ -37686,6 +37905,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
37686
37905
|
loopDetectedRef.current = false;
|
|
37687
37906
|
if (!isTurnContinuation && !allowConcurrentBtwDuringResponse) {
|
|
37688
37907
|
lastTurnUserItemRef.current = null;
|
|
37908
|
+
canUndoLastLoggedUserMessageRef.current = false;
|
|
37689
37909
|
turnSawContentEventRef.current = false;
|
|
37690
37910
|
handledProviderToolCallIdsRef.current.clear();
|
|
37691
37911
|
duplicateProviderToolCallResponseIdsRef.current.clear();
|
|
@@ -37732,7 +37952,9 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
37732
37952
|
userMessageTimestamp,
|
|
37733
37953
|
abortSignal,
|
|
37734
37954
|
prompt_id,
|
|
37735
|
-
submitType
|
|
37955
|
+
submitType,
|
|
37956
|
+
submittedPrompt,
|
|
37957
|
+
allowConcurrentBtwDuringResponse
|
|
37736
37958
|
);
|
|
37737
37959
|
if (!shouldProceed || queryToSend === null) {
|
|
37738
37960
|
isSubmittingQueryRef.current = false;
|
|
@@ -37790,17 +38012,19 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
37790
38012
|
);
|
|
37791
38013
|
dualOutput.emitUserMessage(userParts);
|
|
37792
38014
|
}
|
|
38015
|
+
const sendOptions = {
|
|
38016
|
+
type: submitType,
|
|
38017
|
+
notificationDisplayText: metadata?.notificationDisplayText,
|
|
38018
|
+
modelOverride: modelOverrideRef.current,
|
|
38019
|
+
steerInput: metadata?.steerInput,
|
|
38020
|
+
...submittedPrompt !== void 0 ? { submittedPrompt } : {},
|
|
38021
|
+
...!allowConcurrentBtwDuringResponse && midTurnDrainRef ? { getSteerInput: drainSteerAtBoundary } : {}
|
|
38022
|
+
};
|
|
37793
38023
|
const stream = geminiClient.sendMessageStream(
|
|
37794
38024
|
finalQueryToSend,
|
|
37795
38025
|
abortSignal,
|
|
37796
38026
|
prompt_id,
|
|
37797
|
-
|
|
37798
|
-
type: submitType,
|
|
37799
|
-
notificationDisplayText: metadata?.notificationDisplayText,
|
|
37800
|
-
modelOverride: modelOverrideRef.current,
|
|
37801
|
-
steerInput: metadata?.steerInput,
|
|
37802
|
-
...!allowConcurrentBtwDuringResponse && midTurnDrainRef ? { getSteerInput: drainSteerAtBoundary } : {}
|
|
37803
|
-
}
|
|
38027
|
+
sendOptions
|
|
37804
38028
|
);
|
|
37805
38029
|
const processingStatus = await processGeminiStreamEvents(
|
|
37806
38030
|
stream,
|
|
@@ -38479,7 +38703,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
38479
38703
|
const summary = scheduler.getExitSummary();
|
|
38480
38704
|
scheduler.stop();
|
|
38481
38705
|
if (summary) {
|
|
38482
|
-
|
|
38706
|
+
process15.stderr.write(summary + "\n");
|
|
38483
38707
|
}
|
|
38484
38708
|
};
|
|
38485
38709
|
}, [config, getAutonomousLoopTickResolver, isConfigInitialized]);
|
|
@@ -40610,7 +40834,7 @@ __name(useTerminalProgress, "useTerminalProgress");
|
|
|
40610
40834
|
// packages/cli/src/ui/hooks/useFolderTrust.ts
|
|
40611
40835
|
init_esbuild_shims();
|
|
40612
40836
|
var import_react143 = __toESM(require_react(), 1);
|
|
40613
|
-
import * as
|
|
40837
|
+
import * as process16 from "node:process";
|
|
40614
40838
|
var useFolderTrust = /* @__PURE__ */ __name((settings, onTrustChange) => {
|
|
40615
40839
|
const [isTrusted, setIsTrusted] = (0, import_react143.useState)(void 0);
|
|
40616
40840
|
const [isFolderTrustDialogOpen, setIsFolderTrustDialogOpen] = (0, import_react143.useState)(false);
|
|
@@ -40625,7 +40849,7 @@ var useFolderTrust = /* @__PURE__ */ __name((settings, onTrustChange) => {
|
|
|
40625
40849
|
const handleFolderTrustSelect = (0, import_react143.useCallback)(
|
|
40626
40850
|
(choice) => {
|
|
40627
40851
|
const trustedFolders = loadTrustedFolders();
|
|
40628
|
-
const cwd3 =
|
|
40852
|
+
const cwd3 = process16.cwd();
|
|
40629
40853
|
let trustLevel;
|
|
40630
40854
|
const wasTrusted = isTrusted ?? true;
|
|
40631
40855
|
switch (choice) {
|
|
@@ -40641,7 +40865,15 @@ var useFolderTrust = /* @__PURE__ */ __name((settings, onTrustChange) => {
|
|
|
40641
40865
|
default:
|
|
40642
40866
|
return;
|
|
40643
40867
|
}
|
|
40644
|
-
|
|
40868
|
+
try {
|
|
40869
|
+
trustedFolders.setValue(cwd3, trustLevel);
|
|
40870
|
+
} catch (error) {
|
|
40871
|
+
writeStderrLineSafe("Error saving trusted folders file.");
|
|
40872
|
+
writeStderrLineSafe(
|
|
40873
|
+
error instanceof Error ? error.message : String(error)
|
|
40874
|
+
);
|
|
40875
|
+
return;
|
|
40876
|
+
}
|
|
40645
40877
|
const currentIsTrusted = trustLevel === "TRUST_FOLDER" /* TRUST_FOLDER */ || trustLevel === "TRUST_PARENT" /* TRUST_PARENT */;
|
|
40646
40878
|
setIsTrusted(currentIsTrusted);
|
|
40647
40879
|
onTrustChange(currentIsTrusted);
|
|
@@ -40932,14 +41164,22 @@ __name(sendNotification, "sendNotification");
|
|
|
40932
41164
|
// packages/cli/src/ui/hooks/useGitBranchName.ts
|
|
40933
41165
|
init_esbuild_shims();
|
|
40934
41166
|
var import_react146 = __toESM(require_react(), 1);
|
|
41167
|
+
var BRANCH_POLL_INTERVAL_MS = 5e3;
|
|
40935
41168
|
function useGitBranchName(cwd3) {
|
|
40936
41169
|
const [branchName, setBranchName] = (0, import_react146.useState)(void 0);
|
|
41170
|
+
const branchNameRef = (0, import_react146.useRef)(branchName);
|
|
41171
|
+
branchNameRef.current = branchName;
|
|
40937
41172
|
(0, import_react146.useEffect)(() => {
|
|
40938
41173
|
let cancelled = false;
|
|
40939
41174
|
let dispose;
|
|
41175
|
+
let pollTimer;
|
|
41176
|
+
let refreshGeneration = 0;
|
|
40940
41177
|
const refresh = /* @__PURE__ */ __name(async () => {
|
|
41178
|
+
const generation = ++refreshGeneration;
|
|
40941
41179
|
const name = await resolveBranchName(cwd3);
|
|
40942
|
-
if (!cancelled
|
|
41180
|
+
if (!cancelled && generation === refreshGeneration && name !== branchNameRef.current) {
|
|
41181
|
+
setBranchName(name);
|
|
41182
|
+
}
|
|
40943
41183
|
}, "refresh");
|
|
40944
41184
|
const init = /* @__PURE__ */ __name(async () => {
|
|
40945
41185
|
await refresh();
|
|
@@ -40953,12 +41193,20 @@ function useGitBranchName(cwd3) {
|
|
|
40953
41193
|
} else {
|
|
40954
41194
|
dispose = disposer;
|
|
40955
41195
|
}
|
|
41196
|
+
if (!cancelled) {
|
|
41197
|
+
pollTimer = setInterval(() => {
|
|
41198
|
+
void refresh().catch(() => {
|
|
41199
|
+
});
|
|
41200
|
+
}, BRANCH_POLL_INTERVAL_MS);
|
|
41201
|
+
pollTimer.unref?.();
|
|
41202
|
+
}
|
|
40956
41203
|
}, "init");
|
|
40957
41204
|
void init().catch(() => {
|
|
40958
41205
|
});
|
|
40959
41206
|
return () => {
|
|
40960
41207
|
cancelled = true;
|
|
40961
41208
|
dispose?.();
|
|
41209
|
+
if (pollTimer) clearInterval(pollTimer);
|
|
40962
41210
|
};
|
|
40963
41211
|
}, [cwd3]);
|
|
40964
41212
|
return branchName;
|
|
@@ -42149,7 +42397,7 @@ __name(shouldAutoOpenSkillReview, "shouldAutoOpenSkillReview");
|
|
|
42149
42397
|
var SHELL_WIDTH_FRACTION = 0.89;
|
|
42150
42398
|
var SHELL_HEIGHT_PADDING = 10;
|
|
42151
42399
|
var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
42152
|
-
const { settings, config, initializationResult } = props;
|
|
42400
|
+
const { settings, config, initializationResult, initialUseVirtualViewport } = props;
|
|
42153
42401
|
const extensionRefreshState = (0, import_react165.useMemo)(
|
|
42154
42402
|
() => props.extensionRefreshState ?? new ExtensionRefreshState(),
|
|
42155
42403
|
[props.extensionRefreshState]
|
|
@@ -42270,7 +42518,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
42270
42518
|
const { stdin, setRawMode } = use_stdin_default();
|
|
42271
42519
|
const { stdout } = use_stdout_default();
|
|
42272
42520
|
const writeRaw = (0, import_react165.useCallback)((data) => {
|
|
42273
|
-
|
|
42521
|
+
process17.stdout.write(data);
|
|
42274
42522
|
}, []);
|
|
42275
42523
|
const terminal = (0, import_react165.useMemo)(
|
|
42276
42524
|
() => buildTerminalNotification(writeRaw),
|
|
@@ -42494,6 +42742,27 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
42494
42742
|
}
|
|
42495
42743
|
}, []);
|
|
42496
42744
|
const preferredEditor = usePreferredEditor();
|
|
42745
|
+
const restoredSubmissionRef = (0, import_react165.useRef)(null);
|
|
42746
|
+
const submittedPromptProvenanceUnavailableRef = (0, import_react165.useRef)(false);
|
|
42747
|
+
const setBufferTextRef = (0, import_react165.useRef)(null);
|
|
42748
|
+
const invalidateSubmittedPromptProvenance = (0, import_react165.useCallback)(() => {
|
|
42749
|
+
restoredSubmissionRef.current = null;
|
|
42750
|
+
submittedPromptProvenanceUnavailableRef.current = true;
|
|
42751
|
+
}, []);
|
|
42752
|
+
const handleBufferChange = (0, import_react165.useCallback)((text) => {
|
|
42753
|
+
if (text.length === 0) {
|
|
42754
|
+
if (restoredSubmissionRef.current !== null || submittedPromptProvenanceUnavailableRef.current) {
|
|
42755
|
+
setBufferTextRef.current?.("", { clearUndoHistory: true });
|
|
42756
|
+
}
|
|
42757
|
+
restoredSubmissionRef.current = null;
|
|
42758
|
+
submittedPromptProvenanceUnavailableRef.current = false;
|
|
42759
|
+
return;
|
|
42760
|
+
}
|
|
42761
|
+
if (restoredSubmissionRef.current !== null && restoredSubmissionRef.current.modelText !== text) {
|
|
42762
|
+
restoredSubmissionRef.current = null;
|
|
42763
|
+
submittedPromptProvenanceUnavailableRef.current = true;
|
|
42764
|
+
}
|
|
42765
|
+
}, []);
|
|
42497
42766
|
const buffer = useTextBuffer({
|
|
42498
42767
|
initialText: "",
|
|
42499
42768
|
viewport: { height: 10, width: inputWidth },
|
|
@@ -42501,8 +42770,11 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
42501
42770
|
setRawMode,
|
|
42502
42771
|
isValidPath,
|
|
42503
42772
|
shellModeActive,
|
|
42504
|
-
preferredEditor
|
|
42773
|
+
preferredEditor,
|
|
42774
|
+
onChange: handleBufferChange
|
|
42505
42775
|
});
|
|
42776
|
+
const setBufferText = buffer.setText;
|
|
42777
|
+
setBufferTextRef.current = setBufferText;
|
|
42506
42778
|
const restoredPromptStashTargetsRef = (0, import_react165.useRef)(/* @__PURE__ */ new Set());
|
|
42507
42779
|
const promptStashTargetDir = config.getTargetDir();
|
|
42508
42780
|
(0, import_react165.useEffect)(() => {
|
|
@@ -42510,11 +42782,11 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
42510
42782
|
return;
|
|
42511
42783
|
}
|
|
42512
42784
|
restoredPromptStashTargetsRef.current.add(promptStashTargetDir);
|
|
42513
|
-
restorePromptStash(
|
|
42514
|
-
|
|
42515
|
-
|
|
42516
|
-
|
|
42517
|
-
);
|
|
42785
|
+
restorePromptStash(promptStashTargetDir, buffer.text, (text) => {
|
|
42786
|
+
restoredSubmissionRef.current = null;
|
|
42787
|
+
submittedPromptProvenanceUnavailableRef.current = true;
|
|
42788
|
+
buffer.setText(text);
|
|
42789
|
+
});
|
|
42518
42790
|
}, [buffer, promptStashTargetDir]);
|
|
42519
42791
|
(0, import_react165.useEffect)(() => {
|
|
42520
42792
|
const fetchUserMessages = /* @__PURE__ */ __name(async () => {
|
|
@@ -42533,7 +42805,13 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
42533
42805
|
const remountStaticHistory = (0, import_react165.useCallback)(() => {
|
|
42534
42806
|
setHistoryRemountKey((prev) => prev + 1);
|
|
42535
42807
|
}, []);
|
|
42536
|
-
const useTerminalBuffer =
|
|
42808
|
+
const [useTerminalBuffer] = (0, import_react165.useState)(
|
|
42809
|
+
() => initialUseVirtualViewport ?? shouldUseVirtualViewport(
|
|
42810
|
+
settings.merged.ui?.useTerminalBuffer,
|
|
42811
|
+
config.getScreenReader(),
|
|
42812
|
+
isInteractiveTerminal()
|
|
42813
|
+
)
|
|
42814
|
+
);
|
|
42537
42815
|
const showScrollbar = settings.merged.ui?.showScrollbar ?? true;
|
|
42538
42816
|
const refreshStatic = (0, import_react165.useCallback)(() => {
|
|
42539
42817
|
if (isTranscriptOpenRef.current) {
|
|
@@ -42724,6 +43002,11 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
42724
43002
|
const closeHelpDialog = (0, import_react165.useCallback)(() => setHelpDialogOpen(false), []);
|
|
42725
43003
|
const { vimEnabled, vimMode } = useVimModeState();
|
|
42726
43004
|
const { toggleVimEnabled } = useVimModeActions();
|
|
43005
|
+
(0, import_react165.useLayoutEffect)(() => {
|
|
43006
|
+
if (vimEnabled && buffer.text.length > 0) {
|
|
43007
|
+
invalidateSubmittedPromptProvenance();
|
|
43008
|
+
}
|
|
43009
|
+
}, [buffer.text, invalidateSubmittedPromptProvenance, vimEnabled]);
|
|
42727
43010
|
const {
|
|
42728
43011
|
isSubagentCreateDialogOpen,
|
|
42729
43012
|
openSubagentCreateDialog,
|
|
@@ -42845,7 +43128,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
42845
43128
|
config.getGeminiClient()?.requestShutdown();
|
|
42846
43129
|
setTimeout(async () => {
|
|
42847
43130
|
await runExitCleanup();
|
|
42848
|
-
|
|
43131
|
+
process17.exit(0);
|
|
42849
43132
|
}, 100);
|
|
42850
43133
|
}, "quit"),
|
|
42851
43134
|
setDebugMessage,
|
|
@@ -43028,7 +43311,7 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
43028
43311
|
);
|
|
43029
43312
|
try {
|
|
43030
43313
|
const { memoryContent, fileCount, conditionalRules, projectRoot } = await loadHierarchicalGeminiMemory(
|
|
43031
|
-
|
|
43314
|
+
process17.cwd(),
|
|
43032
43315
|
settings.merged.context?.loadFromIncludeDirectories ? config.getWorkspaceContext().getDirectories() : [],
|
|
43033
43316
|
config.getFileService(),
|
|
43034
43317
|
config.getExtensionContextFilePaths(),
|
|
@@ -43187,8 +43470,24 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
43187
43470
|
popAllMessages,
|
|
43188
43471
|
restoreMessages,
|
|
43189
43472
|
drainQueue,
|
|
43190
|
-
|
|
43473
|
+
popNextTurn
|
|
43191
43474
|
} = useMessageQueue();
|
|
43475
|
+
const submitUserQuery = (0, import_react165.useCallback)(
|
|
43476
|
+
(submission) => submitQuery(
|
|
43477
|
+
submission.modelText,
|
|
43478
|
+
"userQuery" /* UserQuery */,
|
|
43479
|
+
void 0,
|
|
43480
|
+
submission.submittedPrompt === void 0 ? void 0 : { submittedPrompt: submission.submittedPrompt }
|
|
43481
|
+
),
|
|
43482
|
+
[submitQuery]
|
|
43483
|
+
);
|
|
43484
|
+
const popAllQueuedMessages = (0, import_react165.useCallback)(() => {
|
|
43485
|
+
const submission = popAllMessages();
|
|
43486
|
+
if (submission === null) return null;
|
|
43487
|
+
restoredSubmissionRef.current = submission;
|
|
43488
|
+
submittedPromptProvenanceUnavailableRef.current = false;
|
|
43489
|
+
return submission.modelText;
|
|
43490
|
+
}, [popAllMessages]);
|
|
43192
43491
|
midTurnDrainRef.current = drainQueue;
|
|
43193
43492
|
midTurnRestoreRef.current = restoreMessages;
|
|
43194
43493
|
const remoteInput = useRemoteInput();
|
|
@@ -43281,6 +43580,20 @@ var AppContainer = /* @__PURE__ */ __name((props) => {
|
|
|
43281
43580
|
}, [remoteInput]);
|
|
43282
43581
|
const handleFinalSubmit = (0, import_react165.useCallback)(
|
|
43283
43582
|
(submittedValue, options) => {
|
|
43583
|
+
const consumesComposerState = options !== void 0;
|
|
43584
|
+
const restoredSubmission = consumesComposerState ? restoredSubmissionRef.current : null;
|
|
43585
|
+
const submittedPromptProvenanceUnavailable = consumesComposerState && submittedPromptProvenanceUnavailableRef.current;
|
|
43586
|
+
if (consumesComposerState) {
|
|
43587
|
+
restoredSubmissionRef.current = null;
|
|
43588
|
+
submittedPromptProvenanceUnavailableRef.current = false;
|
|
43589
|
+
}
|
|
43590
|
+
const submittedPromptCandidate = options?.submittedPrompt;
|
|
43591
|
+
const provenanceEnabled = !vimEnabled && submittedPromptCandidate !== void 0;
|
|
43592
|
+
const trimmedSubmittedPrompt = submittedPromptCandidate?.trim();
|
|
43593
|
+
const submittedPrompt = submittedPromptProvenanceUnavailable || !provenanceEnabled ? void 0 : restoredSubmission === null ? trimmedSubmittedPrompt || void 0 : restoredSubmission.modelText === submittedValue ? restoredSubmission.submittedPrompt : void 0;
|
|
43594
|
+
if (restoredSubmission !== null || submittedPromptProvenanceUnavailable) {
|
|
43595
|
+
setBufferText("", { clearUndoHistory: true });
|
|
43596
|
+
}
|
|
43284
43597
|
if (agentViewState.activeView !== "main") {
|
|
43285
43598
|
const agent = agentViewState.agents.get(agentViewState.activeView);
|
|
43286
43599
|
if (agent) {
|
|
@@ -43326,11 +43639,14 @@ ${buildWorkflowSteeringNotice()}
|
|
|
43326
43639
|
` + submittedValue;
|
|
43327
43640
|
}
|
|
43328
43641
|
if (options?.deferUntilIdle) {
|
|
43329
|
-
addMessage(submittedValue, true);
|
|
43642
|
+
addMessage(submittedValue, true, submittedPrompt);
|
|
43330
43643
|
return;
|
|
43331
43644
|
}
|
|
43332
43645
|
if (streamingState === "responding" /* Responding */ && isBtwCommand(submittedValue)) {
|
|
43333
|
-
void
|
|
43646
|
+
void submitUserQuery({
|
|
43647
|
+
modelText: submittedValue,
|
|
43648
|
+
submittedPrompt
|
|
43649
|
+
});
|
|
43334
43650
|
return;
|
|
43335
43651
|
}
|
|
43336
43652
|
const spec = speculationRef.current;
|
|
@@ -43404,7 +43720,7 @@ ${buildWorkflowSteeringNotice()}
|
|
|
43404
43720
|
setPromptSuggestion(result.nextSuggestion);
|
|
43405
43721
|
}
|
|
43406
43722
|
}).catch(() => {
|
|
43407
|
-
addMessage(submittedValue);
|
|
43723
|
+
addMessage(submittedValue, false, submittedPrompt);
|
|
43408
43724
|
});
|
|
43409
43725
|
speculationRef.current = IDLE_SPECULATION;
|
|
43410
43726
|
return;
|
|
@@ -43415,22 +43731,27 @@ ${buildWorkflowSteeringNotice()}
|
|
|
43415
43731
|
speculationRef.current = IDLE_SPECULATION;
|
|
43416
43732
|
}
|
|
43417
43733
|
if (streamingState === "idle" /* Idle */ && !isProcessing && isSlashCommand(submittedValue)) {
|
|
43418
|
-
void
|
|
43734
|
+
void submitUserQuery({
|
|
43735
|
+
modelText: submittedValue,
|
|
43736
|
+
submittedPrompt
|
|
43737
|
+
});
|
|
43419
43738
|
return;
|
|
43420
43739
|
}
|
|
43421
|
-
addMessage(submittedValue);
|
|
43740
|
+
addMessage(submittedValue, false, submittedPrompt);
|
|
43422
43741
|
},
|
|
43423
43742
|
[
|
|
43424
43743
|
addMessage,
|
|
43425
43744
|
agentViewState,
|
|
43426
43745
|
streamingState,
|
|
43427
43746
|
isProcessing,
|
|
43428
|
-
|
|
43747
|
+
submitUserQuery,
|
|
43429
43748
|
handleSlashCommand,
|
|
43430
43749
|
config,
|
|
43431
43750
|
geminiClient,
|
|
43432
43751
|
historyManager,
|
|
43433
|
-
settings.merged.ui?.disableWorkflowKeywordTrigger
|
|
43752
|
+
settings.merged.ui?.disableWorkflowKeywordTrigger,
|
|
43753
|
+
setBufferText,
|
|
43754
|
+
vimEnabled
|
|
43434
43755
|
]
|
|
43435
43756
|
);
|
|
43436
43757
|
const handleArenaModelsSelected = (0, import_react165.useCallback)(
|
|
@@ -43500,9 +43821,13 @@ ${buildWorkflowSteeringNotice()}
|
|
|
43500
43821
|
const draftWasEmpty = buffer.text.length === 0;
|
|
43501
43822
|
const popped = popAllMessages();
|
|
43502
43823
|
if (popped) {
|
|
43824
|
+
restoredSubmissionRef.current = popped;
|
|
43825
|
+
submittedPromptProvenanceUnavailableRef.current = false;
|
|
43503
43826
|
const currentText = buffer.text;
|
|
43504
|
-
buffer.setText(
|
|
43505
|
-
|
|
43827
|
+
buffer.setText(
|
|
43828
|
+
currentText ? `${popped.modelText}
|
|
43829
|
+
${currentText}` : popped.modelText
|
|
43830
|
+
);
|
|
43506
43831
|
}
|
|
43507
43832
|
if (!draftWasEmpty) {
|
|
43508
43833
|
debugLogger40.debug("auto-restore bail: buffer was non-empty");
|
|
@@ -43521,6 +43846,14 @@ ${currentText}` : popped);
|
|
|
43521
43846
|
);
|
|
43522
43847
|
return;
|
|
43523
43848
|
}
|
|
43849
|
+
const restoreCancelledPrompt = /* @__PURE__ */ __name(() => {
|
|
43850
|
+
restoredSubmissionRef.current = {
|
|
43851
|
+
modelText: cancelledTurnUserItem.text,
|
|
43852
|
+
...cancelledTurnUserItem.submittedPrompt === void 0 ? {} : { submittedPrompt: cancelledTurnUserItem.submittedPrompt }
|
|
43853
|
+
};
|
|
43854
|
+
submittedPromptProvenanceUnavailableRef.current = false;
|
|
43855
|
+
buffer.setText(cancelledTurnUserItem.text);
|
|
43856
|
+
}, "restoreCancelledPrompt");
|
|
43524
43857
|
if (pendingHistoryItems2.some((item) => item.type === "tool_group")) {
|
|
43525
43858
|
debugLogger40.debug(
|
|
43526
43859
|
"auto-restore bail: tool execution is pending or committed"
|
|
@@ -43531,7 +43864,7 @@ ${currentText}` : popped);
|
|
|
43531
43864
|
debugLogger40.debug(
|
|
43532
43865
|
"auto-restore: preserving streamed output and restoring prompt text"
|
|
43533
43866
|
);
|
|
43534
|
-
|
|
43867
|
+
restoreCancelledPrompt();
|
|
43535
43868
|
return;
|
|
43536
43869
|
}
|
|
43537
43870
|
if (pendingHistoryItems2.some((item) => !isSyntheticHistoryItem(item))) {
|
|
@@ -43550,7 +43883,7 @@ ${currentText}` : popped);
|
|
|
43550
43883
|
debugLogger40.debug(
|
|
43551
43884
|
"auto-restore: preserving committed output and restoring prompt text"
|
|
43552
43885
|
);
|
|
43553
|
-
|
|
43886
|
+
restoreCancelledPrompt();
|
|
43554
43887
|
return;
|
|
43555
43888
|
}
|
|
43556
43889
|
const lastUserItem = history[lastUserIdx];
|
|
@@ -43571,11 +43904,13 @@ ${currentText}` : popped);
|
|
|
43571
43904
|
);
|
|
43572
43905
|
historyManager.truncateToItem(lastUserItem.id);
|
|
43573
43906
|
refreshStatic();
|
|
43574
|
-
|
|
43907
|
+
restoreCancelledPrompt();
|
|
43575
43908
|
geminiClient?.stripOrphanedUserEntriesFromHistory?.();
|
|
43576
|
-
|
|
43577
|
-
|
|
43578
|
-
|
|
43909
|
+
if (info?.canUndoLastLoggedUserMessage) {
|
|
43910
|
+
void logger?.removeLastUserMessage().catch((err) => {
|
|
43911
|
+
debugLogger40.debug("Failed to undo cancelled prompt from log:", err);
|
|
43912
|
+
});
|
|
43913
|
+
}
|
|
43579
43914
|
},
|
|
43580
43915
|
[
|
|
43581
43916
|
buffer,
|
|
@@ -44016,6 +44351,8 @@ ${currentText}` : popped);
|
|
|
44016
44351
|
historyManager.loadHistory(truncatedUi);
|
|
44017
44352
|
refreshStatic();
|
|
44018
44353
|
if (userItem.type === "user" && userItem.text) {
|
|
44354
|
+
restoredSubmissionRef.current = null;
|
|
44355
|
+
submittedPromptProvenanceUnavailableRef.current = true;
|
|
44019
44356
|
buffer.setText(userItem.text);
|
|
44020
44357
|
}
|
|
44021
44358
|
historyManager.addItem(
|
|
@@ -44486,7 +44823,7 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
44486
44823
|
lastTitleRef.current = null;
|
|
44487
44824
|
const folderName2 = basename3(config.getTargetDir());
|
|
44488
44825
|
writeTerminalTitle(
|
|
44489
|
-
(value) =>
|
|
44826
|
+
(value) => process17.stdout.write(value),
|
|
44490
44827
|
formatSessionWindowTitle(null, folderName2)
|
|
44491
44828
|
);
|
|
44492
44829
|
}
|
|
@@ -44496,7 +44833,7 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
44496
44833
|
const title = formatSessionWindowTitle(sessionName, folderName);
|
|
44497
44834
|
if (lastTitleRef.current !== title) {
|
|
44498
44835
|
lastTitleRef.current = title;
|
|
44499
|
-
writeTerminalTitle((value) =>
|
|
44836
|
+
writeTerminalTitle((value) => process17.stdout.write(value), title);
|
|
44500
44837
|
}
|
|
44501
44838
|
}, [
|
|
44502
44839
|
sessionName,
|
|
@@ -44518,11 +44855,10 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
44518
44855
|
return;
|
|
44519
44856
|
}
|
|
44520
44857
|
if (isTranscriptOpenRef.current) return;
|
|
44521
|
-
const
|
|
44522
|
-
const submission = plainPrompts.length > 0 ? plainPrompts.join("\n\n") : popNextSegment();
|
|
44858
|
+
const submission = popNextTurn();
|
|
44523
44859
|
if (submission === null) return;
|
|
44524
44860
|
queueDrainingRef.current = true;
|
|
44525
|
-
Promise.resolve(
|
|
44861
|
+
Promise.resolve(submitUserQuery(submission)).finally(() => {
|
|
44526
44862
|
queueDrainingRef.current = false;
|
|
44527
44863
|
setQueueDrainNonce((n) => n + 1);
|
|
44528
44864
|
});
|
|
@@ -44534,9 +44870,8 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
44534
44870
|
// Re-run the drain when the transcript closes so queued messages resume.
|
|
44535
44871
|
isTranscriptOpen,
|
|
44536
44872
|
messageQueue,
|
|
44537
|
-
|
|
44538
|
-
|
|
44539
|
-
submitQuery,
|
|
44873
|
+
popNextTurn,
|
|
44874
|
+
submitUserQuery,
|
|
44540
44875
|
queueDrainNonce
|
|
44541
44876
|
]);
|
|
44542
44877
|
const nightly = props.version.includes("nightly");
|
|
@@ -44874,7 +45209,8 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
44874
45209
|
handleFinalSubmit,
|
|
44875
45210
|
handleRetryLastPrompt: retryLastPrompt,
|
|
44876
45211
|
handleClearScreen,
|
|
44877
|
-
popAllQueuedMessages
|
|
45212
|
+
popAllQueuedMessages,
|
|
45213
|
+
invalidateSubmittedPromptProvenance,
|
|
44878
45214
|
// Welcome back dialog
|
|
44879
45215
|
handleWelcomeBackSelection,
|
|
44880
45216
|
handleWelcomeBackClose,
|
|
@@ -44964,7 +45300,8 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
44964
45300
|
handleFinalSubmit,
|
|
44965
45301
|
retryLastPrompt,
|
|
44966
45302
|
handleClearScreen,
|
|
44967
|
-
|
|
45303
|
+
popAllQueuedMessages,
|
|
45304
|
+
invalidateSubmittedPromptProvenance,
|
|
44968
45305
|
handleWelcomeBackSelection,
|
|
44969
45306
|
handleWelcomeBackClose,
|
|
44970
45307
|
handleWorktreeExit,
|
|
@@ -45026,7 +45363,7 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
45026
45363
|
}),
|
|
45027
45364
|
[thoughtExpanded, expandedThoughtHeadIds, toggleThoughtExpanded]
|
|
45028
45365
|
);
|
|
45029
|
-
return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(UIStateContext.Provider, { value: uiState, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(UIActionsContext.Provider, { value: uiActions, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(ConfigContext.Provider, { value: config, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
45366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(VirtualViewportContext.Provider, { value: useTerminalBuffer, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(UIStateContext.Provider, { value: uiState, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(UIActionsContext.Provider, { value: uiActions, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(ConfigContext.Provider, { value: config, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
45030
45367
|
AppContext.Provider,
|
|
45031
45368
|
{
|
|
45032
45369
|
value: {
|
|
@@ -45050,7 +45387,7 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
45050
45387
|
) })
|
|
45051
45388
|
) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(App, {}) }) }) }) })
|
|
45052
45389
|
}
|
|
45053
|
-
) }) }) });
|
|
45390
|
+
) }) }) }) });
|
|
45054
45391
|
}, "AppContainer");
|
|
45055
45392
|
|
|
45056
45393
|
// packages/cli/src/ui/hooks/useKittyKeyboardProtocol.ts
|
|
@@ -45311,6 +45648,11 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
45311
45648
|
}
|
|
45312
45649
|
}
|
|
45313
45650
|
const initialCapturedInput = stopAndGetCapturedInput();
|
|
45651
|
+
const useVP = shouldUseVirtualViewport(
|
|
45652
|
+
settings.merged.ui?.useTerminalBuffer,
|
|
45653
|
+
config.getScreenReader(),
|
|
45654
|
+
isInteractiveTerminal()
|
|
45655
|
+
);
|
|
45314
45656
|
const AppWrapper = /* @__PURE__ */ __name(() => {
|
|
45315
45657
|
const kittyProtocolStatus = useKittyKeyboardProtocol();
|
|
45316
45658
|
const nodeMajorVersion = parseInt(process.versions.node.split(".")[0], 10);
|
|
@@ -45330,13 +45672,13 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
45330
45672
|
startupWarnings,
|
|
45331
45673
|
version,
|
|
45332
45674
|
initializationResult,
|
|
45675
|
+
initialUseVirtualViewport: useVP,
|
|
45333
45676
|
extensionRefreshState: options.extensionRefreshState
|
|
45334
45677
|
}
|
|
45335
45678
|
) }) }) }) })
|
|
45336
45679
|
}
|
|
45337
45680
|
) }) }) });
|
|
45338
45681
|
}, "AppWrapper");
|
|
45339
|
-
const useVP = settings.merged.ui?.useTerminalBuffer ?? false;
|
|
45340
45682
|
const stdoutMaxListeners = process.stdout.getMaxListeners();
|
|
45341
45683
|
if (useVP) {
|
|
45342
45684
|
process.stdout.setMaxListeners(0);
|