@organizaone/o1-code 0.19.4 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/features/sub-agents.md +29 -0
- package/chunks/{MaxSizedBox-IEWPEYLM.js → MaxSizedBox-K6ZIOTK2.js} +42 -42
- package/chunks/{StandaloneSessionPicker-O5XGGHSV.js → StandaloneSessionPicker-GMN2NSOX.js} +58 -58
- package/chunks/{acp-subagent-executor-SARFPLBX.js → acp-subagent-executor-3KANENTV.js} +45 -45
- package/chunks/{acpAgent-WI2WIHJ2.js → acpAgent-TH5RJUQR.js} +88 -88
- package/chunks/{agent-TRD3DVKW.js → agent-A4HBS5YW.js} +26 -26
- package/chunks/{agent-headless-L3ODBSIA.js → agent-headless-HLZTE5G2.js} +26 -26
- package/chunks/{all-providers-Q4UTI7X7.js → all-providers-LYA6G2FD.js} +2 -2
- package/chunks/{anthropicContentGenerator-R5EZMIUD.js → anthropicContentGenerator-XZTRPOXZ.js} +5 -5
- package/chunks/{artifact-tool-YPTGDOWY.js → artifact-tool-VKDCERQZ.js} +1 -1
- package/chunks/{askUserQuestion-SVDY6XLX.js → askUserQuestion-NWK5LQIZ.js} +2 -2
- package/chunks/{bridge-CWUXZNK2.js → bridge-KO43BLNM.js} +45 -45
- package/chunks/{bwrap-execution-PXKLC4L6.js → bwrap-execution-32LOZ3PS.js} +5 -5
- package/chunks/{caption-audio-EK6K45W3.js → caption-audio-OLLSPHW7.js} +3 -3
- package/chunks/{caption-image-WDXLQK6T.js → caption-image-ARAQIU6W.js} +3 -3
- package/chunks/{chunk-FIXBGZLC.js → chunk-2D2DZP65.js} +3 -3
- package/chunks/{chunk-75UFQ4VY.js → chunk-2G3AZNJ5.js} +4 -4
- package/chunks/{chunk-IZSIFV6S.js → chunk-2I2NK33A.js} +1 -1
- package/chunks/{chunk-YCTMVTDP.js → chunk-2SMHE6PC.js} +1 -1
- package/chunks/{chunk-WK44MSGW.js → chunk-32722SNN.js} +1 -1
- package/chunks/{chunk-ID6BF7FM.js → chunk-3CWK2CPF.js} +1 -1
- package/chunks/{chunk-R54WGB5K.js → chunk-3GJ4USZZ.js} +7 -7
- package/chunks/{chunk-FRDIFAE7.js → chunk-3YBMUB43.js} +1 -1
- package/chunks/{chunk-KHSEVS3O.js → chunk-5SM3EYY4.js} +2 -2
- package/chunks/{chunk-ZJLBESKM.js → chunk-6BOPO2CB.js} +2 -2
- package/chunks/{chunk-OSMXNPJP.js → chunk-6CW53FOJ.js} +2 -2
- package/chunks/{chunk-6NPHWGZJ.js → chunk-6ZM4Q4KZ.js} +1 -1
- package/chunks/{chunk-2LB3FV6Y.js → chunk-76RPLLAU.js} +2 -2
- package/chunks/{chunk-ZPCVRY42.js → chunk-7FKHLWEJ.js} +1 -1
- package/chunks/{chunk-PPHCWNOW.js → chunk-7WR2OWSW.js} +4 -4
- package/chunks/{chunk-O7ZK6JUE.js → chunk-7WWRFD54.js} +18 -18
- package/chunks/{chunk-CFFFKDAX.js → chunk-A3JZZ2KW.js} +1 -1
- package/chunks/{chunk-EAULWM27.js → chunk-ABUSH24T.js} +2 -2
- package/chunks/{chunk-QGBGLKMW.js → chunk-ACYDX6SG.js} +11 -11
- package/chunks/{chunk-GQCAN53O.js → chunk-AD7SSY2F.js} +2 -2
- package/chunks/{chunk-7OBN7TW6.js → chunk-AFLUT27F.js} +3 -3
- package/chunks/{chunk-XOVXSDNN.js → chunk-AGTM6524.js} +2 -2
- package/chunks/{chunk-OW44PTOE.js → chunk-ALDQ36W4.js} +8 -8
- package/chunks/{chunk-Q4SBLB6E.js → chunk-B7UDYBFE.js} +2 -2
- package/chunks/{chunk-YO3SEHXM.js → chunk-BNJ3IJB7.js} +1 -1
- package/chunks/{chunk-FAOCU5VJ.js → chunk-BZHLXJWH.js} +1 -1
- package/chunks/{chunk-WA5T74EJ.js → chunk-C5YZ6RZC.js} +2 -2
- package/chunks/{chunk-UOO4TFQV.js → chunk-CCDVLPJU.js} +7 -7
- package/chunks/{chunk-ZHDGCGW7.js → chunk-CMHOR7E6.js} +2 -2
- package/chunks/{chunk-5HVWJGQN.js → chunk-DAP4EYT4.js} +1 -1
- package/chunks/{chunk-D5LBASZ7.js → chunk-DCSRFE4W.js} +1 -1
- package/chunks/{chunk-OBKNDDZW.js → chunk-DHERIROV.js} +17 -17
- package/chunks/{chunk-ZQBNP2ZQ.js → chunk-DNMM4RF7.js} +3 -3
- package/chunks/{chunk-O7RFFTTE.js → chunk-DR6BI3PJ.js} +3 -3
- package/chunks/{chunk-QYUMJTBP.js → chunk-DVR4QCFA.js} +2 -2
- package/chunks/{chunk-7R7LA5F5.js → chunk-DYGCZZA5.js} +11 -11
- package/chunks/{chunk-G5QZC3KV.js → chunk-ESJUUVTV.js} +2 -2
- package/chunks/{chunk-2I7F4TTF.js → chunk-FB7XHMPT.js} +1 -1
- package/chunks/{chunk-TC6APBKO.js → chunk-FC4ZD65F.js} +1 -1
- package/chunks/{chunk-2Z5S36GZ.js → chunk-GONQNZPP.js} +2 -2
- package/chunks/{chunk-OPYQYNSR.js → chunk-H4USGTKZ.js} +9 -9
- package/chunks/{chunk-FFUKRRCR.js → chunk-HAZNBQPI.js} +1 -1
- package/chunks/{chunk-VBDGXRYM.js → chunk-HFIGGSUW.js} +5 -5
- package/chunks/{chunk-2XBK3KBR.js → chunk-I3YBDADP.js} +3 -3
- package/chunks/{chunk-2MXORWOC.js → chunk-IMLPJ76O.js} +1 -1
- package/chunks/{chunk-DUHNRPAF.js → chunk-INGWSCK5.js} +1 -1
- package/chunks/{chunk-X4OQN3ZO.js → chunk-IPWNPFIR.js} +2 -2
- package/chunks/{chunk-VUJ4WYBZ.js → chunk-ITCYJNMA.js} +1 -1
- package/chunks/{chunk-H4GDMMIG.js → chunk-IVVMETSX.js} +1 -1
- package/chunks/{chunk-NUADBQGA.js → chunk-J3O3M5DH.js} +9 -9
- package/chunks/{chunk-7LFCBMVX.js → chunk-JEUH2DSW.js} +2 -2
- package/chunks/{chunk-QTI36T2P.js → chunk-JMM2J43E.js} +2 -2
- package/chunks/{chunk-53B5T577.js → chunk-JO2NW4DA.js} +1 -1
- package/chunks/{chunk-OT7EXUL3.js → chunk-JZZN42BL.js} +3 -3
- package/chunks/{chunk-WN23CFGN.js → chunk-KBDFOYPK.js} +3 -3
- package/chunks/{chunk-H4OG24QJ.js → chunk-KGYXJDO6.js} +7 -7
- package/chunks/{chunk-XVSSUT2K.js → chunk-KICY6OQ7.js} +1 -1
- package/chunks/{chunk-LJLEOFW5.js → chunk-KOVGLJMF.js} +1 -1
- package/chunks/{chunk-NLDWAN5E.js → chunk-KPX5HEZT.js} +1 -1
- package/chunks/{chunk-HFQJYTZB.js → chunk-KRHTSRMS.js} +3 -3
- package/chunks/{chunk-4LITKLIX.js → chunk-LDYAEBUL.js} +40 -40
- package/chunks/{chunk-7ZXK4ANS.js → chunk-LIK66ZNQ.js} +6 -6
- package/chunks/{chunk-Y5KGWAF5.js → chunk-LQN6XWDX.js} +3 -3
- package/chunks/{chunk-3NT6BHLE.js → chunk-LWPSKRES.js} +5 -5
- package/chunks/{chunk-E554MWZ4.js → chunk-M4U4RIDA.js} +2 -2
- package/chunks/{chunk-7S2AYA27.js → chunk-M7ZHP7VU.js} +1 -1
- package/chunks/{chunk-GNF3RKRI.js → chunk-MYZICQ6P.js} +1 -1
- package/chunks/{chunk-PZPDQGRC.js → chunk-N343WURR.js} +5 -5
- package/chunks/{chunk-LZPTOCB6.js → chunk-N362SBSD.js} +6 -6
- package/chunks/{chunk-B3E57DII.js → chunk-NDRT2N3P.js} +1 -1
- package/chunks/{chunk-QYVHXOTK.js → chunk-NFNJSERR.js} +4 -4
- package/chunks/{chunk-5MGXHMC4.js → chunk-O56BQSMS.js} +1 -1
- package/chunks/{chunk-6GEEXVXS.js → chunk-O66QLTOQ.js} +5 -5
- package/chunks/{chunk-KNSZB75B.js → chunk-OPXI2LPT.js} +4 -4
- package/chunks/{chunk-SGO7T2LC.js → chunk-P2GXVRDK.js} +2 -2
- package/chunks/{chunk-7ONVZOIL.js → chunk-P37WPAXB.js} +1 -1
- package/chunks/{chunk-HU66EQY6.js → chunk-P7OMODYK.js} +1 -1
- package/chunks/{chunk-QG4PTE3V.js → chunk-PASZSKHI.js} +2 -2
- package/chunks/{chunk-U6NS36IA.js → chunk-PKIF4YYA.js} +1 -1
- package/chunks/{chunk-CQURIVUY.js → chunk-PPR66GNG.js} +3 -3
- package/chunks/{chunk-OMOKTMD5.js → chunk-PRZNHEG5.js} +5 -5
- package/chunks/{chunk-74XOBBIF.js → chunk-PUL422GV.js} +1 -1
- package/chunks/{chunk-TD372APW.js → chunk-PWDV5AMU.js} +4 -4
- package/chunks/{chunk-HYGNYNEB.js → chunk-PXRDPUM6.js} +1 -1
- package/chunks/{chunk-I5INQP6E.js → chunk-Q3Z74K26.js} +1 -1
- package/chunks/{chunk-RJBN74YD.js → chunk-Q4XOBX7I.js} +2 -2
- package/chunks/{chunk-V75J4GJ2.js → chunk-QCE3SPTV.js} +1 -1
- package/chunks/{chunk-KC5PN54N.js → chunk-QCYPQQ2L.js} +3 -3
- package/chunks/{chunk-73IWVPN4.js → chunk-QO7EA4CI.js} +39 -39
- package/chunks/{chunk-XOP6HC4S.js → chunk-R2W4OGBP.js} +3 -3
- package/chunks/{chunk-JOBNLOEW.js → chunk-RGEJESCO.js} +1 -1
- package/chunks/{chunk-LKU26DC5.js → chunk-RSIHHBWT.js} +2 -2
- package/chunks/{chunk-VT3TJFQR.js → chunk-SHADJNT6.js} +2 -2
- package/chunks/{chunk-IWYGXAQU.js → chunk-SYMYKLO4.js} +2 -0
- package/chunks/{chunk-VEJCE7UR.js → chunk-SZ26YNBZ.js} +1 -1
- package/chunks/{chunk-RNEMD6QU.js → chunk-T65U3AIV.js} +1 -1
- package/chunks/{chunk-HDCVSMR4.js → chunk-TBNE3YTN.js} +1 -1
- package/chunks/{chunk-GJFAQ4TA.js → chunk-TFAHTLY5.js} +5 -5
- package/chunks/{chunk-MZI6FDZT.js → chunk-THO5UG52.js} +1 -1
- package/chunks/{chunk-JX3AAXJY.js → chunk-TR2AGNCI.js} +1 -1
- package/chunks/{chunk-4QVZPLPW.js → chunk-TW633LAC.js} +1 -1
- package/chunks/{chunk-H5AU3734.js → chunk-UBWKBJKK.js} +1 -1
- package/chunks/{chunk-XC6BAHJR.js → chunk-UQXFYLTF.js} +1 -1
- package/chunks/{chunk-RGEOMZSI.js → chunk-UV5VCYRN.js} +10 -10
- package/chunks/{chunk-DQZYZDIL.js → chunk-UW4Q5E5P.js} +1 -1
- package/chunks/{chunk-GVWQRVLV.js → chunk-VEGSKFFR.js} +1 -1
- package/chunks/{chunk-FH534GWJ.js → chunk-VGPRZT2M.js} +1140 -991
- package/chunks/{chunk-ADHXMZ3K.js → chunk-VXEIBLIB.js} +1 -1
- package/chunks/{chunk-LH3T52KS.js → chunk-WPZXZXSA.js} +1 -1
- package/chunks/{chunk-OJSW65PQ.js → chunk-WXMXXBCC.js} +5 -2
- package/chunks/{chunk-FNALBCC7.js → chunk-WXTAP6NR.js} +1 -1
- package/chunks/{chunk-PCN4NLQX.js → chunk-XHXYPNK5.js} +2 -2
- package/chunks/{chunk-FJHDFJVI.js → chunk-XI7IX5QR.js} +1 -1
- package/chunks/{chunk-NIPNNHXO.js → chunk-XIQ7VRJT.js} +6 -6
- package/chunks/{chunk-NEHYQ3LT.js → chunk-XJ3KXFNA.js} +9 -9
- package/chunks/{chunk-6XUAD5G6.js → chunk-XY2UI5DC.js} +3 -3
- package/chunks/{chunk-S3ERVFHU.js → chunk-Y4ENGAFT.js} +5 -5
- package/chunks/{chunk-YBZG6WG2.js → chunk-YAUMOXEH.js} +2 -2
- package/chunks/{chunk-CJG6P7UJ.js → chunk-YCMQJ2GA.js} +7 -7
- package/chunks/{chunk-TZKJ3CYY.js → chunk-YDHYL34R.js} +1 -1
- package/chunks/{chunk-R4ECPR25.js → chunk-YIHZLW3P.js} +3 -3
- package/chunks/{chunk-JKOS3HZY.js → chunk-Z5T3GXGZ.js} +3 -3
- package/chunks/{chunk-63PQ6B3U.js → chunk-ZC4KJUW4.js} +1 -1
- package/chunks/{clip-audio-BJ42NS5B.js → clip-audio-5ZTGLERU.js} +1 -1
- package/chunks/{clip-image-FDBAIKGB.js → clip-image-HLDAHQPL.js} +1 -1
- package/chunks/{clip-video-6KVC2IFL.js → clip-video-NXRDICLV.js} +1 -1
- package/chunks/{codex-subagent-executor-Z7IEFWUH.js → codex-subagent-executor-3QBYJANY.js} +45 -45
- package/chunks/{config-AC45I6CL.js → config-72LNOXYX.js} +2 -2
- package/chunks/{container-execution-environment-O2I5SDUH.js → container-execution-environment-RKRAWXR3.js} +2 -2
- package/chunks/{contextCommand-ZTVVWBIV.js → contextCommand-XD5VM34S.js} +44 -44
- package/chunks/{convert-image-AYXBZ3TH.js → convert-image-4MPD5TZ5.js} +1 -1
- package/chunks/{core-runtime-UERTINTN.js → core-runtime-H5ARE4YW.js} +42 -42
- package/chunks/{create-sub-session-BJIHWC5U.js → create-sub-session-5XUSWWWA.js} +43 -43
- package/chunks/{create-sub-session-O237VOIB.js → create-sub-session-UEQ23VBD.js} +2 -2
- package/chunks/{cron-create-FFFFZH7M.js → cron-create-WPK3NNT4.js} +1 -1
- package/chunks/{cron-delete-XXYQNHGZ.js → cron-delete-6V6MDQ6Z.js} +1 -1
- package/chunks/{cron-list-GBJYKY27.js → cron-list-TPJEL73F.js} +1 -1
- package/chunks/{daemon-git-worktree-guard-5KO4CWOV.js → daemon-git-worktree-guard-UXVYSWGD.js} +42 -42
- package/chunks/{daemon-status-provider-77MFFWPG.js → daemon-status-provider-2GUHT46G.js} +50 -50
- package/chunks/{daemon-trust-policy-QS7LZ4DW.js → daemon-trust-policy-YH6C3EEL.js} +48 -48
- package/chunks/{daemon-trust-policy-monitor-AY7BR4O7.js → daemon-trust-policy-monitor-7PXJHNLO.js} +48 -48
- package/chunks/{deferred-core-runtime-OCMBUSB5.js → deferred-core-runtime-HPHPB3AS.js} +42 -42
- package/chunks/{display-image-U6HZKF3G.js → display-image-T6P5QTKW.js} +3 -3
- package/chunks/{downsample-audio-HSPMS25U.js → downsample-audio-IGOEKKHD.js} +1 -1
- package/chunks/{downsample-image-BFBX343I.js → downsample-image-FUPJVVNL.js} +1 -1
- package/chunks/{downscale-video-GQ5ZMJRX.js → downscale-video-XZNDYVK4.js} +1 -1
- package/chunks/{edit-TLQKC3LG.js → edit-UIFP2PGV.js} +28 -28
- package/chunks/{en-YJDPOSAW.js → en-WAWVEHRK.js} +41 -0
- package/chunks/{enter-worktree-MF4APJEN.js → enter-worktree-MBAQRK6N.js} +1 -1
- package/chunks/{enterPlanMode-76BPF6LH.js → enterPlanMode-PKYBAO3X.js} +26 -26
- package/chunks/{environment-AMUW2KX3.js → environment-3XRGCIX6.js} +44 -44
- package/chunks/{errors-KNTKHM6L.js → errors-Q2Q7NGQP.js} +44 -44
- package/chunks/{exec-J7LCEEPS.js → exec-36YD62RP.js} +1 -1
- package/chunks/{execution-sandbox-config-VE7OGRXY.js → execution-sandbox-config-KJBPOX4U.js} +6 -6
- package/chunks/{execution-tool-263V5JEK.js → execution-tool-Q2DAXXRD.js} +29 -29
- package/chunks/{execution-worker-JHOCJBIN.js → execution-worker-T2WTYSQ7.js} +36 -36
- package/chunks/{exit-worktree-DXSLV6EM.js → exit-worktree-AWEYW2UJ.js} +1 -1
- package/chunks/{exitPlanMode-K6B2JODR.js → exitPlanMode-BLJWPV4R.js} +26 -26
- package/chunks/{extract-audio-3LB2Q736.js → extract-audio-AYEXZ2KS.js} +1 -1
- package/chunks/{extract-keyframes-6ZP65BJF.js → extract-keyframes-UQVW7UH6.js} +1 -1
- package/chunks/{fast-path-FHLBTDKD.js → fast-path-X2GELFLG.js} +2 -2
- package/chunks/{glob-EBASENJF.js → glob-L6UEBSLC.js} +27 -27
- package/chunks/{goal-tools-QZECYB4S.js → goal-tools-ZND566V3.js} +26 -26
- package/chunks/{grep-NAW5AFAD.js → grep-5HGH34M6.js} +2 -2
- package/chunks/{handleAutoUpdate-XBTIE4FC.js → handleAutoUpdate-LGVBHACP.js} +45 -45
- package/chunks/{i18n-J7ANXY2X.js → i18n-OTJKGAV5.js} +43 -43
- package/chunks/{image-gen-Q4E7L7EV.js → image-gen-27Q5XGGZ.js} +1 -1
- package/chunks/{initializer-6INBSHTX.js → initializer-CUFHN7NP.js} +48 -48
- package/chunks/{installationInfo-VK32EWFR.js → installationInfo-FQLMYK6U.js} +42 -42
- package/chunks/{list-KEQUWD6M.js → list-L4CAJRDW.js} +50 -50
- package/chunks/{list-agents-A7UJ6VXZ.js → list-agents-T2EHYFCL.js} +1 -1
- package/chunks/{llm-CR5OP72L.js → llm-DRLY3EPV.js} +75 -75
- package/chunks/{llm-content-generator-K2DRDNXN.js → llm-content-generator-KM3RKFZX.js} +4 -4
- package/chunks/{loadedSettingsAdapter-PJPH4OCO.js → loadedSettingsAdapter-EKQLWXD2.js} +48 -48
- package/chunks/{local-execution-environment-QC5UHGMN.js → local-execution-environment-JC6OC65I.js} +36 -36
- package/chunks/{loggingContentGenerator-DJEMIYHV.js → loggingContentGenerator-RPWVHJXT.js} +27 -27
- package/chunks/{loop-wakeup-BKO62IMW.js → loop-wakeup-RC454BL4.js} +2 -2
- package/chunks/{ls-KIV7RGKE.js → ls-RZYAZPVC.js} +2 -2
- package/chunks/{lsp-TYQ3HXES.js → lsp-ZHD2YAJ5.js} +1 -1
- package/chunks/{managed-npm-update-3SDAWD4R.js → managed-npm-update-LU6KESGU.js} +42 -42
- package/chunks/{mcp-TYYYLGMV.js → mcp-C2I7NSP3.js} +48 -48
- package/chunks/{memory-side-query-BSVTSKCB.js → memory-side-query-DNXJZB7B.js} +2 -2
- package/chunks/{model-call-collection-FFR7ZNWD.js → model-call-collection-QAYYACHB.js} +3 -3
- package/chunks/{model-configuration-GUZIIGAH.js → model-configuration-RJ75ARJ7.js} +49 -49
- package/chunks/{modelConfigUtils-PKQ46KSJ.js → modelConfigUtils-O3FI7FOY.js} +44 -44
- package/chunks/{monitor-FNMBX5BB.js → monitor-YXVBM5LR.js} +26 -26
- package/chunks/{nonInteractiveCli-LATJ4A34.js → nonInteractiveCli-3IIAHJL7.js} +78 -78
- package/chunks/{nonInteractiveToolExecutor-YQOVVH6B.js → nonInteractiveToolExecutor-PXSMVOJQ.js} +27 -27
- package/chunks/{notebook-edit-BW4DJWZU.js → notebook-edit-CQYOYPLP.js} +27 -27
- package/chunks/{ocr-image-O6ECQNUE.js → ocr-image-UTGQDI5V.js} +3 -3
- package/chunks/{omni-YYVIGRGX.js → omni-PDUOKKBQ.js} +14 -14
- package/chunks/{openaiContentGenerator-FG3UZCTL.js → openaiContentGenerator-C3PXKTPV.js} +15 -15
- package/chunks/{openaiResponsesContentGenerator-XOT5DTAC.js → openaiResponsesContentGenerator-SLIXPGB7.js} +6 -6
- package/chunks/{processUtils-QBMARONE.js → processUtils-YYPY2SFA.js} +2 -2
- package/chunks/{prompt-terminal-ledger-VUCLICZG.js → prompt-terminal-ledger-UYCYWEM5.js} +43 -43
- package/chunks/{pt-TSNNSVF3.js → pt-753KIWB2.js} +41 -0
- package/chunks/{reactive-degrade-VPQZF55X.js → reactive-degrade-FUVEFE6Z.js} +10 -10
- package/chunks/{read-file-2O33TKD7.js → read-file-Y77OTEMB.js} +6 -6
- package/chunks/{read-mcp-resource-TYAD3TBP.js → read-mcp-resource-4NSQ2WFB.js} +1 -1
- package/chunks/{recall-media-memory-tool-WIFEB2OG.js → recall-media-memory-tool-7NAM2ZGH.js} +2 -2
- package/chunks/{record-artifact-IVE6QT4D.js → record-artifact-LAQGMYDN.js} +2 -2
- package/chunks/{record-source-ANENC5K7.js → record-source-NRW6TYWW.js} +6 -6
- package/chunks/{report-findings-W75NCFXY.js → report-findings-OVUUKGUX.js} +3 -3
- package/chunks/{request-shutdown-LRWCJOEG.js → request-shutdown-MXKAXR2D.js} +5 -5
- package/chunks/{resumeHistoryUtils-PLGVAEHT.js → resumeHistoryUtils-5O5SRG7J.js} +46 -46
- package/chunks/{ripGrep-U4HZCL4K.js → ripGrep-ZZFRUTTO.js} +7 -7
- package/chunks/{run-o1-code-serve-B5XNSRQI.js → run-o1-code-serve-37AU45X3.js} +32 -32
- package/chunks/{runtime-shell-policy-R4LXGDDO.js → runtime-shell-policy-6WE6FYXV.js} +1 -1
- package/chunks/{sandboxConfig-6LJHLGOT.js → sandboxConfig-JIAWD4WT.js} +42 -42
- package/chunks/{scheduled-tasks-DBHHUK3R.js → scheduled-tasks-I6FYEPHY.js} +48 -48
- package/chunks/{scheduler-XHIPT4EI.js → scheduler-A234SXNR.js} +44 -44
- package/chunks/{send-message-XY7EC52V.js → send-message-KFUNQQFA.js} +5 -5
- package/chunks/{serve-6MCT2M2A.js → serve-DQ7KR6A3.js} +48 -48
- package/chunks/{server-B3KEPLVK.js → server-5OPR2KC5.js} +79 -79
- package/chunks/{session-XDZM36XY.js → session-3T2KLRRJ.js} +79 -79
- package/chunks/{session-DTLH45KY.js → session-NK4B45E6.js} +1 -1
- package/chunks/{session-attachments-root-DUCWV5SV.js → session-attachments-root-DZDFKMRO.js} +42 -42
- package/chunks/{session-pr-refresh-6XZHJOHJ.js → session-pr-refresh-PO26A3TW.js} +47 -47
- package/chunks/{settings-EIBLUO2U.js → settings-AYOSYUSY.js} +47 -47
- package/chunks/{shell-7U5KEVDP.js → shell-LM4ZECHQ.js} +26 -26
- package/chunks/{skill-RQNSH7FP.js → skill-5GTMZLHX.js} +8 -8
- package/chunks/{skill-settings-RLPBS65V.js → skill-settings-TGUCUPFY.js} +48 -48
- package/chunks/{spawnChannel-ORMDVKIV.js → spawnChannel-RZEUK5CK.js} +44 -44
- package/chunks/{standalone-update-EFWC3EXO.js → standalone-update-NFFBVU35.js} +44 -44
- package/chunks/{startInteractiveUI-XPJQ6N4R.js → startInteractiveUI-YG3LWCTV.js} +1453 -687
- package/chunks/{syntheticOutput-6NR7LSGN.js → syntheticOutput-KZMNOKOG.js} +2 -2
- package/chunks/{task-create-2BHPJUF3.js → task-create-EHGTZMSD.js} +6 -6
- package/chunks/{task-list-6LPOL5UB.js → task-list-ABYOHJDS.js} +1 -1
- package/chunks/{task-stop-VGLKJLBG.js → task-stop-6L7G4RYB.js} +2 -2
- package/chunks/{task-update-NGKKBFU5.js → task-update-LBXI5OVE.js} +6 -6
- package/chunks/{team-create-NQUT63NA.js → team-create-ZTHGVM55.js} +26 -26
- package/chunks/{team-delete-WBSKRFVF.js → team-delete-RL37ORM3.js} +1 -1
- package/chunks/{team-plan-approval-ZICR7PLR.js → team-plan-approval-XQM5QHQV.js} +26 -26
- package/chunks/{terminal-image-renderer-KNBEKIBU.js → terminal-image-renderer-4GM5REOR.js} +42 -42
- package/chunks/{theme-manager-ELLW2WSH.js → theme-manager-7PQ67ZJ6.js} +42 -42
- package/chunks/{todoWrite-AX43SXLU.js → todoWrite-ARTSGNNA.js} +1 -1
- package/chunks/{tool-call-GVZHLCX6.js → tool-call-V225426S.js} +6 -6
- package/chunks/{tool-result-media-GVAXAMIM.js → tool-result-media-IM7ZZGPN.js} +14 -14
- package/chunks/{tool-search-5YDYOBEY.js → tool-search-IS4DQX6M.js} +10 -10
- package/chunks/{total-session-admission-5J6FUOHB.js → total-session-admission-OCMJER6L.js} +45 -45
- package/chunks/{transcribe-audio-R6YC24KU.js → transcribe-audio-WOITX4I2.js} +2 -2
- package/chunks/{trustedFolders-L4OBHBMG.js → trustedFolders-CFYQFHI4.js} +43 -43
- package/chunks/{understand-video-segments-2WK4T6PO.js → understand-video-segments-YFCIFF7P.js} +3 -3
- package/chunks/{update-relaunch-OLWQOXJD.js → update-relaunch-UZRGARRI.js} +5 -5
- package/chunks/{updateCheck-P4256JN4.js → updateCheck-XMIPWEAF.js} +44 -44
- package/chunks/{upload-config-W6QM7O7M.js → upload-config-V6A4FZP4.js} +6 -6
- package/chunks/{useAutoAcceptIndicator-GAV5FOVS.js → useAutoAcceptIndicator-TNSI5JZ6.js} +50 -50
- package/chunks/{validateNonInterActiveAuth-JSAM5DKT.js → validateNonInterActiveAuth-X3DNLPAQ.js} +75 -75
- package/chunks/{version-J4K7YJEP.js → version-S2HOZZWG.js} +1 -1
- package/chunks/{web-fetch-KU4CTSQA.js → web-fetch-I4EYZQHF.js} +6 -6
- package/chunks/{web-search-6EC47GMF.js → web-search-3QMHJZHC.js} +8 -8
- package/chunks/{workflow-4LNE5CRK.js → workflow-QKVFIOSW.js} +27 -27
- package/chunks/{workspace-providers-status-5X5EEQU4.js → workspace-providers-status-OK37NIGF.js} +54 -54
- package/chunks/{workspace-registration-store-B7RGZ7XC.js → workspace-registration-store-E4HOHHEY.js} +1 -1
- package/chunks/{workspace-registry-DGFL345F.js → workspace-registry-X4DOIOKQ.js} +45 -45
- package/chunks/{workspace-runtime-coordinator-JOUD45MU.js → workspace-runtime-coordinator-S7VOLP7R.js} +46 -46
- package/chunks/{workspace-service-MVNGRTAX.js → workspace-service-72UZ465I.js} +53 -53
- package/chunks/{workspace-skills-status-54YB4YNO.js → workspace-skills-status-HIGZR2VJ.js} +51 -51
- package/chunks/{workspace-trust-reconciler-XWTFKN7T.js → workspace-trust-reconciler-CL3KMM3N.js} +51 -51
- package/chunks/{write-file-PAA35JB5.js → write-file-YXOVF7VS.js} +29 -29
- package/chunks/{zoom-image-7UF6I5FM.js → zoom-image-TVVCQIUM.js} +6 -6
- package/cli.js +12 -12
- package/execution-worker.js +1 -1
- package/export-transcript-document.js +3 -3
- package/locales/en.js +48 -0
- package/locales/pt.js +48 -0
- package/package.json +2 -2
- package/release-notes.json +6 -0
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DaskAjYa.js → abnfDiagram-VCTEODGH-BHkxXw31.js} +1 -1
- package/web-shell/assets/{arc-CeF5eQNa.js → arc-BxDMC9VR.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-0cJpQiMQ.js → architectureDiagram-5GKGNRK7-D-Z-7c7-.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-ZRZ9t0GN.js → blockDiagram-NRAW4CY4-WF6lVAAv.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-wIoBOLjK.js → c4Diagram-UCG6FXSJ-QfuHuNrF.js} +1 -1
- package/web-shell/assets/channel-Jc8sAjXl.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-CRe2K3To.js → chunk-2Q5K7J3B-DzYleJ6u.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-BG67yUA9.js → chunk-5VM5RSS4-C3EiPOCs.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-B1d6n5eI.js → chunk-F27PBJKO-GknYYisN.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-CIVn7PDx.js → chunk-G27WJ6UU-DRvn2m5Q.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-BUCoEgYK.js → chunk-JWPE2WC7-Dvjzh5Eo.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-BEcferer.js → chunk-LCL6LL3I-D3vU9Mn_.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-CpdZE7zI.js → chunk-POPQ4Y6H-BgtuwENg.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-B9JFFHOW.js → chunk-SVP7TREG-Bttyyzbd.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-D7hHjiYq.js → chunk-XXDRQBXY-COo5CguA.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-nRq5wacL.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-nRq5wacL.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-B3CuOihi.js → cose-bilkent-JH36ORCC-DnWXhUAO.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-BL-7Y9zJ.js → cynefin-OW5HDTMX-8ZCxR8Je.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-B4B-aYh1.js → cynefinDiagram-5FMLGOSQ-kZPFiIZP.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-DeLGsLtP.js → dagre-3AP2YEHR-CGh6F-gj.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-CD1ow9s5.js → diagram-S7CK7UJ4-CxKuiWHp.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-BLXrwSIS.js → diagram-UQ7AKVKN-gajXkHeF.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-C_4s_9Gq.js → diagram-VSXAHHWV-T6pnpmJZ.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-CDfysUiq.js → diagram-VX7I27RA-B9ckIvrZ.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-B_nOMJNo.js → diagram-Z3DM3KII-BpenUGiF.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-Bq9OS-2B.js → ebnfDiagram-PWID7BFC-DXKq9JCk.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-DdYlHfr0.js → erDiagram-SSCWMZ5O-CauiDq96.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-BEMFnzjR.js → flowDiagram-A5DVABFB-Cl0QzUn4.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CUnEB8YA.js → ganttDiagram-EL5Y4UJY-DA7dTfru.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-BZ3xFWS5.js → gitGraphDiagram-WWUBYQGX-9gaEuKuR.js} +1 -1
- package/web-shell/assets/{index-X14MyJWi.js → index-B6Z-ZPI-.js} +5 -5
- package/web-shell/assets/{index-CQ5O0GyT.js → index-wuoxV_5z.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-DdBkiCU5.js → infoDiagram-RXCK75RN-n3Kb6fwf.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CQwdIl4G.js → ishikawaDiagram-5VMMS53U-Dfv5zN3j.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-CHthIOzQ.js → journeyDiagram-EYS64GPL-B08W7lko.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-wsQvYKZn.js → kanban-definition-3QL26DDD-BukEczk5.js} +1 -1
- package/web-shell/assets/{layout-BizdV6jP.js → layout-D4EhlXcx.js} +1 -1
- package/web-shell/assets/{linear-BjxyKDV-.js → linear-C19v39fE.js} +1 -1
- package/web-shell/assets/{mermaid.core-C5zbhLSB.js → mermaid.core-BZbXiwUJ.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-B1fXC6cz.js → mindmap-definition-FBJOCRG2-DCZZVWM8.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-BWkVT1h_.js → pegDiagram-XKGWAZYB-CR0NaUZU.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-mXFpa0SY.js → pieDiagram-E7YTZNPT-BosTtKl6.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CgURyFxf.js → quadrantDiagram-AXDQQJYC-DybxMpkV.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-BKWdEmSU.js → railroadDiagram-O6MQD6OU-DOUs7Er5.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-DQfXvBnO.js → requirementDiagram-EFPCY7ZU-NA0GzEca.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C2NHJ-vh.js → sankeyDiagram-P5KCCOFB-DO10w9NW.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BMY1NnO-.js → sequenceDiagram-WJ2MYXX4-DJTqs15w.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-H_G6QbIF.js → sizeCapture-X5ZJPWSS-D3E7rt6e.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BpXGLI-f.js → stateDiagram-HBIQ2CUA-65jdEgV4.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-Ce4MCIHU.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-CK7vT1lz.js → swimlanes-XN3QIQJK-B1Rvb0SG.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DnoCF_Z1.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-hlwSiLfp.js → timeline-definition-24CTP7MA-BrK3c4-F.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-D6np4JGg.js → vennDiagram-4TSXK5OY-DRsUph9j.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CciJIRt_.js → wardleyDiagram-VM6X3IG4-C1UUQE5C.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-KPEsUSHH.js → xychartDiagram-S5SC5T6Z-BgUAjHM3.js} +1 -1
- package/web-shell/index.html +1 -1
- package/web-shell/sw.js +1 -1
- package/web-shell/assets/channel-Ys6W9vX4.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-BlO3Djxk.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-BlO3Djxk.js +0 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D_O73PF_.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6yu1hgd.js +0 -8
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
TUI_CHAT_RECORDING_FAILURE_MESSAGE,
|
|
8
8
|
reportChatRecordingFailureToAdapter
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-FB7XHMPT.js";
|
|
10
10
|
import {
|
|
11
11
|
StreamJsonOutputAdapter
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7WR2OWSW.js";
|
|
13
13
|
import {
|
|
14
14
|
startPostRenderPrefetches
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-UV5VCYRN.js";
|
|
16
16
|
import {
|
|
17
17
|
AboutBox,
|
|
18
18
|
BaseSelectionList,
|
|
@@ -114,7 +114,7 @@ import {
|
|
|
114
114
|
useUIActions,
|
|
115
115
|
useUIState,
|
|
116
116
|
useVirtualViewport
|
|
117
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-DHERIROV.js";
|
|
118
118
|
import {
|
|
119
119
|
CATEGORY_LABELS,
|
|
120
120
|
ICON,
|
|
@@ -136,25 +136,25 @@ import {
|
|
|
136
136
|
showsToolLabel,
|
|
137
137
|
useStreamingContext,
|
|
138
138
|
waitForGoalRuntime
|
|
139
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-KGYXJDO6.js";
|
|
140
140
|
import {
|
|
141
141
|
stopAndGetCapturedInput
|
|
142
142
|
} from "./chunk-VFLUNXD6.js";
|
|
143
143
|
import {
|
|
144
144
|
useAutoAcceptIndicator
|
|
145
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-P2GXVRDK.js";
|
|
146
146
|
import {
|
|
147
147
|
KeypressProvider,
|
|
148
148
|
useFocus,
|
|
149
149
|
useKeypress,
|
|
150
150
|
useKeypressContext
|
|
151
|
-
} from "./chunk-
|
|
151
|
+
} from "./chunk-JMM2J43E.js";
|
|
152
152
|
import {
|
|
153
153
|
MAX_ACCEPTED_BACKLOG,
|
|
154
154
|
PeerMessaging,
|
|
155
155
|
classifyApiError,
|
|
156
156
|
fireSessionDeleteHook
|
|
157
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-O56BQSMS.js";
|
|
158
158
|
import {
|
|
159
159
|
MAX_SUGGESTIONS_TO_SHOW,
|
|
160
160
|
SESSION_MENTION_PREFIX,
|
|
@@ -167,7 +167,7 @@ import {
|
|
|
167
167
|
normalizeDescription,
|
|
168
168
|
normalizePartList,
|
|
169
169
|
resolveAtCommandQuery
|
|
170
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-ALDQ36W4.js";
|
|
171
171
|
import {
|
|
172
172
|
BuiltinCommandLoader,
|
|
173
173
|
BundledSkillLoader,
|
|
@@ -224,7 +224,7 @@ import {
|
|
|
224
224
|
resolveOutputStyleChoice,
|
|
225
225
|
serializeUserPromptExpansionPrompt,
|
|
226
226
|
supportsMatchers
|
|
227
|
-
} from "./chunk-
|
|
227
|
+
} from "./chunk-LDYAEBUL.js";
|
|
228
228
|
import {
|
|
229
229
|
EXTENSION_RELOAD_FAILED_REASON,
|
|
230
230
|
ExtensionRefreshState,
|
|
@@ -232,7 +232,7 @@ import {
|
|
|
232
232
|
cleanupReviewWorktreeLeases,
|
|
233
233
|
loadHierarchicalMemory,
|
|
234
234
|
openRemoteSession
|
|
235
|
-
} from "./chunk-
|
|
235
|
+
} from "./chunk-QO7EA4CI.js";
|
|
236
236
|
import {
|
|
237
237
|
BRAND,
|
|
238
238
|
MAX_EXTENSION_OWNER_LABEL_WIDTH,
|
|
@@ -242,14 +242,14 @@ import {
|
|
|
242
242
|
getEffectiveSupportedModes,
|
|
243
243
|
repoDocUrl,
|
|
244
244
|
skillOriginLabel
|
|
245
|
-
} from "./chunk-
|
|
245
|
+
} from "./chunk-PWDV5AMU.js";
|
|
246
246
|
import {
|
|
247
247
|
contextUsageLabel,
|
|
248
248
|
formatDuration,
|
|
249
249
|
formatPercentageUsed,
|
|
250
250
|
formatRelativeTime,
|
|
251
251
|
formatTokenCount
|
|
252
|
-
} from "./chunk-
|
|
252
|
+
} from "./chunk-PUL422GV.js";
|
|
253
253
|
import {
|
|
254
254
|
disableKittyProtocol,
|
|
255
255
|
isKittyProtocolEnabled,
|
|
@@ -268,12 +268,12 @@ import {
|
|
|
268
268
|
oscKittyNotify,
|
|
269
269
|
saveClipboardImage,
|
|
270
270
|
writeOsc52
|
|
271
|
-
} from "./chunk-
|
|
271
|
+
} from "./chunk-TBNE3YTN.js";
|
|
272
272
|
import {
|
|
273
273
|
sanitizeDisplayText
|
|
274
|
-
} from "./chunk-
|
|
274
|
+
} from "./chunk-3GJ4USZZ.js";
|
|
275
275
|
import "./chunk-AHKE26WU.js";
|
|
276
|
-
import "./chunk-
|
|
276
|
+
import "./chunk-QCYPQQ2L.js";
|
|
277
277
|
import "./chunk-UMIHM32I.js";
|
|
278
278
|
import {
|
|
279
279
|
TOP_FRAME,
|
|
@@ -308,7 +308,7 @@ import {
|
|
|
308
308
|
import {
|
|
309
309
|
require_react
|
|
310
310
|
} from "./chunk-2KK65OQ6.js";
|
|
311
|
-
import "./chunk-
|
|
311
|
+
import "./chunk-3CWK2CPF.js";
|
|
312
312
|
import "./chunk-G4YDGSSX.js";
|
|
313
313
|
import {
|
|
314
314
|
MAX_INLINE_IMAGES_PER_ITEM,
|
|
@@ -317,11 +317,11 @@ import {
|
|
|
317
317
|
} from "./chunk-KIN34HCU.js";
|
|
318
318
|
import {
|
|
319
319
|
setUpdateHandler
|
|
320
|
-
} from "./chunk-
|
|
320
|
+
} from "./chunk-RSIHHBWT.js";
|
|
321
321
|
import {
|
|
322
322
|
isHistoryItemVisibleAfterRestore
|
|
323
323
|
} from "./chunk-64WBFX5X.js";
|
|
324
|
-
import "./chunk-
|
|
324
|
+
import "./chunk-IPWNPFIR.js";
|
|
325
325
|
import "./chunk-7DQWDZUQ.js";
|
|
326
326
|
import "./chunk-KD7GIK2D.js";
|
|
327
327
|
import {
|
|
@@ -332,27 +332,27 @@ import {
|
|
|
332
332
|
import {
|
|
333
333
|
requestConsentInteractive,
|
|
334
334
|
requestConsentOrFail
|
|
335
|
-
} from "./chunk-
|
|
335
|
+
} from "./chunk-HFIGGSUW.js";
|
|
336
336
|
import "./chunk-XZ3MQL2U.js";
|
|
337
337
|
import {
|
|
338
338
|
getErrorMessage as getErrorMessage2
|
|
339
|
-
} from "./chunk-
|
|
339
|
+
} from "./chunk-JZZN42BL.js";
|
|
340
340
|
import {
|
|
341
341
|
relaunchApp
|
|
342
|
-
} from "./chunk-
|
|
342
|
+
} from "./chunk-PXRDPUM6.js";
|
|
343
343
|
import "./chunk-XG36NMOI.js";
|
|
344
344
|
import "./chunk-SPLQKNEP.js";
|
|
345
|
-
import "./chunk-
|
|
346
|
-
import "./chunk-
|
|
345
|
+
import "./chunk-ITCYJNMA.js";
|
|
346
|
+
import "./chunk-YIHZLW3P.js";
|
|
347
347
|
import "./chunk-LXUIOY3M.js";
|
|
348
348
|
import {
|
|
349
349
|
openDashScopeAsrRealtimeStream,
|
|
350
350
|
openVoiceStream,
|
|
351
351
|
openVoiceStreamWithRetry
|
|
352
352
|
} from "./chunk-MTSHGY6F.js";
|
|
353
|
-
import "./chunk-
|
|
353
|
+
import "./chunk-DYGCZZA5.js";
|
|
354
354
|
import "./chunk-LL7XM3LM.js";
|
|
355
|
-
import "./chunk-
|
|
355
|
+
import "./chunk-DAP4EYT4.js";
|
|
356
356
|
import {
|
|
357
357
|
cpLen,
|
|
358
358
|
cpSlice,
|
|
@@ -379,44 +379,44 @@ import {
|
|
|
379
379
|
isStreamingVoiceModel,
|
|
380
380
|
resolveVoiceStreamConfig,
|
|
381
381
|
transcribeVoiceAudio
|
|
382
|
-
} from "./chunk-
|
|
382
|
+
} from "./chunk-B7UDYBFE.js";
|
|
383
383
|
import {
|
|
384
384
|
formatUnsupportedVoiceModelMessage,
|
|
385
385
|
isSelectableVoiceModel
|
|
386
|
-
} from "./chunk-
|
|
386
|
+
} from "./chunk-P37WPAXB.js";
|
|
387
387
|
import "./chunk-TESN7CJW.js";
|
|
388
388
|
import {
|
|
389
389
|
REASONING_EFFORT_DEFAULT,
|
|
390
390
|
getReasoningEffortsForConfig,
|
|
391
391
|
getReasoningForDisplay
|
|
392
|
-
} from "./chunk-
|
|
392
|
+
} from "./chunk-AD7SSY2F.js";
|
|
393
393
|
import {
|
|
394
394
|
buildHigherDisabled,
|
|
395
395
|
computeWorkspaceSkillListUpdates,
|
|
396
396
|
skillSettingStrings
|
|
397
|
-
} from "./chunk-
|
|
397
|
+
} from "./chunk-Q3Z74K26.js";
|
|
398
398
|
import "./chunk-W2R46PFD.js";
|
|
399
399
|
import {
|
|
400
400
|
createLoadedSettingsAdapter,
|
|
401
401
|
getRawModelProviders
|
|
402
|
-
} from "./chunk-
|
|
402
|
+
} from "./chunk-NFNJSERR.js";
|
|
403
403
|
import {
|
|
404
404
|
getExtendedSystemInfo
|
|
405
|
-
} from "./chunk-
|
|
406
|
-
import "./chunk-
|
|
405
|
+
} from "./chunk-XY2UI5DC.js";
|
|
406
|
+
import "./chunk-XHXYPNK5.js";
|
|
407
407
|
import "./chunk-QTAUA6ED.js";
|
|
408
408
|
import "./chunk-LPCPB2S5.js";
|
|
409
409
|
import "./chunk-LD2T7YET.js";
|
|
410
410
|
import "./chunk-O7MSLRFZ.js";
|
|
411
411
|
import "./chunk-W3YES77O.js";
|
|
412
|
-
import "./chunk-
|
|
413
|
-
import "./chunk-
|
|
412
|
+
import "./chunk-T65U3AIV.js";
|
|
413
|
+
import "./chunk-2G3AZNJ5.js";
|
|
414
414
|
import {
|
|
415
415
|
isInlineModelOverrideAllowed
|
|
416
|
-
} from "./chunk-
|
|
416
|
+
} from "./chunk-5SM3EYY4.js";
|
|
417
417
|
import {
|
|
418
418
|
loadMcpApprovals
|
|
419
|
-
} from "./chunk-
|
|
419
|
+
} from "./chunk-XIQ7VRJT.js";
|
|
420
420
|
import {
|
|
421
421
|
CORRUPTED_SUFFIX,
|
|
422
422
|
SettingScope,
|
|
@@ -439,7 +439,7 @@ import {
|
|
|
439
439
|
settingExistsInScope,
|
|
440
440
|
validateSettingValue,
|
|
441
441
|
writeOutputLanguageAndRegisterPath
|
|
442
|
-
} from "./chunk-
|
|
442
|
+
} from "./chunk-N343WURR.js";
|
|
443
443
|
import {
|
|
444
444
|
LOGO_ANIMATIONS,
|
|
445
445
|
LOGO_FRAME_MS,
|
|
@@ -449,16 +449,16 @@ import {
|
|
|
449
449
|
pickLogoAnimation,
|
|
450
450
|
renderLogoRows,
|
|
451
451
|
restFrame
|
|
452
|
-
} from "./chunk-
|
|
452
|
+
} from "./chunk-PASZSKHI.js";
|
|
453
453
|
import "./chunk-EDRKBK4B.js";
|
|
454
454
|
import {
|
|
455
455
|
getCurrentLanguage,
|
|
456
456
|
localizeToolDisplayName,
|
|
457
457
|
t,
|
|
458
458
|
ta
|
|
459
|
-
} from "./chunk-
|
|
459
|
+
} from "./chunk-6BOPO2CB.js";
|
|
460
460
|
import "./chunk-Q2V34OV7.js";
|
|
461
|
-
import "./chunk-
|
|
461
|
+
import "./chunk-M4U4RIDA.js";
|
|
462
462
|
import {
|
|
463
463
|
require_semver
|
|
464
464
|
} from "./chunk-U4T5CWGD.js";
|
|
@@ -471,14 +471,14 @@ import "./chunk-FMWE3YMM.js";
|
|
|
471
471
|
import {
|
|
472
472
|
formatVersionLabel,
|
|
473
473
|
getCliVersion
|
|
474
|
-
} from "./chunk-
|
|
474
|
+
} from "./chunk-FC4ZD65F.js";
|
|
475
475
|
import "./chunk-Y75AMWDB.js";
|
|
476
476
|
import "./chunk-FRITN2AG.js";
|
|
477
477
|
import "./chunk-F4S6U26O.js";
|
|
478
478
|
import {
|
|
479
479
|
isWorkspaceTrusted,
|
|
480
480
|
loadTrustedFolders
|
|
481
|
-
} from "./chunk-
|
|
481
|
+
} from "./chunk-TW633LAC.js";
|
|
482
482
|
import "./chunk-BHXBXELA.js";
|
|
483
483
|
import "./chunk-MXCWSDSC.js";
|
|
484
484
|
import {
|
|
@@ -522,13 +522,13 @@ import {
|
|
|
522
522
|
subagentGenerator,
|
|
523
523
|
supportsHyperlinks,
|
|
524
524
|
wrapForMultiplexer
|
|
525
|
-
} from "./chunk-
|
|
525
|
+
} from "./chunk-ACYDX6SG.js";
|
|
526
526
|
import "./chunk-MYMATZAY.js";
|
|
527
527
|
import "./chunk-6IFQXZTP.js";
|
|
528
528
|
import {
|
|
529
529
|
require_strip_json_comments
|
|
530
530
|
} from "./chunk-YCZIOHKD.js";
|
|
531
|
-
import "./chunk-
|
|
531
|
+
import "./chunk-BNJ3IJB7.js";
|
|
532
532
|
import {
|
|
533
533
|
clearWorktreeSession,
|
|
534
534
|
isSessionRuntimeActive,
|
|
@@ -543,12 +543,12 @@ import {
|
|
|
543
543
|
describeHoldCause,
|
|
544
544
|
parseHeldExpiry
|
|
545
545
|
} from "./chunk-AEGEUWVC.js";
|
|
546
|
-
import "./chunk-
|
|
547
|
-
import "./chunk-
|
|
548
|
-
import "./chunk-
|
|
549
|
-
import "./chunk-
|
|
550
|
-
import "./chunk-
|
|
551
|
-
import "./chunk-
|
|
546
|
+
import "./chunk-ESJUUVTV.js";
|
|
547
|
+
import "./chunk-SHADJNT6.js";
|
|
548
|
+
import "./chunk-Y4ENGAFT.js";
|
|
549
|
+
import "./chunk-32722SNN.js";
|
|
550
|
+
import "./chunk-N362SBSD.js";
|
|
551
|
+
import "./chunk-2D2DZP65.js";
|
|
552
552
|
import "./chunk-ZMZRVR62.js";
|
|
553
553
|
import "./chunk-NWCDFCWK.js";
|
|
554
554
|
import {
|
|
@@ -556,17 +556,17 @@ import {
|
|
|
556
556
|
isToolHiddenBehindToolSearch,
|
|
557
557
|
resolveWorkflowAuthoringSurface,
|
|
558
558
|
toolSearchBridgeSentence
|
|
559
|
-
} from "./chunk-
|
|
560
|
-
import "./chunk-
|
|
561
|
-
import "./chunk-
|
|
562
|
-
import "./chunk-
|
|
563
|
-
import "./chunk-
|
|
559
|
+
} from "./chunk-CCDVLPJU.js";
|
|
560
|
+
import "./chunk-AGTM6524.js";
|
|
561
|
+
import "./chunk-O66QLTOQ.js";
|
|
562
|
+
import "./chunk-UW4Q5E5P.js";
|
|
563
|
+
import "./chunk-7FKHLWEJ.js";
|
|
564
564
|
import "./chunk-F3FKDGHN.js";
|
|
565
|
-
import "./chunk-
|
|
565
|
+
import "./chunk-Q4XOBX7I.js";
|
|
566
566
|
import "./chunk-UBWL27PO.js";
|
|
567
567
|
import "./chunk-DM6W2QYB.js";
|
|
568
568
|
import "./chunk-UAACCQBD.js";
|
|
569
|
-
import "./chunk-
|
|
569
|
+
import "./chunk-UBWKBJKK.js";
|
|
570
570
|
import {
|
|
571
571
|
ConditionalRulesRegistry,
|
|
572
572
|
CoreToolScheduler,
|
|
@@ -628,13 +628,13 @@ import {
|
|
|
628
628
|
saveWorkflowScript,
|
|
629
629
|
updateSetting,
|
|
630
630
|
validateWorkflowName
|
|
631
|
-
} from "./chunk-
|
|
632
|
-
import "./chunk-
|
|
631
|
+
} from "./chunk-VGPRZT2M.js";
|
|
632
|
+
import "./chunk-WXTAP6NR.js";
|
|
633
633
|
import "./chunk-BZOAEOYF.js";
|
|
634
634
|
import "./chunk-BIDB75DA.js";
|
|
635
635
|
import "./chunk-GYGA6V6B.js";
|
|
636
636
|
import "./chunk-EYWIFUPJ.js";
|
|
637
|
-
import "./chunk-
|
|
637
|
+
import "./chunk-THO5UG52.js";
|
|
638
638
|
import "./chunk-7H3GWNGJ.js";
|
|
639
639
|
import "./chunk-X427DWFD.js";
|
|
640
640
|
import {
|
|
@@ -670,13 +670,13 @@ import {
|
|
|
670
670
|
elapsedActiveTime,
|
|
671
671
|
goalPauseReasonForFailure,
|
|
672
672
|
goalRequiresExactPermit
|
|
673
|
-
} from "./chunk-
|
|
673
|
+
} from "./chunk-RGEJESCO.js";
|
|
674
674
|
import "./chunk-HHG3UCD5.js";
|
|
675
675
|
import "./chunk-TC7UXK4M.js";
|
|
676
676
|
import "./chunk-DS3COGEF.js";
|
|
677
677
|
import {
|
|
678
678
|
resolveModelId
|
|
679
|
-
} from "./chunk-
|
|
679
|
+
} from "./chunk-TR2AGNCI.js";
|
|
680
680
|
import {
|
|
681
681
|
glob
|
|
682
682
|
} from "./chunk-4ESI3MQ5.js";
|
|
@@ -684,13 +684,13 @@ import "./chunk-SYMKXR42.js";
|
|
|
684
684
|
import "./chunk-JOBZWTVK.js";
|
|
685
685
|
import "./chunk-CDYMT4OZ.js";
|
|
686
686
|
import "./chunk-HPQNI3OQ.js";
|
|
687
|
-
import "./chunk-
|
|
688
|
-
import "./chunk-
|
|
687
|
+
import "./chunk-VXEIBLIB.js";
|
|
688
|
+
import "./chunk-MYZICQ6P.js";
|
|
689
689
|
import "./chunk-CI2ZHR5C.js";
|
|
690
690
|
import {
|
|
691
691
|
ShellExecutionService,
|
|
692
692
|
isSignalTermination
|
|
693
|
-
} from "./chunk-
|
|
693
|
+
} from "./chunk-KICY6OQ7.js";
|
|
694
694
|
import {
|
|
695
695
|
stripAnsi
|
|
696
696
|
} from "./chunk-WU3R2YUE.js";
|
|
@@ -707,22 +707,22 @@ import {
|
|
|
707
707
|
escapeShellArg
|
|
708
708
|
} from "./chunk-SBM747MY.js";
|
|
709
709
|
import "./chunk-5QSLFAMR.js";
|
|
710
|
-
import "./chunk-
|
|
710
|
+
import "./chunk-UQXFYLTF.js";
|
|
711
711
|
import "./chunk-4LCUE7BN.js";
|
|
712
712
|
import "./chunk-RIN7SNJN.js";
|
|
713
|
-
import "./chunk-
|
|
713
|
+
import "./chunk-VEGSKFFR.js";
|
|
714
714
|
import "./chunk-4J6KRUQB.js";
|
|
715
|
-
import "./chunk-
|
|
715
|
+
import "./chunk-JEUH2DSW.js";
|
|
716
716
|
import {
|
|
717
717
|
parseRule
|
|
718
|
-
} from "./chunk-
|
|
718
|
+
} from "./chunk-WXMXXBCC.js";
|
|
719
719
|
import {
|
|
720
720
|
APPROVAL_MODES
|
|
721
721
|
} from "./chunk-KQAVEXYD.js";
|
|
722
722
|
import "./chunk-WZCKDUBO.js";
|
|
723
723
|
import {
|
|
724
724
|
BUILT_IN_OUTPUT_STYLES
|
|
725
|
-
} from "./chunk-
|
|
725
|
+
} from "./chunk-M7ZHP7VU.js";
|
|
726
726
|
import {
|
|
727
727
|
NO_EXEC_CONFIG,
|
|
728
728
|
getGitBranch
|
|
@@ -732,17 +732,17 @@ import "./chunk-5UXWOCCO.js";
|
|
|
732
732
|
import "./chunk-ETGSZYWP.js";
|
|
733
733
|
import "./chunk-RCZHQZJJ.js";
|
|
734
734
|
import "./chunk-6YS3YH6O.js";
|
|
735
|
-
import "./chunk-
|
|
735
|
+
import "./chunk-6CW53FOJ.js";
|
|
736
736
|
import "./chunk-HX6AICAX.js";
|
|
737
|
-
import "./chunk-
|
|
737
|
+
import "./chunk-PPR66GNG.js";
|
|
738
738
|
import {
|
|
739
739
|
runOutsideAgentContext
|
|
740
|
-
} from "./chunk-
|
|
740
|
+
} from "./chunk-QCE3SPTV.js";
|
|
741
741
|
import "./chunk-FOZEB37P.js";
|
|
742
742
|
import {
|
|
743
743
|
getStartupContextLength
|
|
744
|
-
} from "./chunk-
|
|
745
|
-
import "./chunk-
|
|
744
|
+
} from "./chunk-DNMM4RF7.js";
|
|
745
|
+
import "./chunk-2SMHE6PC.js";
|
|
746
746
|
import "./chunk-JSFADKTB.js";
|
|
747
747
|
import "./chunk-OHAUN3Q5.js";
|
|
748
748
|
import {
|
|
@@ -760,12 +760,12 @@ import "./chunk-WMJL2XAM.js";
|
|
|
760
760
|
import {
|
|
761
761
|
fetchKeyInfo,
|
|
762
762
|
onLowRateLimit
|
|
763
|
-
} from "./chunk-
|
|
763
|
+
} from "./chunk-YAUMOXEH.js";
|
|
764
764
|
import "./chunk-TC2TJAOF.js";
|
|
765
765
|
import "./chunk-CP63SY5N.js";
|
|
766
766
|
import {
|
|
767
767
|
resolveReasoningForModel
|
|
768
|
-
} from "./chunk-
|
|
768
|
+
} from "./chunk-WPZXZXSA.js";
|
|
769
769
|
import "./chunk-U3KIMPCC.js";
|
|
770
770
|
import {
|
|
771
771
|
ApiCancelEvent,
|
|
@@ -805,7 +805,7 @@ import {
|
|
|
805
805
|
runVisionBridge,
|
|
806
806
|
shouldRunVisionBridge,
|
|
807
807
|
splitImageParts
|
|
808
|
-
} from "./chunk-
|
|
808
|
+
} from "./chunk-KBDFOYPK.js";
|
|
809
809
|
import "./chunk-242JUBPM.js";
|
|
810
810
|
import {
|
|
811
811
|
DEFAULT_CONTEXT_FILENAME,
|
|
@@ -827,12 +827,12 @@ import {
|
|
|
827
827
|
} from "./chunk-IC57EPC7.js";
|
|
828
828
|
import {
|
|
829
829
|
clampInlineMediaPart
|
|
830
|
-
} from "./chunk-
|
|
830
|
+
} from "./chunk-SZ26YNBZ.js";
|
|
831
831
|
import "./chunk-R7FX7HIR.js";
|
|
832
832
|
import "./chunk-V4XETRAG.js";
|
|
833
833
|
import "./chunk-ABTPVII7.js";
|
|
834
834
|
import "./chunk-HOPKSSYR.js";
|
|
835
|
-
import "./chunk-
|
|
835
|
+
import "./chunk-HAZNBQPI.js";
|
|
836
836
|
import "./chunk-23AFREUQ.js";
|
|
837
837
|
import "./chunk-IQEM74QW.js";
|
|
838
838
|
import {
|
|
@@ -845,7 +845,7 @@ import {
|
|
|
845
845
|
stripAnsiAndControl
|
|
846
846
|
} from "./chunk-FKI7XUZK.js";
|
|
847
847
|
import "./chunk-EPSJPAHV.js";
|
|
848
|
-
import "./chunk-
|
|
848
|
+
import "./chunk-IMLPJ76O.js";
|
|
849
849
|
import {
|
|
850
850
|
isShellProgressData
|
|
851
851
|
} from "./chunk-JOFGX5ZA.js";
|
|
@@ -854,7 +854,7 @@ import "./chunk-V44Y3PCO.js";
|
|
|
854
854
|
import {
|
|
855
855
|
ToolDisplayNames,
|
|
856
856
|
ToolNames
|
|
857
|
-
} from "./chunk-
|
|
857
|
+
} from "./chunk-SYMYKLO4.js";
|
|
858
858
|
import {
|
|
859
859
|
LOCAL_API_KEY_PLACEHOLDER,
|
|
860
860
|
ORGANIZAONE_ENV_KEY,
|
|
@@ -883,7 +883,7 @@ import {
|
|
|
883
883
|
resolveSavedModelApiKey,
|
|
884
884
|
shouldShowStep,
|
|
885
885
|
withdrawExportedCredential
|
|
886
|
-
} from "./chunk-
|
|
886
|
+
} from "./chunk-I3YBDADP.js";
|
|
887
887
|
import {
|
|
888
888
|
DEFAULT_TOKEN_LIMIT,
|
|
889
889
|
REASONING_EFFORT_TIERS,
|
|
@@ -897,13 +897,13 @@ import {
|
|
|
897
897
|
} from "./chunk-VYRPAY75.js";
|
|
898
898
|
import "./chunk-S7GOFMLU.js";
|
|
899
899
|
import "./chunk-RC67CA5Z.js";
|
|
900
|
-
import "./chunk-
|
|
900
|
+
import "./chunk-BZHLXJWH.js";
|
|
901
901
|
import "./chunk-HHIX6THS.js";
|
|
902
902
|
import "./chunk-O6GD6SFV.js";
|
|
903
903
|
import {
|
|
904
904
|
registerCleanup,
|
|
905
905
|
runExitCleanup
|
|
906
|
-
} from "./chunk-
|
|
906
|
+
} from "./chunk-A3JZZ2KW.js";
|
|
907
907
|
import {
|
|
908
908
|
finalizeStartupProfile,
|
|
909
909
|
profileCheckpoint
|
|
@@ -932,7 +932,7 @@ import {
|
|
|
932
932
|
} from "./chunk-EPJAMNLS.js";
|
|
933
933
|
import {
|
|
934
934
|
MAINLINE_CODER_MODEL
|
|
935
|
-
} from "./chunk-
|
|
935
|
+
} from "./chunk-TFAHTLY5.js";
|
|
936
936
|
import "./chunk-LEXKU5FI.js";
|
|
937
937
|
import "./chunk-HDGYCLNB.js";
|
|
938
938
|
import "./chunk-7TK6OY2J.js";
|
|
@@ -26609,8 +26609,593 @@ var WorkflowSaveOverlay = /* @__PURE__ */ __name(({
|
|
|
26609
26609
|
] });
|
|
26610
26610
|
}, "WorkflowSaveOverlay");
|
|
26611
26611
|
|
|
26612
|
-
// packages/cli/src/ui/components/background-view/
|
|
26612
|
+
// packages/cli/src/ui/components/background-view/AgentDashboard.tsx
|
|
26613
|
+
init_esbuild_shims();
|
|
26614
|
+
|
|
26615
|
+
// packages/cli/src/ui/components/background-view/agent-dashboard-model.ts
|
|
26616
|
+
init_esbuild_shims();
|
|
26617
|
+
var AGENT_DASHBOARD_TABS = [
|
|
26618
|
+
"summary",
|
|
26619
|
+
"plan",
|
|
26620
|
+
"activity",
|
|
26621
|
+
"details"
|
|
26622
|
+
];
|
|
26623
|
+
var MAX_FIELD_CHARS = 16384;
|
|
26624
|
+
var MAX_PLAN_ITEMS = 500;
|
|
26625
|
+
var MAX_PREPARED_ROWS = 2e3;
|
|
26626
|
+
function dashboardText(text) {
|
|
26627
|
+
const safe = sanitizeMultilineForDisplay(text).replace(/\t/g, " ");
|
|
26628
|
+
return safe.length > MAX_FIELD_CHARS ? safe.slice(0, MAX_FIELD_CHARS) + "\u2026" : safe;
|
|
26629
|
+
}
|
|
26630
|
+
__name(dashboardText, "dashboardText");
|
|
26631
|
+
function dashboardSingleLine(text, width) {
|
|
26632
|
+
return truncateToWidth(dashboardText(text).replace(/\s*\n\s*/g, " "), width);
|
|
26633
|
+
}
|
|
26634
|
+
__name(dashboardSingleLine, "dashboardSingleLine");
|
|
26635
|
+
function nextAgentDashboardTab(tab, direction) {
|
|
26636
|
+
const index = AGENT_DASHBOARD_TABS.indexOf(tab);
|
|
26637
|
+
return AGENT_DASHBOARD_TABS[(index + direction + AGENT_DASHBOARD_TABS.length) % AGENT_DASHBOARD_TABS.length];
|
|
26638
|
+
}
|
|
26639
|
+
__name(nextAgentDashboardTab, "nextAgentDashboardTab");
|
|
26640
|
+
function getAgentDashboardLayout(width, height) {
|
|
26641
|
+
const frameHeight = Math.max(3, height - 2);
|
|
26642
|
+
const bodyHeight = Math.max(1, frameHeight - 4);
|
|
26643
|
+
const split = width >= 116;
|
|
26644
|
+
const rosterWidth = split ? 30 : Math.max(1, width - 4);
|
|
26645
|
+
const detailWidth = Math.max(1, width - 4 - (split ? rosterWidth + 3 : 0));
|
|
26646
|
+
const headerRows = bodyHeight < 12 ? 4 : 6;
|
|
26647
|
+
const pageSize = Math.max(1, bodyHeight - headerRows);
|
|
26648
|
+
return {
|
|
26649
|
+
frameHeight,
|
|
26650
|
+
bodyHeight,
|
|
26651
|
+
split,
|
|
26652
|
+
rosterWidth,
|
|
26653
|
+
detailWidth,
|
|
26654
|
+
headerRows,
|
|
26655
|
+
pageSize
|
|
26656
|
+
};
|
|
26657
|
+
}
|
|
26658
|
+
__name(getAgentDashboardLayout, "getAgentDashboardLayout");
|
|
26659
|
+
function dashboardElapsed(entry, now = Date.now()) {
|
|
26660
|
+
return formatDuration(
|
|
26661
|
+
Math.floor(Math.max(0, (entry.endTime ?? now) - entry.startTime) / 1e3) * 1e3,
|
|
26662
|
+
{ hideTrailingZeros: true }
|
|
26663
|
+
);
|
|
26664
|
+
}
|
|
26665
|
+
__name(dashboardElapsed, "dashboardElapsed");
|
|
26666
|
+
function dashboardStatus(entry) {
|
|
26667
|
+
if ((entry.kind === "agent" || entry.kind === "workflow") && entry.pendingApprovals?.length) {
|
|
26668
|
+
return { label: t("Awaiting approval"), icon: "!", tone: "warning" };
|
|
26669
|
+
}
|
|
26670
|
+
switch (entry.status) {
|
|
26671
|
+
case "running":
|
|
26672
|
+
return { label: t("Running"), icon: glyphs().dot, tone: "running" };
|
|
26673
|
+
case "pausing":
|
|
26674
|
+
return { label: t("Pausing"), icon: "\u2026", tone: "warning" };
|
|
26675
|
+
case "paused":
|
|
26676
|
+
return { label: t("Paused"), icon: "||", tone: "warning" };
|
|
26677
|
+
case "completed":
|
|
26678
|
+
return { label: t("Completed"), icon: glyphs().done, tone: "success" };
|
|
26679
|
+
case "failed":
|
|
26680
|
+
return { label: t("Failed"), icon: glyphs().failed, tone: "error" };
|
|
26681
|
+
case "cancelled":
|
|
26682
|
+
return { label: t("Stopped"), icon: glyphs().hollow, tone: "muted" };
|
|
26683
|
+
default:
|
|
26684
|
+
throw new Error("Unsupported background task status");
|
|
26685
|
+
}
|
|
26686
|
+
}
|
|
26687
|
+
__name(dashboardStatus, "dashboardStatus");
|
|
26688
|
+
function dashboardTaskLabel(entry) {
|
|
26689
|
+
if (entry.kind === "dream") return t("[dream] memory consolidation");
|
|
26690
|
+
if (entry.kind === "workflow")
|
|
26691
|
+
return "[workflow] " + (entry.meta?.name ?? entry.description ?? entry.runId);
|
|
26692
|
+
if (entry.kind === "agent")
|
|
26693
|
+
return entry.description || entry.subagentType || t("Agent");
|
|
26694
|
+
return "[" + entry.kind + "] " + (entry.description || entry.command);
|
|
26695
|
+
}
|
|
26696
|
+
__name(dashboardTaskLabel, "dashboardTaskLabel");
|
|
26697
|
+
function dashboardStats(entry) {
|
|
26698
|
+
const parts = [dashboardElapsed(entry)];
|
|
26699
|
+
if (entry.stats?.outputTokens !== void 0)
|
|
26700
|
+
parts.push(
|
|
26701
|
+
t("{{count}} tokens", {
|
|
26702
|
+
count: formatTokenCount(entry.stats.outputTokens)
|
|
26703
|
+
})
|
|
26704
|
+
);
|
|
26705
|
+
if (entry.stats?.toolUses !== void 0)
|
|
26706
|
+
parts.push(
|
|
26707
|
+
t(
|
|
26708
|
+
entry.stats.toolUses === 1 ? "{{count}} tool call" : "{{count}} tool calls",
|
|
26709
|
+
{ count: String(entry.stats.toolUses) }
|
|
26710
|
+
)
|
|
26711
|
+
);
|
|
26712
|
+
return parts.join(" \xB7 ");
|
|
26713
|
+
}
|
|
26714
|
+
__name(dashboardStats, "dashboardStats");
|
|
26715
|
+
function dashboardActivity(name, description) {
|
|
26716
|
+
const display = localizeToolDisplayName(TOOL_DISPLAY_BY_NAME[name] ?? name);
|
|
26717
|
+
return description ? display + " \xB7 " + description : display;
|
|
26718
|
+
}
|
|
26719
|
+
__name(dashboardActivity, "dashboardActivity");
|
|
26720
|
+
function getAgentDashboardLines(entry, tab, width, entries = []) {
|
|
26721
|
+
const rows = [];
|
|
26722
|
+
let omitted = false;
|
|
26723
|
+
const add = /* @__PURE__ */ __name((text, tone = "secondary", bold = false) => {
|
|
26724
|
+
if (rows.length >= MAX_PREPARED_ROWS - 1) {
|
|
26725
|
+
omitted = true;
|
|
26726
|
+
return;
|
|
26727
|
+
}
|
|
26728
|
+
for (const part of wrapAnsi(dashboardText(text), Math.max(1, width), {
|
|
26729
|
+
hard: true,
|
|
26730
|
+
trim: false
|
|
26731
|
+
}).split("\n")) {
|
|
26732
|
+
if (rows.length >= MAX_PREPARED_ROWS - 1) {
|
|
26733
|
+
omitted = true;
|
|
26734
|
+
break;
|
|
26735
|
+
}
|
|
26736
|
+
rows.push({ text: part, tone, bold });
|
|
26737
|
+
}
|
|
26738
|
+
}, "add");
|
|
26739
|
+
const title = /* @__PURE__ */ __name((text) => {
|
|
26740
|
+
if (rows.length) add("");
|
|
26741
|
+
add(text, "title", true);
|
|
26742
|
+
}, "title");
|
|
26743
|
+
const activities = (entry.recentActivities ?? []).slice(-10);
|
|
26744
|
+
const current = activities.at(-1);
|
|
26745
|
+
const allTodos = entry.todoItems ?? [];
|
|
26746
|
+
const todos = allTodos.slice(0, MAX_PLAN_ITEMS);
|
|
26747
|
+
const completed = allTodos.filter(
|
|
26748
|
+
(todo) => todo.status === "completed"
|
|
26749
|
+
).length;
|
|
26750
|
+
const showPlan = /* @__PURE__ */ __name(() => {
|
|
26751
|
+
if (!todos.length) {
|
|
26752
|
+
add(t("No plan recorded"), "muted");
|
|
26753
|
+
return;
|
|
26754
|
+
}
|
|
26755
|
+
for (const todo of todos) {
|
|
26756
|
+
if (rows.length >= MAX_PREPARED_ROWS - 1) {
|
|
26757
|
+
omitted = true;
|
|
26758
|
+
break;
|
|
26759
|
+
}
|
|
26760
|
+
const done = todo.status === "completed";
|
|
26761
|
+
const active = todo.status === "in_progress";
|
|
26762
|
+
add(
|
|
26763
|
+
(done ? glyphs().done : active ? ">" : glyphs().hollow) + " " + todo.content,
|
|
26764
|
+
done ? "success" : active ? "running" : "muted"
|
|
26765
|
+
);
|
|
26766
|
+
if (todo.blockedBy?.length)
|
|
26767
|
+
add(
|
|
26768
|
+
t("Depends on: {{ids}}", { ids: todo.blockedBy.join(", ") }),
|
|
26769
|
+
"muted"
|
|
26770
|
+
);
|
|
26771
|
+
}
|
|
26772
|
+
if (allTodos.length > todos.length)
|
|
26773
|
+
add(
|
|
26774
|
+
t("{{count}} more plan items", {
|
|
26775
|
+
count: String(allTodos.length - todos.length)
|
|
26776
|
+
}),
|
|
26777
|
+
"muted"
|
|
26778
|
+
);
|
|
26779
|
+
}, "showPlan");
|
|
26780
|
+
const alerts = /* @__PURE__ */ __name(() => {
|
|
26781
|
+
if (entry.pendingApprovals?.length) {
|
|
26782
|
+
title(t("Your action is required"));
|
|
26783
|
+
add(t("Press a to review the pending approval."), "warning");
|
|
26784
|
+
}
|
|
26785
|
+
if (entry.resumeBlockedReason) {
|
|
26786
|
+
title(t("Resume blocked"));
|
|
26787
|
+
add(entry.resumeBlockedReason, "error");
|
|
26788
|
+
}
|
|
26789
|
+
if (entry.error) {
|
|
26790
|
+
title(t("Error"));
|
|
26791
|
+
add(entry.error, "error");
|
|
26792
|
+
}
|
|
26793
|
+
}, "alerts");
|
|
26794
|
+
const planTitle = /* @__PURE__ */ __name(() => t("Declared plan") + (allTodos.length ? " \xB7 " + completed + "/" + allTodos.length : ""), "planTitle");
|
|
26795
|
+
if (tab === "summary") {
|
|
26796
|
+
alerts();
|
|
26797
|
+
title(entry.status === "completed" ? t("Result") : t("Now"));
|
|
26798
|
+
if (entry.status === "completed" && entry.result)
|
|
26799
|
+
add(entry.result, "primary");
|
|
26800
|
+
else if (current)
|
|
26801
|
+
add(dashboardActivity(current.name, current.description), "code");
|
|
26802
|
+
else add(t("No activity recorded"), "muted");
|
|
26803
|
+
title(planTitle());
|
|
26804
|
+
showPlan();
|
|
26805
|
+
title(t("Recent activity"));
|
|
26806
|
+
for (const activity of activities.slice(-4, -1).reverse()) {
|
|
26807
|
+
add(
|
|
26808
|
+
dashboardSingleLine(
|
|
26809
|
+
dashboardActivity(activity.name, activity.description),
|
|
26810
|
+
width
|
|
26811
|
+
),
|
|
26812
|
+
"secondary"
|
|
26813
|
+
);
|
|
26814
|
+
}
|
|
26815
|
+
if (activities.length <= 1) add(t("No earlier activity recorded"), "muted");
|
|
26816
|
+
} else if (tab === "plan") {
|
|
26817
|
+
title(planTitle());
|
|
26818
|
+
showPlan();
|
|
26819
|
+
alerts();
|
|
26820
|
+
title(t("About progress"));
|
|
26821
|
+
add(
|
|
26822
|
+
t("Plan items describe declared work, not estimated time remaining."),
|
|
26823
|
+
"muted"
|
|
26824
|
+
);
|
|
26825
|
+
} else if (tab === "activity") {
|
|
26826
|
+
title(t("Current event"));
|
|
26827
|
+
if (current)
|
|
26828
|
+
add(dashboardActivity(current.name, current.description), "code");
|
|
26829
|
+
else add(t("No activity recorded"), "muted");
|
|
26830
|
+
title(t("Progress"));
|
|
26831
|
+
for (const activity of activities.slice(0, -1)) {
|
|
26832
|
+
add(
|
|
26833
|
+
dashboardSingleLine(
|
|
26834
|
+
dashboardActivity(activity.name, activity.description),
|
|
26835
|
+
width
|
|
26836
|
+
)
|
|
26837
|
+
);
|
|
26838
|
+
}
|
|
26839
|
+
alerts();
|
|
26840
|
+
} else {
|
|
26841
|
+
title(t("Prompt"));
|
|
26842
|
+
add(entry.prompt || t("No instruction recorded"));
|
|
26843
|
+
title(t("Parent"));
|
|
26844
|
+
const lookup = /* @__PURE__ */ __name((id) => entries.find(
|
|
26845
|
+
(item) => item.kind === "agent" && item.agentId === id
|
|
26846
|
+
), "lookup");
|
|
26847
|
+
const { chain } = ancestorChain(entry, lookup);
|
|
26848
|
+
if (chain.length)
|
|
26849
|
+
add(
|
|
26850
|
+
[...chain].reverse().map((item) => {
|
|
26851
|
+
const parent = lookup(item.agentId ?? "");
|
|
26852
|
+
return parent ? (parent.subagentType ?? t("Agent")) + " \u2014 " + parent.description : item.agentId ?? "";
|
|
26853
|
+
}).join(" \u203A ")
|
|
26854
|
+
);
|
|
26855
|
+
else
|
|
26856
|
+
add(
|
|
26857
|
+
entry.parentName ? entry.parentName + " \xB7 " + t("no longer running") : t("Main session")
|
|
26858
|
+
);
|
|
26859
|
+
if ((entry.depth ?? 0) > 0)
|
|
26860
|
+
add(
|
|
26861
|
+
t("nested \xB7 level {{level}}", {
|
|
26862
|
+
level: String((entry.depth ?? 0) + 1)
|
|
26863
|
+
}),
|
|
26864
|
+
"muted"
|
|
26865
|
+
);
|
|
26866
|
+
if (entry.model) {
|
|
26867
|
+
title(t("Model"));
|
|
26868
|
+
add(entry.model);
|
|
26869
|
+
}
|
|
26870
|
+
const children = entries.filter(
|
|
26871
|
+
(child) => child.kind === "agent" && child.parentAgentId === entry.agentId
|
|
26872
|
+
).sort(compareActiveThenTerminal);
|
|
26873
|
+
if (children.length) {
|
|
26874
|
+
title(t("Sub-agents"));
|
|
26875
|
+
for (const child of children.slice(0, 5))
|
|
26876
|
+
add(
|
|
26877
|
+
dashboardStatus(child).icon + " " + (child.kind === "agent" ? (child.subagentType ?? t("Agent")) + " \u2014 " : "") + dashboardTaskLabel(child)
|
|
26878
|
+
);
|
|
26879
|
+
if (children.length > 5)
|
|
26880
|
+
add(
|
|
26881
|
+
t("{{count}} more", { count: String(children.length - 5) }),
|
|
26882
|
+
"muted"
|
|
26883
|
+
);
|
|
26884
|
+
}
|
|
26885
|
+
if (entry.outputFile) {
|
|
26886
|
+
title(t("Transcript"));
|
|
26887
|
+
add(entry.outputFile, "code");
|
|
26888
|
+
}
|
|
26889
|
+
alerts();
|
|
26890
|
+
}
|
|
26891
|
+
if (omitted)
|
|
26892
|
+
rows.push({
|
|
26893
|
+
text: dashboardSingleLine(
|
|
26894
|
+
t("Additional content omitted; inspect the transcript."),
|
|
26895
|
+
width
|
|
26896
|
+
),
|
|
26897
|
+
tone: "muted"
|
|
26898
|
+
});
|
|
26899
|
+
return rows;
|
|
26900
|
+
}
|
|
26901
|
+
__name(getAgentDashboardLines, "getAgentDashboardLines");
|
|
26902
|
+
|
|
26903
|
+
// packages/cli/src/ui/components/background-view/AgentDashboard.tsx
|
|
26613
26904
|
var import_jsx_runtime109 = __toESM(require_jsx_runtime(), 1);
|
|
26905
|
+
function toneColor(tone) {
|
|
26906
|
+
return {
|
|
26907
|
+
title: theme.text.accent,
|
|
26908
|
+
primary: theme.text.primary,
|
|
26909
|
+
secondary: theme.text.secondary,
|
|
26910
|
+
muted: extendedTheme.text.muted,
|
|
26911
|
+
code: theme.text.code,
|
|
26912
|
+
success: theme.status.success,
|
|
26913
|
+
warning: theme.status.warning,
|
|
26914
|
+
error: theme.status.error,
|
|
26915
|
+
running: extendedTheme.ui.brand
|
|
26916
|
+
}[tone];
|
|
26917
|
+
}
|
|
26918
|
+
__name(toneColor, "toneColor");
|
|
26919
|
+
function DashboardLine({
|
|
26920
|
+
value,
|
|
26921
|
+
width
|
|
26922
|
+
}) {
|
|
26923
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: toneColor(value.tone), bold: value.bold, wrap: "truncate-end", children: dashboardSingleLine(value.text || " ", width) });
|
|
26924
|
+
}
|
|
26925
|
+
__name(DashboardLine, "DashboardLine");
|
|
26926
|
+
var tabLabels = {
|
|
26927
|
+
summary: "Agent summary",
|
|
26928
|
+
plan: "Agent plan",
|
|
26929
|
+
activity: "Agent activity",
|
|
26930
|
+
details: "Agent details"
|
|
26931
|
+
};
|
|
26932
|
+
function DashboardTabs({
|
|
26933
|
+
tab,
|
|
26934
|
+
width
|
|
26935
|
+
}) {
|
|
26936
|
+
const names = AGENT_DASHBOARD_TABS.map((key) => t(tabLabels[key]));
|
|
26937
|
+
const naturalWidth = names.reduce(
|
|
26938
|
+
(sum, name) => sum + getCachedStringWidth(name) + 2,
|
|
26939
|
+
0
|
|
26940
|
+
);
|
|
26941
|
+
const slot = Math.max(1, Math.floor(width / names.length));
|
|
26942
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "truncate-end", children: AGENT_DASHBOARD_TABS.map((key, index) => {
|
|
26943
|
+
const padding = naturalWidth <= width || slot >= 3 ? " " : "";
|
|
26944
|
+
const name = dashboardSingleLine(
|
|
26945
|
+
names[index],
|
|
26946
|
+
naturalWidth <= width ? width : Math.max(1, slot - padding.length * 2)
|
|
26947
|
+
);
|
|
26948
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
26949
|
+
Text,
|
|
26950
|
+
{
|
|
26951
|
+
bold: tab === key,
|
|
26952
|
+
color: tab === key ? theme.background.primary : theme.text.secondary,
|
|
26953
|
+
backgroundColor: tab === key ? theme.text.accent : void 0,
|
|
26954
|
+
children: padding + name + padding
|
|
26955
|
+
},
|
|
26956
|
+
key
|
|
26957
|
+
);
|
|
26958
|
+
}) });
|
|
26959
|
+
}
|
|
26960
|
+
__name(DashboardTabs, "DashboardTabs");
|
|
26961
|
+
function AgentDashboard({
|
|
26962
|
+
entries,
|
|
26963
|
+
selectedEntry,
|
|
26964
|
+
selectedIndex,
|
|
26965
|
+
detailFocused,
|
|
26966
|
+
tab,
|
|
26967
|
+
scrollOffset,
|
|
26968
|
+
width,
|
|
26969
|
+
height,
|
|
26970
|
+
actionHints,
|
|
26971
|
+
footerMessage,
|
|
26972
|
+
renderOtherDetail
|
|
26973
|
+
}) {
|
|
26974
|
+
const layout = getAgentDashboardLayout(width, height);
|
|
26975
|
+
const { bodyHeight, rosterWidth, detailWidth, split, headerRows, pageSize } = layout;
|
|
26976
|
+
const agent = selectedEntry?.kind === "agent" ? selectedEntry : void 0;
|
|
26977
|
+
const lines = agent ? getAgentDashboardLines(agent, tab, detailWidth, entries) : [];
|
|
26978
|
+
const offset = Math.max(0, Math.min(scrollOffset, lines.length - pageSize));
|
|
26979
|
+
const visibleCount = Math.max(1, Math.floor((bodyHeight - 2) / 4));
|
|
26980
|
+
const start = Math.min(
|
|
26981
|
+
Math.max(0, selectedIndex - visibleCount + 1),
|
|
26982
|
+
Math.max(0, entries.length - visibleCount)
|
|
26983
|
+
);
|
|
26984
|
+
const tree = computeAgentTreeInfo(entries);
|
|
26985
|
+
const blocking = computeUserBlockingIds(entries);
|
|
26986
|
+
const count = /* @__PURE__ */ __name((status2) => entries.filter(
|
|
26987
|
+
(item) => item.status === status2 && (status2 !== "running" || item.kind !== "agent" && item.kind !== "workflow" || !item.pendingApprovals?.length)
|
|
26988
|
+
).length, "count");
|
|
26989
|
+
const approvals = entries.filter(
|
|
26990
|
+
(item) => (item.kind === "agent" || item.kind === "workflow") && item.pendingApprovals?.length
|
|
26991
|
+
).length;
|
|
26992
|
+
const title = entries.every((item) => item.kind === "agent") ? t("Agents") : t("Background tasks");
|
|
26993
|
+
const summary = width >= 100 ? title + " \xB7 " + t("{{count}} running", { count: String(count("running")) }) + " \xB7 " + t("{{count}} awaiting approval", { count: String(approvals) }) + " \xB7 " + t("{{count}} completed", { count: String(count("completed")) }) + " \xB7 " + t("{{count}} failed", { count: String(count("failed")) }) : title + " \xB7 " + entries.length + " \xB7 " + glyphs().dot + " " + count("running") + " \xB7 " + glyphs().warning + " " + approvals + " \xB7 " + glyphs().done + " " + count("completed") + " \xB7 " + glyphs().failed + " " + count("failed");
|
|
26994
|
+
const showDetail = split || detailFocused;
|
|
26995
|
+
const footerWidth = Math.max(1, width);
|
|
26996
|
+
const tabsHint = t("\u2190\u2192 tabs");
|
|
26997
|
+
const backHint = t(width < 60 ? "esc back" : "esc back to list");
|
|
26998
|
+
const listHint = t(
|
|
26999
|
+
width < 60 ? "\u2191\u2193 agents \xB7 enter view \xB7 esc close" : "\u2191\u2193 agents \xB7 enter view \xB7 \u2190\u2192 tabs \xB7 esc close"
|
|
27000
|
+
);
|
|
27001
|
+
const detailHintWidth = getCachedStringWidth(tabsHint + " \xB7 " + backHint);
|
|
27002
|
+
const beforeDetailHint = footerWidth >= detailHintWidth + 12 ? t("\u2191\u2193 scroll") + " \xB7 " : "";
|
|
27003
|
+
const status = selectedEntry ? dashboardStatus(selectedEntry) : void 0;
|
|
27004
|
+
if (width < 36 || height < 12)
|
|
27005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { width: Math.max(1, width), height: Math.max(1, height), children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.warning, wrap: "truncate-end", children: dashboardSingleLine(
|
|
27006
|
+
t("Enlarge the terminal to inspect agents. Esc closes."),
|
|
27007
|
+
width
|
|
27008
|
+
) }) });
|
|
27009
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { flexDirection: "column", width, height, flexShrink: 0, children: [
|
|
27010
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27011
|
+
Box_default,
|
|
27012
|
+
{
|
|
27013
|
+
flexDirection: "column",
|
|
27014
|
+
width,
|
|
27015
|
+
height: layout.frameHeight,
|
|
27016
|
+
borderStyle: glyphs().borderStyle,
|
|
27017
|
+
borderColor: extendedTheme.ui.rule,
|
|
27018
|
+
paddingX: 1,
|
|
27019
|
+
flexShrink: 0,
|
|
27020
|
+
children: [
|
|
27021
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, wrap: "truncate-end", children: dashboardSingleLine(summary, Math.max(1, width - 4)) }),
|
|
27022
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { height: 1, flexShrink: 0 }),
|
|
27023
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27024
|
+
Box_default,
|
|
27025
|
+
{
|
|
27026
|
+
flexDirection: "row",
|
|
27027
|
+
height: bodyHeight,
|
|
27028
|
+
flexShrink: 0,
|
|
27029
|
+
overflow: "hidden",
|
|
27030
|
+
children: [
|
|
27031
|
+
(split || !detailFocused) && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27032
|
+
Box_default,
|
|
27033
|
+
{
|
|
27034
|
+
flexDirection: "column",
|
|
27035
|
+
width: rosterWidth,
|
|
27036
|
+
height: bodyHeight,
|
|
27037
|
+
flexShrink: 0,
|
|
27038
|
+
children: [
|
|
27039
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27040
|
+
Box_default,
|
|
27041
|
+
{
|
|
27042
|
+
flexDirection: "column",
|
|
27043
|
+
height: Math.max(0, bodyHeight - 1),
|
|
27044
|
+
overflow: "hidden",
|
|
27045
|
+
flexShrink: 0,
|
|
27046
|
+
children: [
|
|
27047
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, wrap: "truncate-end", children: dashboardSingleLine(t("Agents \xB7 main session"), rosterWidth) }),
|
|
27048
|
+
entries.slice(start, start + visibleCount).map((item, localIndex) => {
|
|
27049
|
+
const selected = localIndex + start === selectedIndex;
|
|
27050
|
+
const itemStatus = dashboardStatus(item);
|
|
27051
|
+
const prefix = item.kind === "agent" ? treeRowPrefix(item, tree.get(item.agentId)) : "";
|
|
27052
|
+
const blockLabel = item.kind === "agent" && blocking.has(item.agentId) ? "[blocking] " : "";
|
|
27053
|
+
const label = dashboardSingleLine(
|
|
27054
|
+
prefix + blockLabel + dashboardTaskLabel(item),
|
|
27055
|
+
Math.max(
|
|
27056
|
+
0,
|
|
27057
|
+
rosterWidth - getCachedStringWidth(
|
|
27058
|
+
glyphs().prompt + " " + itemStatus.icon + " "
|
|
27059
|
+
)
|
|
27060
|
+
)
|
|
27061
|
+
);
|
|
27062
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27063
|
+
Box_default,
|
|
27064
|
+
{
|
|
27065
|
+
flexDirection: "column",
|
|
27066
|
+
flexShrink: 0,
|
|
27067
|
+
children: [
|
|
27068
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Text, { wrap: "truncate-end", children: [
|
|
27069
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.ui.brand, children: selected ? glyphs().prompt + " " : " " }),
|
|
27070
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: toneColor(itemStatus.tone), children: itemStatus.icon + " " }),
|
|
27071
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27072
|
+
Text,
|
|
27073
|
+
{
|
|
27074
|
+
color: selected ? theme.text.primary : theme.text.secondary,
|
|
27075
|
+
bold: selected,
|
|
27076
|
+
children: label
|
|
27077
|
+
}
|
|
27078
|
+
)
|
|
27079
|
+
] }),
|
|
27080
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27081
|
+
Text,
|
|
27082
|
+
{
|
|
27083
|
+
color: toneColor(itemStatus.tone),
|
|
27084
|
+
wrap: "truncate-end",
|
|
27085
|
+
children: dashboardSingleLine(
|
|
27086
|
+
" " + itemStatus.label,
|
|
27087
|
+
rosterWidth
|
|
27088
|
+
)
|
|
27089
|
+
}
|
|
27090
|
+
),
|
|
27091
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27092
|
+
Text,
|
|
27093
|
+
{
|
|
27094
|
+
color: extendedTheme.text.muted,
|
|
27095
|
+
wrap: "truncate-end",
|
|
27096
|
+
children: dashboardSingleLine(
|
|
27097
|
+
" " + (item.kind === "agent" ? dashboardStats(item) : dashboardElapsed(item)),
|
|
27098
|
+
rosterWidth
|
|
27099
|
+
)
|
|
27100
|
+
}
|
|
27101
|
+
),
|
|
27102
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " })
|
|
27103
|
+
]
|
|
27104
|
+
},
|
|
27105
|
+
entryId(item)
|
|
27106
|
+
);
|
|
27107
|
+
})
|
|
27108
|
+
]
|
|
27109
|
+
}
|
|
27110
|
+
),
|
|
27111
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: dashboardSingleLine(
|
|
27112
|
+
t("{{count}} tasks \xB7 {{start}}\u2013{{end}} visible", {
|
|
27113
|
+
count: String(entries.length),
|
|
27114
|
+
start: String(start + 1),
|
|
27115
|
+
end: String(Math.min(start + visibleCount, entries.length))
|
|
27116
|
+
}),
|
|
27117
|
+
rosterWidth
|
|
27118
|
+
) })
|
|
27119
|
+
]
|
|
27120
|
+
}
|
|
27121
|
+
),
|
|
27122
|
+
split && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { width: 3, flexDirection: "column", flexShrink: 0, children: Array.from({ length: bodyHeight }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.ui.rule, children: " \u2502 " }, index)) }),
|
|
27123
|
+
showDetail && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27124
|
+
Box_default,
|
|
27125
|
+
{
|
|
27126
|
+
flexDirection: "column",
|
|
27127
|
+
width: detailWidth,
|
|
27128
|
+
height: bodyHeight,
|
|
27129
|
+
flexShrink: 0,
|
|
27130
|
+
overflow: "hidden",
|
|
27131
|
+
children: agent ? /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_jsx_runtime109.Fragment, { children: [
|
|
27132
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, wrap: "truncate-end", children: dashboardSingleLine(
|
|
27133
|
+
dashboardTaskLabel(agent),
|
|
27134
|
+
detailWidth
|
|
27135
|
+
) }),
|
|
27136
|
+
headerRows === 6 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: dashboardSingleLine(
|
|
27137
|
+
(agent.subagentType ?? t("Agent")) + " \xB7 " + agent.agentId,
|
|
27138
|
+
detailWidth
|
|
27139
|
+
) }),
|
|
27140
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27141
|
+
Text,
|
|
27142
|
+
{
|
|
27143
|
+
color: status ? toneColor(status.tone) : void 0,
|
|
27144
|
+
wrap: "truncate-end",
|
|
27145
|
+
children: dashboardSingleLine(
|
|
27146
|
+
(status ? status.icon + " " + status.label + " \xB7 " : "") + dashboardStats(agent),
|
|
27147
|
+
detailWidth
|
|
27148
|
+
)
|
|
27149
|
+
}
|
|
27150
|
+
),
|
|
27151
|
+
headerRows === 6 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " }),
|
|
27152
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(DashboardTabs, { tab, width: detailWidth }),
|
|
27153
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " }),
|
|
27154
|
+
lines.slice(offset, offset + pageSize).map((value, index) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27155
|
+
DashboardLine,
|
|
27156
|
+
{
|
|
27157
|
+
value,
|
|
27158
|
+
width: detailWidth
|
|
27159
|
+
},
|
|
27160
|
+
index
|
|
27161
|
+
))
|
|
27162
|
+
] }) : selectedEntry ? renderOtherDetail(selectedEntry, bodyHeight, detailWidth) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: t("No entry to show.") })
|
|
27163
|
+
}
|
|
27164
|
+
)
|
|
27165
|
+
]
|
|
27166
|
+
}
|
|
27167
|
+
)
|
|
27168
|
+
]
|
|
27169
|
+
}
|
|
27170
|
+
),
|
|
27171
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { height: 2, flexDirection: "column", flexShrink: 0, children: footerMessage ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.status.warning, children: dashboardSingleLine(footerMessage, footerWidth * 2) }) : /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_jsx_runtime109.Fragment, { children: [
|
|
27172
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: detailFocused ? /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_jsx_runtime109.Fragment, { children: [
|
|
27173
|
+
beforeDetailHint,
|
|
27174
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: tabsHint }),
|
|
27175
|
+
" \xB7 ",
|
|
27176
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: backHint })
|
|
27177
|
+
] }) : dashboardSingleLine(listHint, footerWidth) }),
|
|
27178
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { justifyContent: "space-between", children: [
|
|
27179
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: dashboardSingleLine(
|
|
27180
|
+
actionHints.join(" \xB7 "),
|
|
27181
|
+
Math.max(1, footerWidth - 22)
|
|
27182
|
+
) }),
|
|
27183
|
+
agent && showDetail && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, children: dashboardSingleLine(
|
|
27184
|
+
t("lines {{start}}\u2013{{end}}/{{total}}", {
|
|
27185
|
+
start: String(Math.min(offset + 1, lines.length)),
|
|
27186
|
+
end: String(Math.min(offset + pageSize, lines.length)),
|
|
27187
|
+
total: String(lines.length)
|
|
27188
|
+
}),
|
|
27189
|
+
21
|
|
27190
|
+
) })
|
|
27191
|
+
] })
|
|
27192
|
+
] }) })
|
|
27193
|
+
] });
|
|
27194
|
+
}
|
|
27195
|
+
__name(AgentDashboard, "AgentDashboard");
|
|
27196
|
+
|
|
27197
|
+
// packages/cli/src/ui/components/background-view/BackgroundTasksDialog.tsx
|
|
27198
|
+
var import_jsx_runtime110 = __toESM(require_jsx_runtime(), 1);
|
|
26614
27199
|
var MAX_LIVE_LABEL_CHARS = 4096;
|
|
26615
27200
|
function formatActivityLabel(name, description) {
|
|
26616
27201
|
const display = localizeToolDisplayName(TOOL_DISPLAY_BY_NAME[name] ?? name);
|
|
@@ -26794,12 +27379,12 @@ function truncateToWidth2(text, maxWidth) {
|
|
|
26794
27379
|
__name(truncateToWidth2, "truncateToWidth");
|
|
26795
27380
|
var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
26796
27381
|
if (entries.length === 0) {
|
|
26797
|
-
return /* @__PURE__ */ (0,
|
|
26798
|
-
/* @__PURE__ */ (0,
|
|
26799
|
-
/* @__PURE__ */ (0,
|
|
26800
|
-
/* @__PURE__ */ (0,
|
|
27382
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
27383
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { paddingX: 1, children: [
|
|
27384
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, children: t("Background tasks") }),
|
|
27385
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: " (0)" })
|
|
26801
27386
|
] }),
|
|
26802
|
-
/* @__PURE__ */ (0,
|
|
27387
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: t("No tasks currently running") }) })
|
|
26803
27388
|
] });
|
|
26804
27389
|
}
|
|
26805
27390
|
const fits = entries.length <= maxRows;
|
|
@@ -26817,27 +27402,27 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
26817
27402
|
const visible = entries.slice(windowStart, windowEnd);
|
|
26818
27403
|
const treeInfo = computeAgentTreeInfo(entries);
|
|
26819
27404
|
const blockingIds = computeUserBlockingIds(entries);
|
|
26820
|
-
return /* @__PURE__ */ (0,
|
|
26821
|
-
/* @__PURE__ */ (0,
|
|
26822
|
-
/* @__PURE__ */ (0,
|
|
26823
|
-
/* @__PURE__ */ (0,
|
|
27405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
27406
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { paddingX: 1, children: [
|
|
27407
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, children: t("Background tasks") }),
|
|
27408
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
26824
27409
|
" (",
|
|
26825
27410
|
entries.length,
|
|
26826
27411
|
")"
|
|
26827
27412
|
] })
|
|
26828
27413
|
] }),
|
|
26829
|
-
/* @__PURE__ */ (0,
|
|
26830
|
-
hiddenAbove > 0 && /* @__PURE__ */ (0,
|
|
27414
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
27415
|
+
hiddenAbove > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: ` ^ ${t("{{count}} more above", { count: String(hiddenAbove) })}` }) }),
|
|
26831
27416
|
visible.map((entry, visibleIdx) => {
|
|
26832
27417
|
const idx = windowStart + visibleIdx;
|
|
26833
27418
|
const isSelected = idx === selectedIndex;
|
|
26834
27419
|
const presentation2 = statusPresentation(entry.status);
|
|
26835
27420
|
const labelColor = isSelected ? theme.text.accent : presentation2 ? presentation2.labelColor : theme.text.primary;
|
|
26836
27421
|
const treePrefix = entry.kind === "agent" ? treeRowPrefix(entry, treeInfo.get(entry.agentId)) : "";
|
|
26837
|
-
return /* @__PURE__ */ (0,
|
|
26838
|
-
/* @__PURE__ */ (0,
|
|
26839
|
-
treePrefix !== "" && /* @__PURE__ */ (0,
|
|
26840
|
-
/* @__PURE__ */ (0,
|
|
27422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
|
|
27423
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: isSelected ? theme.text.accent : void 0, children: isSelected ? "> " : " " }),
|
|
27424
|
+
treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
|
|
27425
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: labelColor, children: escapeAnsiCtrlCodes(
|
|
26841
27426
|
rowLabel2(
|
|
26842
27427
|
entry,
|
|
26843
27428
|
entry.kind === "agent" && blockingIds.has(entry.agentId)
|
|
@@ -26845,14 +27430,14 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
26845
27430
|
) })
|
|
26846
27431
|
] }, entryId(entry));
|
|
26847
27432
|
}),
|
|
26848
|
-
hiddenBelow > 0 && /* @__PURE__ */ (0,
|
|
27433
|
+
hiddenBelow > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: ` v ${t("{{count}} more below", { count: String(hiddenBelow) })}` }) })
|
|
26849
27434
|
] })
|
|
26850
27435
|
] });
|
|
26851
27436
|
}, "ListBody");
|
|
26852
27437
|
var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
26853
27438
|
switch (entry.kind) {
|
|
26854
27439
|
case "agent":
|
|
26855
|
-
return /* @__PURE__ */ (0,
|
|
27440
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26856
27441
|
AgentDetailBody,
|
|
26857
27442
|
{
|
|
26858
27443
|
entry,
|
|
@@ -26861,7 +27446,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
26861
27446
|
}
|
|
26862
27447
|
);
|
|
26863
27448
|
case "shell":
|
|
26864
|
-
return /* @__PURE__ */ (0,
|
|
27449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26865
27450
|
ShellDetailBody,
|
|
26866
27451
|
{
|
|
26867
27452
|
entry,
|
|
@@ -26870,7 +27455,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
26870
27455
|
}
|
|
26871
27456
|
);
|
|
26872
27457
|
case "monitor":
|
|
26873
|
-
return /* @__PURE__ */ (0,
|
|
27458
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26874
27459
|
MonitorDetailBody,
|
|
26875
27460
|
{
|
|
26876
27461
|
entry,
|
|
@@ -26879,7 +27464,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
26879
27464
|
}
|
|
26880
27465
|
);
|
|
26881
27466
|
case "workflow":
|
|
26882
|
-
return /* @__PURE__ */ (0,
|
|
27467
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26883
27468
|
WorkflowDetailBody,
|
|
26884
27469
|
{
|
|
26885
27470
|
entry,
|
|
@@ -26888,7 +27473,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
26888
27473
|
}
|
|
26889
27474
|
);
|
|
26890
27475
|
case "dream":
|
|
26891
|
-
return /* @__PURE__ */ (0,
|
|
27476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26892
27477
|
DreamDetailBody,
|
|
26893
27478
|
{
|
|
26894
27479
|
entry,
|
|
@@ -26919,35 +27504,35 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
26919
27504
|
const visibleTopics = topics.slice(0, MAX_TOPICS);
|
|
26920
27505
|
const hiddenTopicCount = Math.max(0, topics.length - visibleTopics.length);
|
|
26921
27506
|
const hasError = Boolean(entry.error);
|
|
26922
|
-
return /* @__PURE__ */ (0,
|
|
27507
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
26923
27508
|
MaxSizedBox,
|
|
26924
27509
|
{
|
|
26925
27510
|
maxHeight,
|
|
26926
27511
|
maxWidth,
|
|
26927
27512
|
overflowDirection: "bottom",
|
|
26928
27513
|
children: [
|
|
26929
|
-
/* @__PURE__ */ (0,
|
|
26930
|
-
/* @__PURE__ */ (0,
|
|
26931
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
26932
|
-
/* @__PURE__ */ (0,
|
|
27514
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27515
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27516
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27517
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
26933
27518
|
] }),
|
|
26934
|
-
entry.sessionCount !== void 0 && /* @__PURE__ */ (0,
|
|
26935
|
-
/* @__PURE__ */ (0,
|
|
26936
|
-
/* @__PURE__ */ (0,
|
|
26937
|
-
/* @__PURE__ */ (0,
|
|
27519
|
+
entry.sessionCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27520
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27521
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Sessions reviewing") }) }),
|
|
27522
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { children: String(entry.sessionCount) }) })
|
|
26938
27523
|
] }),
|
|
26939
|
-
entry.progressText && /* @__PURE__ */ (0,
|
|
26940
|
-
/* @__PURE__ */ (0,
|
|
26941
|
-
/* @__PURE__ */ (0,
|
|
26942
|
-
/* @__PURE__ */ (0,
|
|
27524
|
+
entry.progressText && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27525
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27526
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
|
|
27527
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "wrap", children: entry.progressText }) })
|
|
26943
27528
|
] }),
|
|
26944
|
-
topics.length > 0 && /* @__PURE__ */ (0,
|
|
26945
|
-
/* @__PURE__ */ (0,
|
|
26946
|
-
/* @__PURE__ */ (0,
|
|
27529
|
+
topics.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27530
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27531
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Topics touched ({{count}})", {
|
|
26947
27532
|
count: String(topics.length)
|
|
26948
27533
|
}) }) }),
|
|
26949
|
-
visibleTopics.map((topic) => /* @__PURE__ */ (0,
|
|
26950
|
-
hiddenTopicCount > 0 && /* @__PURE__ */ (0,
|
|
27534
|
+
visibleTopics.map((topic) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { children: ` \xB7 ${topic}` }) }, topic)),
|
|
27535
|
+
hiddenTopicCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26951
27536
|
Text,
|
|
26952
27537
|
{
|
|
26953
27538
|
color: theme.text.secondary,
|
|
@@ -26955,24 +27540,24 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
26955
27540
|
}
|
|
26956
27541
|
) })
|
|
26957
27542
|
] }),
|
|
26958
|
-
hasError && /* @__PURE__ */ (0,
|
|
26959
|
-
/* @__PURE__ */ (0,
|
|
26960
|
-
/* @__PURE__ */ (0,
|
|
26961
|
-
/* @__PURE__ */ (0,
|
|
27543
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27544
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27545
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
|
|
27546
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
|
|
26962
27547
|
] }),
|
|
26963
|
-
entry.lockReleaseError && /* @__PURE__ */ (0,
|
|
26964
|
-
/* @__PURE__ */ (0,
|
|
26965
|
-
/* @__PURE__ */ (0,
|
|
26966
|
-
/* @__PURE__ */ (0,
|
|
26967
|
-
/* @__PURE__ */ (0,
|
|
27548
|
+
entry.lockReleaseError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27549
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27550
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, children: t("Lock release warning") }) }),
|
|
27551
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, wrap: "wrap", children: entry.lockReleaseError }) }),
|
|
27552
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "wrap", children: t(
|
|
26968
27553
|
"Subsequent dreams may be skipped as locked until the next session's staleness sweep cleans the file."
|
|
26969
27554
|
) }) })
|
|
26970
27555
|
] }),
|
|
26971
|
-
entry.metadataWriteError && /* @__PURE__ */ (0,
|
|
26972
|
-
/* @__PURE__ */ (0,
|
|
26973
|
-
/* @__PURE__ */ (0,
|
|
26974
|
-
/* @__PURE__ */ (0,
|
|
26975
|
-
/* @__PURE__ */ (0,
|
|
27556
|
+
entry.metadataWriteError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27557
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27558
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, children: t("Metadata write warning") }) }),
|
|
27559
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, wrap: "wrap", children: entry.metadataWriteError }) }),
|
|
27560
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "wrap", children: t(
|
|
26976
27561
|
"The scheduler gate did not see this dream's timestamp; the next dream cycle may re-fire sooner than usual."
|
|
26977
27562
|
) }) })
|
|
26978
27563
|
] })
|
|
@@ -27048,28 +27633,28 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27048
27633
|
const shownHistory = historyActivities.slice(
|
|
27049
27634
|
Math.max(0, historyActivities.length - historyBudget)
|
|
27050
27635
|
);
|
|
27051
|
-
return /* @__PURE__ */ (0,
|
|
27636
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27052
27637
|
MaxSizedBox,
|
|
27053
27638
|
{
|
|
27054
27639
|
maxHeight,
|
|
27055
27640
|
maxWidth,
|
|
27056
27641
|
overflowDirection: "bottom",
|
|
27057
27642
|
children: [
|
|
27058
|
-
/* @__PURE__ */ (0,
|
|
27059
|
-
/* @__PURE__ */ (0,
|
|
27060
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
27061
|
-
/* @__PURE__ */ (0,
|
|
27643
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27644
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27645
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27646
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27062
27647
|
] }),
|
|
27063
|
-
parentLine !== void 0 && /* @__PURE__ */ (0,
|
|
27064
|
-
/* @__PURE__ */ (0,
|
|
27065
|
-
/* @__PURE__ */ (0,
|
|
27066
|
-
/* @__PURE__ */ (0,
|
|
27648
|
+
parentLine !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27649
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27650
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Parent") }) }),
|
|
27651
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${escapeAnsiCtrlCodes(parentLine)}` }) })
|
|
27067
27652
|
] }),
|
|
27068
|
-
visibleChildAgents.length > 0 && /* @__PURE__ */ (0,
|
|
27069
|
-
/* @__PURE__ */ (0,
|
|
27070
|
-
/* @__PURE__ */ (0,
|
|
27653
|
+
visibleChildAgents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27654
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27655
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { bold: true, dimColor: true, children: [
|
|
27071
27656
|
t("Sub-agents"),
|
|
27072
|
-
/* @__PURE__ */ (0,
|
|
27657
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27073
27658
|
Text,
|
|
27074
27659
|
{
|
|
27075
27660
|
color: theme.text.secondary,
|
|
@@ -27077,14 +27662,14 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27077
27662
|
}
|
|
27078
27663
|
)
|
|
27079
27664
|
] }) }),
|
|
27080
|
-
visibleChildAgents.map((child) => /* @__PURE__ */ (0,
|
|
27665
|
+
visibleChildAgents.map((child) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: ` ${statusGlyph(child.status)} ${escapeAnsiCtrlCodes(
|
|
27081
27666
|
`${child.subagentType ?? "agent"} \u2014 ${child.description}`
|
|
27082
27667
|
)} \xB7 ${elapsedFor(child)}` }) }, child.agentId)),
|
|
27083
|
-
hiddenChildCount > 0 && /* @__PURE__ */ (0,
|
|
27668
|
+
hiddenChildCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: ` \u2026 ${t("{{count}} more", { count: String(hiddenChildCount) })}` }) })
|
|
27084
27669
|
] }),
|
|
27085
|
-
activities.length > 0 && /* @__PURE__ */ (0,
|
|
27086
|
-
/* @__PURE__ */ (0,
|
|
27087
|
-
/* @__PURE__ */ (0,
|
|
27670
|
+
activities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27671
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27672
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
|
|
27088
27673
|
shownHistory.map((a, i) => {
|
|
27089
27674
|
const prefix = " ";
|
|
27090
27675
|
const fullLabel = sanitizeMultilineForDisplay(
|
|
@@ -27094,7 +27679,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27094
27679
|
fullLabel,
|
|
27095
27680
|
Math.max(0, maxWidth - getCachedStringWidth(prefix))
|
|
27096
27681
|
);
|
|
27097
|
-
return /* @__PURE__ */ (0,
|
|
27682
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
27098
27683
|
prefix,
|
|
27099
27684
|
label
|
|
27100
27685
|
] }) }, `${a.at}-${i}`);
|
|
@@ -27106,27 +27691,27 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27106
27691
|
// Prefix and label must be ONE string child: MaxSizedBox's wrap
|
|
27107
27692
|
// layout drops the prefix's trailing space when they arrive as
|
|
27108
27693
|
// separate segments (`> Shell` → `>Shell`).
|
|
27109
|
-
/* @__PURE__ */ (0,
|
|
27694
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.primary, children: `> ${liveLabel}` }) }, "live")
|
|
27110
27695
|
] }),
|
|
27111
|
-
entry.outputFile && /* @__PURE__ */ (0,
|
|
27112
|
-
/* @__PURE__ */ (0,
|
|
27113
|
-
/* @__PURE__ */ (0,
|
|
27114
|
-
/* @__PURE__ */ (0,
|
|
27696
|
+
entry.outputFile && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27697
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27698
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Transcript") }) }),
|
|
27699
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "wrap", children: ` ${escapeAnsiCtrlCodes(entry.outputFile)}` }) })
|
|
27115
27700
|
] }),
|
|
27116
|
-
visiblePromptLines.length > 0 && /* @__PURE__ */ (0,
|
|
27117
|
-
/* @__PURE__ */ (0,
|
|
27118
|
-
/* @__PURE__ */ (0,
|
|
27119
|
-
visiblePromptLines.map((line, i) => /* @__PURE__ */ (0,
|
|
27701
|
+
visiblePromptLines.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27702
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27703
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Prompt") }) }),
|
|
27704
|
+
visiblePromptLines.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: escapeAnsiCtrlCodes(line) || " " }) }, `prompt-${i}`))
|
|
27120
27705
|
] }),
|
|
27121
|
-
hasBlockedReason && /* @__PURE__ */ (0,
|
|
27122
|
-
/* @__PURE__ */ (0,
|
|
27123
|
-
/* @__PURE__ */ (0,
|
|
27124
|
-
/* @__PURE__ */ (0,
|
|
27706
|
+
hasBlockedReason && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27707
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27708
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Resume blocked") }) }),
|
|
27709
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: blockedReason }) })
|
|
27125
27710
|
] }),
|
|
27126
|
-
hasError && /* @__PURE__ */ (0,
|
|
27127
|
-
/* @__PURE__ */ (0,
|
|
27128
|
-
/* @__PURE__ */ (0,
|
|
27129
|
-
/* @__PURE__ */ (0,
|
|
27711
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27712
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27713
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
|
|
27714
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
|
|
27130
27715
|
] })
|
|
27131
27716
|
]
|
|
27132
27717
|
}
|
|
@@ -27145,28 +27730,28 @@ var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27145
27730
|
);
|
|
27146
27731
|
}
|
|
27147
27732
|
const hasError = entry.status === "failed" && Boolean(entry.error);
|
|
27148
|
-
return /* @__PURE__ */ (0,
|
|
27733
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27149
27734
|
MaxSizedBox,
|
|
27150
27735
|
{
|
|
27151
27736
|
maxHeight,
|
|
27152
27737
|
maxWidth,
|
|
27153
27738
|
overflowDirection: "bottom",
|
|
27154
27739
|
children: [
|
|
27155
|
-
/* @__PURE__ */ (0,
|
|
27156
|
-
/* @__PURE__ */ (0,
|
|
27157
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
27158
|
-
/* @__PURE__ */ (0,
|
|
27740
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27741
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27742
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27743
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27159
27744
|
] }),
|
|
27160
|
-
/* @__PURE__ */ (0,
|
|
27161
|
-
/* @__PURE__ */ (0,
|
|
27162
|
-
/* @__PURE__ */ (0,
|
|
27163
|
-
/* @__PURE__ */ (0,
|
|
27164
|
-
/* @__PURE__ */ (0,
|
|
27165
|
-
/* @__PURE__ */ (0,
|
|
27166
|
-
hasError && /* @__PURE__ */ (0,
|
|
27167
|
-
/* @__PURE__ */ (0,
|
|
27168
|
-
/* @__PURE__ */ (0,
|
|
27169
|
-
/* @__PURE__ */ (0,
|
|
27745
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27746
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Working dir") }) }),
|
|
27747
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.cwd }) }),
|
|
27748
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27749
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Output file") }) }),
|
|
27750
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.outputFile }) }),
|
|
27751
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27752
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27753
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
|
|
27754
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
|
|
27170
27755
|
] })
|
|
27171
27756
|
]
|
|
27172
27757
|
}
|
|
@@ -27193,25 +27778,25 @@ var MonitorDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
27193
27778
|
const hasError = Boolean(entry.error);
|
|
27194
27779
|
const errorIsFailure = entry.status === "failed";
|
|
27195
27780
|
const errorColor = errorIsFailure ? theme.status.error : theme.status.warning;
|
|
27196
|
-
return /* @__PURE__ */ (0,
|
|
27781
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27197
27782
|
MaxSizedBox,
|
|
27198
27783
|
{
|
|
27199
27784
|
maxHeight,
|
|
27200
27785
|
maxWidth,
|
|
27201
27786
|
overflowDirection: "bottom",
|
|
27202
27787
|
children: [
|
|
27203
|
-
/* @__PURE__ */ (0,
|
|
27204
|
-
/* @__PURE__ */ (0,
|
|
27205
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
27206
|
-
/* @__PURE__ */ (0,
|
|
27788
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27789
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27790
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27791
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27207
27792
|
] }),
|
|
27208
|
-
/* @__PURE__ */ (0,
|
|
27209
|
-
/* @__PURE__ */ (0,
|
|
27210
|
-
/* @__PURE__ */ (0,
|
|
27211
|
-
hasError && /* @__PURE__ */ (0,
|
|
27212
|
-
/* @__PURE__ */ (0,
|
|
27213
|
-
/* @__PURE__ */ (0,
|
|
27214
|
-
/* @__PURE__ */ (0,
|
|
27793
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27794
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Command") }) }),
|
|
27795
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.command }) }),
|
|
27796
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27797
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27798
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: errorColor, children: errorIsFailure ? t("Error") : t("Stopped because") }) }),
|
|
27799
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: errorColor, wrap: "wrap", children: entry.error }) })
|
|
27215
27800
|
] })
|
|
27216
27801
|
]
|
|
27217
27802
|
}
|
|
@@ -27244,33 +27829,33 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
27244
27829
|
);
|
|
27245
27830
|
const visibleLogs = entry.recentLogs.slice(-MAX_VISIBLE_LOG_LINES);
|
|
27246
27831
|
const hasError = Boolean(entry.error);
|
|
27247
|
-
return /* @__PURE__ */ (0,
|
|
27832
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27248
27833
|
MaxSizedBox,
|
|
27249
27834
|
{
|
|
27250
27835
|
maxHeight,
|
|
27251
27836
|
maxWidth,
|
|
27252
27837
|
overflowDirection: "bottom",
|
|
27253
27838
|
children: [
|
|
27254
|
-
/* @__PURE__ */ (0,
|
|
27255
|
-
/* @__PURE__ */ (0,
|
|
27256
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
27257
|
-
/* @__PURE__ */ (0,
|
|
27839
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27840
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27841
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27842
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27258
27843
|
] }),
|
|
27259
|
-
entry.meta?.description && /* @__PURE__ */ (0,
|
|
27260
|
-
/* @__PURE__ */ (0,
|
|
27261
|
-
/* @__PURE__ */ (0,
|
|
27844
|
+
entry.meta?.description && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27845
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27846
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "wrap", children: entry.meta.description }) })
|
|
27262
27847
|
] }),
|
|
27263
|
-
(entry.status === "pausing" || entry.status === "paused") && /* @__PURE__ */ (0,
|
|
27264
|
-
/* @__PURE__ */ (0,
|
|
27265
|
-
/* @__PURE__ */ (0,
|
|
27848
|
+
(entry.status === "pausing" || entry.status === "paused") && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27849
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27850
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, children: entry.status === "pausing" ? t(
|
|
27266
27851
|
"Pause is cooperative; in-flight work may finish before the workflow is paused. An agent call waiting on a tool approval keeps the run in this state and still counts against the active-time limit until the approval is answered."
|
|
27267
27852
|
) : t(
|
|
27268
27853
|
"Paused: no new agents will start; script code between agent calls keeps running. Press p to resume. /clear, /branch, and switching sessions cancel paused runs."
|
|
27269
27854
|
) }) })
|
|
27270
27855
|
] }),
|
|
27271
|
-
entry.sizeWarning && /* @__PURE__ */ (0,
|
|
27272
|
-
/* @__PURE__ */ (0,
|
|
27273
|
-
/* @__PURE__ */ (0,
|
|
27856
|
+
entry.sizeWarning && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27857
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27858
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, wrap: "wrap", children: `\u26A0 ${entry.sizeWarning.axis === "agents" ? t(
|
|
27274
27859
|
"Large workflow: {{agents}} agents scheduled (warning threshold {{cap}}).",
|
|
27275
27860
|
{
|
|
27276
27861
|
agents: String(entry.sizeWarning.scheduledAgents),
|
|
@@ -27286,31 +27871,31 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
27286
27871
|
}
|
|
27287
27872
|
)}` }) })
|
|
27288
27873
|
] }),
|
|
27289
|
-
/* @__PURE__ */ (0,
|
|
27290
|
-
/* @__PURE__ */ (0,
|
|
27291
|
-
entry.phases.length === 0 ? /* @__PURE__ */ (0,
|
|
27292
|
-
phaseOverflow > 0 && /* @__PURE__ */ (0,
|
|
27874
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27875
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Phases") }) }),
|
|
27876
|
+
entry.phases.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { dimColor: true, children: t("(no phase recorded yet)") }) }) : /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27877
|
+
phaseOverflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { dimColor: true, children: `+${phaseOverflow} ${t("more above")}` }) }),
|
|
27293
27878
|
visiblePhases.map((phaseTitle, i) => {
|
|
27294
27879
|
const isCurrent = isActiveWorkflowStatus(entry.status) && i === visiblePhases.length - 1 && entry.currentPhase === phaseTitle;
|
|
27295
27880
|
const marker = isCurrent ? "\u25B8" : "\xB7";
|
|
27296
27881
|
const phaseTokens = entry.perPhaseTokens.get(phaseTitle) ?? 0;
|
|
27297
27882
|
const tokenChip = phaseTokens > 0 ? ` \xB7 ${formatTokenCount(phaseTokens)}t` : "";
|
|
27298
|
-
return /* @__PURE__ */ (0,
|
|
27883
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: isCurrent ? theme.status.success : void 0, children: ` ${marker} ${phaseTitle}${tokenChip}` }) }, `${phaseTitle}-${i}`);
|
|
27299
27884
|
}),
|
|
27300
|
-
(entry.perPhaseTokens.get(null) ?? 0) > 0 && /* @__PURE__ */ (0,
|
|
27885
|
+
(entry.perPhaseTokens.get(null) ?? 0) > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { dimColor: true, children: ` \xB7 ${t("(no phase)")} \xB7 ${formatTokenCount(
|
|
27301
27886
|
entry.perPhaseTokens.get(null) ?? 0
|
|
27302
27887
|
)}t` }) })
|
|
27303
27888
|
] }),
|
|
27304
|
-
entry.recentLogs.length > 0 && /* @__PURE__ */ (0,
|
|
27305
|
-
/* @__PURE__ */ (0,
|
|
27306
|
-
/* @__PURE__ */ (0,
|
|
27307
|
-
logOverflow > 0 && /* @__PURE__ */ (0,
|
|
27308
|
-
visibleLogs.map((line, i) => /* @__PURE__ */ (0,
|
|
27889
|
+
entry.recentLogs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27890
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27891
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Logs") }) }),
|
|
27892
|
+
logOverflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { dimColor: true, children: `+${logOverflow} ${t("more above")}` }) }),
|
|
27893
|
+
visibleLogs.map((line, i) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", dimColor: true, children: line }) }, `log-${i}`))
|
|
27309
27894
|
] }),
|
|
27310
|
-
hasError && /* @__PURE__ */ (0,
|
|
27311
|
-
/* @__PURE__ */ (0,
|
|
27312
|
-
/* @__PURE__ */ (0,
|
|
27313
|
-
/* @__PURE__ */ (0,
|
|
27895
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27896
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27897
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.error, children: t("Error") }) }),
|
|
27898
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.error, wrap: "wrap", children: entry.error }) })
|
|
27314
27899
|
] })
|
|
27315
27900
|
]
|
|
27316
27901
|
}
|
|
@@ -27326,6 +27911,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27326
27911
|
moveSelectionUp,
|
|
27327
27912
|
moveSelectionDown,
|
|
27328
27913
|
closeDialog,
|
|
27914
|
+
openDialog,
|
|
27329
27915
|
enterDetail,
|
|
27330
27916
|
exitDetail,
|
|
27331
27917
|
cancelSelected,
|
|
@@ -27334,6 +27920,16 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27334
27920
|
setSelectedIndex
|
|
27335
27921
|
} = useBackgroundTaskViewActions();
|
|
27336
27922
|
const config = useConfig();
|
|
27923
|
+
const hasAgents = entries.some((entry) => entry.kind === "agent");
|
|
27924
|
+
const [agentTab, setAgentTab] = (0, import_react87.useState)("summary");
|
|
27925
|
+
const [agentScrollOffset, setAgentScrollOffset] = (0, import_react87.useState)(0);
|
|
27926
|
+
const [reviewingApproval, setReviewingApproval] = (0, import_react87.useState)(
|
|
27927
|
+
null
|
|
27928
|
+
);
|
|
27929
|
+
const agentLayout = getAgentDashboardLayout(
|
|
27930
|
+
terminalWidth,
|
|
27931
|
+
availableTerminalHeight
|
|
27932
|
+
);
|
|
27337
27933
|
const detailContentHeight = Math.max(10, availableTerminalHeight - 6);
|
|
27338
27934
|
const detailContentWidth = Math.max(10, terminalWidth - 4);
|
|
27339
27935
|
const listMaxRows = Math.max(3, availableTerminalHeight - 10);
|
|
@@ -27372,6 +27968,12 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27372
27968
|
return fromSnapshot;
|
|
27373
27969
|
}, [entries, selectedIndex, config, activityTick]);
|
|
27374
27970
|
const selectedEntryId = selectedEntry ? entryId(selectedEntry) : void 0;
|
|
27971
|
+
(0, import_react87.useEffect)(() => {
|
|
27972
|
+
setAgentScrollOffset(0);
|
|
27973
|
+
}, [selectedEntryId, agentTab, dialogOpen]);
|
|
27974
|
+
(0, import_react87.useEffect)(() => {
|
|
27975
|
+
setReviewingApproval(null);
|
|
27976
|
+
}, [selectedEntryId, dialogOpen]);
|
|
27375
27977
|
const selectedAgentIdForActivity = selectedEntry?.kind === "agent" ? selectedEntry.agentId : void 0;
|
|
27376
27978
|
const selectedApproval = selectedEntry?.kind === "agent" && selectedEntry.pendingApprovals?.[0] ? {
|
|
27377
27979
|
kind: "agent",
|
|
@@ -27382,7 +27984,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27382
27984
|
approval: selectedEntry.pendingApprovals[0],
|
|
27383
27985
|
ownerId: selectedEntry.runId
|
|
27384
27986
|
} : void 0;
|
|
27385
|
-
const
|
|
27987
|
+
const agentApprovalKey = selectedApproval?.kind === "agent" ? JSON.stringify([
|
|
27988
|
+
selectedApproval.ownerId,
|
|
27989
|
+
selectedApproval.approval.callId,
|
|
27990
|
+
selectedApproval.approval.subagentId,
|
|
27991
|
+
selectedApproval.approval.at
|
|
27992
|
+
]) : void 0;
|
|
27993
|
+
const approvalActive = Boolean(selectedApproval) && (selectedApproval?.kind === "agent" ? reviewingApproval === agentApprovalKey : isDetailMode);
|
|
27386
27994
|
const approvalUsesQuestionDialog = selectedApproval?.approval.confirmationDetails.type === "ask_user_question";
|
|
27387
27995
|
const approvalConfirmationDetails = selectedApproval ? (
|
|
27388
27996
|
// The spread restores every field except `onConfirm`; the cast is
|
|
@@ -27412,7 +28020,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27412
28020
|
}
|
|
27413
28021
|
) : void 0;
|
|
27414
28022
|
(0, import_react87.useEffect)(() => {
|
|
27415
|
-
if (!dialogOpen || !isDetailMode || !selectedAgentIdForActivity)
|
|
28023
|
+
if (!dialogOpen || !isDetailMode && !agentLayout.split || !selectedAgentIdForActivity)
|
|
28024
|
+
return;
|
|
27416
28025
|
const registry = config.getBackgroundTaskRegistry();
|
|
27417
28026
|
const onActivity = /* @__PURE__ */ __name((entry) => {
|
|
27418
28027
|
if (entry.agentId !== selectedAgentIdForActivity) return;
|
|
@@ -27425,12 +28034,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27425
28034
|
dialogMode,
|
|
27426
28035
|
isDetailMode,
|
|
27427
28036
|
config,
|
|
27428
|
-
selectedAgentIdForActivity
|
|
28037
|
+
selectedAgentIdForActivity,
|
|
28038
|
+
agentLayout.split
|
|
27429
28039
|
]);
|
|
27430
28040
|
const selectedStatus = selectedEntry?.status;
|
|
27431
28041
|
const selectedShouldTick = selectedEntry?.kind === "workflow" ? isActiveWorkflowStatus(selectedEntry.status) : selectedStatus === "running";
|
|
27432
28042
|
(0, import_react87.useEffect)(() => {
|
|
27433
|
-
if (!dialogOpen || !isDetailMode || !selectedEntryId || !selectedShouldTick)
|
|
28043
|
+
if (!dialogOpen || !isDetailMode && !agentLayout.split || !selectedEntryId || !selectedShouldTick)
|
|
27434
28044
|
return;
|
|
27435
28045
|
const id = setInterval(() => setActivityTick((n) => n + 1), 1e3);
|
|
27436
28046
|
return () => clearInterval(id);
|
|
@@ -27439,7 +28049,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27439
28049
|
dialogMode,
|
|
27440
28050
|
isDetailMode,
|
|
27441
28051
|
selectedEntryId,
|
|
27442
|
-
selectedShouldTick
|
|
28052
|
+
selectedShouldTick,
|
|
28053
|
+
agentLayout.split
|
|
27443
28054
|
]);
|
|
27444
28055
|
const initialDetailStatusRef = (0, import_react87.useRef)(null);
|
|
27445
28056
|
(0, import_react87.useEffect)(() => {
|
|
@@ -27512,6 +28123,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27512
28123
|
if (saveActive) return;
|
|
27513
28124
|
if (approvalActive && !approvalUsesQuestionDialog) {
|
|
27514
28125
|
if (key.name === "left") {
|
|
28126
|
+
setReviewingApproval(null);
|
|
27515
28127
|
exitDetail();
|
|
27516
28128
|
return;
|
|
27517
28129
|
}
|
|
@@ -27524,6 +28136,57 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27524
28136
|
if (approvalActive && approvalUsesQuestionDialog) {
|
|
27525
28137
|
return;
|
|
27526
28138
|
}
|
|
28139
|
+
if (hasAgents && (dialogMode === "list" || selectedEntry?.kind === "agent")) {
|
|
28140
|
+
if ((key.name === "left" || key.name === "right" || key.name === "tab") && !key.ctrl && !key.meta) {
|
|
28141
|
+
if (selectedEntry?.kind === "agent") {
|
|
28142
|
+
setAgentTab(
|
|
28143
|
+
(tab) => nextAgentDashboardTab(
|
|
28144
|
+
tab,
|
|
28145
|
+
key.name === "left" || key.shift ? -1 : 1
|
|
28146
|
+
)
|
|
28147
|
+
);
|
|
28148
|
+
}
|
|
28149
|
+
return;
|
|
28150
|
+
}
|
|
28151
|
+
if (key.sequence === "a" && !key.ctrl && !key.meta && selectedApproval?.kind === "agent") {
|
|
28152
|
+
if (isDetailMode || agentLayout.split)
|
|
28153
|
+
setReviewingApproval(agentApprovalKey ?? null);
|
|
28154
|
+
return;
|
|
28155
|
+
}
|
|
28156
|
+
if (isDetailMode && selectedEntry?.kind === "agent") {
|
|
28157
|
+
if (key.name === "escape") {
|
|
28158
|
+
if (pendingCancelEntryId) setPendingCancelEntryId(null);
|
|
28159
|
+
else {
|
|
28160
|
+
setReviewingApproval(null);
|
|
28161
|
+
if (dialogMode === "detail-from-panel") openDialog();
|
|
28162
|
+
else exitDetail();
|
|
28163
|
+
}
|
|
28164
|
+
return;
|
|
28165
|
+
}
|
|
28166
|
+
if (key.name === "return" || key.name === "space") return;
|
|
28167
|
+
const up = keyMatchers["selectionUp" /* SELECTION_UP */](key);
|
|
28168
|
+
const down = keyMatchers["selectionDown" /* SELECTION_DOWN */](key);
|
|
28169
|
+
const pageUp = key.name === "pageup";
|
|
28170
|
+
const pageDown = key.name === "pagedown";
|
|
28171
|
+
if (up || down || pageUp || pageDown) {
|
|
28172
|
+
const maxOffset = Math.max(
|
|
28173
|
+
0,
|
|
28174
|
+
getAgentDashboardLines(
|
|
28175
|
+
selectedEntry,
|
|
28176
|
+
agentTab,
|
|
28177
|
+
agentLayout.detailWidth,
|
|
28178
|
+
entries
|
|
28179
|
+
).length - agentLayout.pageSize
|
|
28180
|
+
);
|
|
28181
|
+
const direction = up || pageUp ? -1 : 1;
|
|
28182
|
+
const step = pageUp || pageDown ? agentLayout.pageSize : 1;
|
|
28183
|
+
setAgentScrollOffset(
|
|
28184
|
+
(offset) => Math.max(0, Math.min(maxOffset, offset + direction * step))
|
|
28185
|
+
);
|
|
28186
|
+
return;
|
|
28187
|
+
}
|
|
28188
|
+
}
|
|
28189
|
+
}
|
|
27527
28190
|
if (dialogMode === "list") {
|
|
27528
28191
|
if (keyMatchers["selectionUp" /* SELECTION_UP */](key)) {
|
|
27529
28192
|
moveSelectionUp();
|
|
@@ -27633,7 +28296,95 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27633
28296
|
}
|
|
27634
28297
|
if (workflowSaveTarget) hints.push("s save");
|
|
27635
28298
|
}
|
|
27636
|
-
|
|
28299
|
+
if (approvalActive && selectedApproval?.kind === "agent" && approvalConfirmationDetails && selectedEntry?.kind === "agent") {
|
|
28300
|
+
const nestedOwner = selectedApproval.approval.subagentId;
|
|
28301
|
+
const headingRows = nestedOwner ? 3 : 2;
|
|
28302
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
28303
|
+
Box_default,
|
|
28304
|
+
{
|
|
28305
|
+
flexDirection: "column",
|
|
28306
|
+
width: terminalWidth,
|
|
28307
|
+
height: availableTerminalHeight,
|
|
28308
|
+
flexShrink: 0,
|
|
28309
|
+
children: [
|
|
28310
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
28311
|
+
Box_default,
|
|
28312
|
+
{
|
|
28313
|
+
flexDirection: "column",
|
|
28314
|
+
width: terminalWidth,
|
|
28315
|
+
height: Math.max(1, availableTerminalHeight - 1),
|
|
28316
|
+
borderStyle: glyphs().borderStyle,
|
|
28317
|
+
borderColor: theme.status.warning,
|
|
28318
|
+
paddingX: 1,
|
|
28319
|
+
flexShrink: 0,
|
|
28320
|
+
children: [
|
|
28321
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, wrap: "truncate-end", children: t("Background agent needs approval") }),
|
|
28322
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: dashboardSingleLine(
|
|
28323
|
+
selectedEntry.description,
|
|
28324
|
+
Math.max(1, terminalWidth - 4)
|
|
28325
|
+
) }),
|
|
28326
|
+
nestedOwner && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
|
|
28327
|
+
t("from nested agent"),
|
|
28328
|
+
":",
|
|
28329
|
+
" ",
|
|
28330
|
+
dashboardSingleLine(nestedOwner, Math.max(1, terminalWidth - 4))
|
|
28331
|
+
] }),
|
|
28332
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
28333
|
+
ToolConfirmationMessage,
|
|
28334
|
+
{
|
|
28335
|
+
confirmationDetails: approvalConfirmationDetails,
|
|
28336
|
+
config,
|
|
28337
|
+
isFocused: true,
|
|
28338
|
+
contentWidth: Math.max(1, terminalWidth - 4),
|
|
28339
|
+
availableTerminalHeight: Math.max(
|
|
28340
|
+
1,
|
|
28341
|
+
availableTerminalHeight - headingRows - 3
|
|
28342
|
+
),
|
|
28343
|
+
compactMode: true
|
|
28344
|
+
}
|
|
28345
|
+
)
|
|
28346
|
+
]
|
|
28347
|
+
}
|
|
28348
|
+
),
|
|
28349
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: showCancelConfirmHint ? t(
|
|
28350
|
+
"Press x again to stop; this ends the blocking turn. Esc cancels."
|
|
28351
|
+
) : approvalUsesQuestionDialog ? t("Approve or deny the request above") : t("\u2190 back \xB7 x stop") })
|
|
28352
|
+
]
|
|
28353
|
+
}
|
|
28354
|
+
);
|
|
28355
|
+
}
|
|
28356
|
+
if (hasAgents && (dialogMode === "list" || selectedEntry?.kind === "agent") && !approvalActive && !saveActive) {
|
|
28357
|
+
const actionHints = [];
|
|
28358
|
+
if (selectedEntry?.kind === "agent" && selectedEntry.pendingApprovals?.length)
|
|
28359
|
+
actionHints.push(t("a review approval"));
|
|
28360
|
+
if (selectedEntry && isStoppableEntry(selectedEntry))
|
|
28361
|
+
actionHints.push(t("x stop"));
|
|
28362
|
+
if (selectedEntryAllowsResume) actionHints.push(t("r resume"));
|
|
28363
|
+
if (selectedEntry?.kind === "agent" && selectedEntry.status === "paused")
|
|
28364
|
+
actionHints.push(t("x abandon"));
|
|
28365
|
+
if (selectedWorkflowPauseHint) actionHints.push(selectedWorkflowPauseHint);
|
|
28366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
28367
|
+
AgentDashboard,
|
|
28368
|
+
{
|
|
28369
|
+
entries,
|
|
28370
|
+
selectedEntry,
|
|
28371
|
+
selectedIndex,
|
|
28372
|
+
detailFocused: isDetailMode,
|
|
28373
|
+
tab: agentTab,
|
|
28374
|
+
scrollOffset: agentScrollOffset,
|
|
28375
|
+
width: terminalWidth,
|
|
28376
|
+
height: availableTerminalHeight,
|
|
28377
|
+
actionHints,
|
|
28378
|
+
footerMessage: showCancelConfirmHint ? t(
|
|
28379
|
+
"Press x again to stop; this ends the blocking turn. Esc cancels."
|
|
28380
|
+
) : pauseRejected?.entryKey === selectedEntryKey ? t(
|
|
28381
|
+
"Pause/resume was rejected; the workflow state changed. Try again."
|
|
28382
|
+
) : void 0,
|
|
28383
|
+
renderOtherDetail: (entry, height, width) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(DetailBody, { entry, maxHeight: height, maxWidth: width })
|
|
28384
|
+
}
|
|
28385
|
+
);
|
|
28386
|
+
}
|
|
28387
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27637
28388
|
Box_default,
|
|
27638
28389
|
{
|
|
27639
28390
|
flexDirection: "column",
|
|
@@ -27642,32 +28393,32 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27642
28393
|
marginTop: 1,
|
|
27643
28394
|
paddingX: 1,
|
|
27644
28395
|
children: [
|
|
27645
|
-
dialogMode === "list" && /* @__PURE__ */ (0,
|
|
27646
|
-
/* @__PURE__ */ (0,
|
|
27647
|
-
dialogMode === "list" ? /* @__PURE__ */ (0,
|
|
28396
|
+
dialogMode === "list" && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: t("Background tasks") }) }),
|
|
28397
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { marginTop: dialogMode === "list" ? 1 : 0, flexDirection: "column", children: [
|
|
28398
|
+
dialogMode === "list" ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27648
28399
|
ListBody,
|
|
27649
28400
|
{
|
|
27650
28401
|
entries,
|
|
27651
28402
|
selectedIndex,
|
|
27652
28403
|
maxRows: listMaxRows
|
|
27653
28404
|
}
|
|
27654
|
-
) : selectedEntry ? /* @__PURE__ */ (0,
|
|
28405
|
+
) : selectedEntry ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27655
28406
|
DetailBody,
|
|
27656
28407
|
{
|
|
27657
28408
|
entry: selectedEntry,
|
|
27658
28409
|
maxHeight: approvalActive ? Math.max(6, Math.floor(detailContentHeight / 2)) : detailContentHeight,
|
|
27659
28410
|
maxWidth: detailContentWidth
|
|
27660
28411
|
}
|
|
27661
|
-
) : /* @__PURE__ */ (0,
|
|
27662
|
-
approvalActive && approvalConfirmationDetails && /* @__PURE__ */ (0,
|
|
27663
|
-
/* @__PURE__ */ (0,
|
|
27664
|
-
selectedApproval?.kind === "agent" && selectedApproval.approval.subagentId !== void 0 && /* @__PURE__ */ (0,
|
|
28412
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { paddingX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: t("No entry to show.") }) }),
|
|
28413
|
+
approvalActive && approvalConfirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, paddingX: 1, children: [
|
|
28414
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, children: selectedApproval?.kind === "workflow" ? `[workflow] ${t("needs approval")}` : t("Background agent needs approval") }),
|
|
28415
|
+
selectedApproval?.kind === "agent" && selectedApproval.approval.subagentId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
27665
28416
|
t("from nested agent"),
|
|
27666
28417
|
":",
|
|
27667
28418
|
" ",
|
|
27668
28419
|
selectedApproval.approval.subagentId
|
|
27669
28420
|
] }),
|
|
27670
|
-
/* @__PURE__ */ (0,
|
|
28421
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27671
28422
|
ToolConfirmationMessage,
|
|
27672
28423
|
{
|
|
27673
28424
|
confirmationDetails: approvalConfirmationDetails,
|
|
@@ -27683,7 +28434,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27683
28434
|
)
|
|
27684
28435
|
] })
|
|
27685
28436
|
] }),
|
|
27686
|
-
saveActive && workflowSaveTarget && config ? /* @__PURE__ */ (0,
|
|
28437
|
+
saveActive && workflowSaveTarget && config ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27687
28438
|
WorkflowSaveOverlay,
|
|
27688
28439
|
{
|
|
27689
28440
|
script: workflowSaveTarget.script,
|
|
@@ -27692,16 +28443,16 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27692
28443
|
isActive: saveActive,
|
|
27693
28444
|
onClose: () => setSaveActive(false)
|
|
27694
28445
|
}
|
|
27695
|
-
) : /* @__PURE__ */ (0,
|
|
28446
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { marginTop: 1, paddingX: 1, children: pauseRejected && pauseRejected.entryKey === selectedEntryKey ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.status.warning, children: t(
|
|
27696
28447
|
"Pause/resume was rejected; the workflow state changed. Try again."
|
|
27697
|
-
) }) : /* @__PURE__ */ (0,
|
|
28448
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: hints.join(" \xB7 ") }) })
|
|
27698
28449
|
]
|
|
27699
28450
|
}
|
|
27700
28451
|
);
|
|
27701
28452
|
}, "BackgroundTasksDialog");
|
|
27702
28453
|
|
|
27703
28454
|
// packages/cli/src/ui/components/DialogManager.tsx
|
|
27704
|
-
var
|
|
28455
|
+
var import_jsx_runtime111 = __toESM(require_jsx_runtime(), 1);
|
|
27705
28456
|
var DialogManager = /* @__PURE__ */ __name(({
|
|
27706
28457
|
addItem,
|
|
27707
28458
|
terminalWidth
|
|
@@ -27720,7 +28471,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27720
28471
|
const constrainedDialogHeight = constrainHeight ? dialogMaxHeight : void 0;
|
|
27721
28472
|
const listDialogHeight = dialogMaxHeight;
|
|
27722
28473
|
if (uiState.showWelcomeBackDialog && uiState.welcomeBackInfo?.hasHistory) {
|
|
27723
|
-
return /* @__PURE__ */ (0,
|
|
28474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27724
28475
|
WelcomeBackDialog,
|
|
27725
28476
|
{
|
|
27726
28477
|
welcomeBackInfo: uiState.welcomeBackInfo,
|
|
@@ -27730,7 +28481,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27730
28481
|
);
|
|
27731
28482
|
}
|
|
27732
28483
|
if (uiState.showWorktreeExitDialog && uiState.activeWorktree) {
|
|
27733
|
-
return /* @__PURE__ */ (0,
|
|
28484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27734
28485
|
WorktreeExitDialog,
|
|
27735
28486
|
{
|
|
27736
28487
|
slug: uiState.activeWorktree.slug,
|
|
@@ -27744,10 +28495,10 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27744
28495
|
);
|
|
27745
28496
|
}
|
|
27746
28497
|
if (uiState.showIdeRestartPrompt) {
|
|
27747
|
-
return /* @__PURE__ */ (0,
|
|
28498
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(IdeTrustChangeDialog, { reason: uiState.ideTrustRestartReason });
|
|
27748
28499
|
}
|
|
27749
28500
|
if (uiState.shouldShowIdePrompt) {
|
|
27750
|
-
return /* @__PURE__ */ (0,
|
|
28501
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27751
28502
|
IdeIntegrationNudge,
|
|
27752
28503
|
{
|
|
27753
28504
|
ide: uiState.currentIDE,
|
|
@@ -27756,7 +28507,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27756
28507
|
);
|
|
27757
28508
|
}
|
|
27758
28509
|
if (uiState.shouldShowCommandMigrationNudge) {
|
|
27759
|
-
return /* @__PURE__ */ (0,
|
|
28510
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27760
28511
|
CommandFormatMigrationNudge,
|
|
27761
28512
|
{
|
|
27762
28513
|
tomlFiles: uiState.commandMigrationTomlFiles,
|
|
@@ -27765,7 +28516,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27765
28516
|
);
|
|
27766
28517
|
}
|
|
27767
28518
|
if (uiState.isFolderTrustDialogOpen) {
|
|
27768
|
-
return /* @__PURE__ */ (0,
|
|
28519
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27769
28520
|
FolderTrustDialog,
|
|
27770
28521
|
{
|
|
27771
28522
|
onSelect: uiActions.handleFolderTrustSelect,
|
|
@@ -27774,7 +28525,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27774
28525
|
);
|
|
27775
28526
|
}
|
|
27776
28527
|
if (uiState.isMcpApprovalDialogOpen && uiState.currentMcpApproval) {
|
|
27777
|
-
return /* @__PURE__ */ (0,
|
|
28528
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27778
28529
|
MCPServerApprovalDialog,
|
|
27779
28530
|
{
|
|
27780
28531
|
serverName: uiState.currentMcpApproval.name,
|
|
@@ -27787,7 +28538,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27787
28538
|
);
|
|
27788
28539
|
}
|
|
27789
28540
|
if (uiState.shellConfirmationRequest) {
|
|
27790
|
-
return /* @__PURE__ */ (0,
|
|
28541
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27791
28542
|
ShellConfirmationDialog,
|
|
27792
28543
|
{
|
|
27793
28544
|
request: uiState.shellConfirmationRequest,
|
|
@@ -27797,7 +28548,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27797
28548
|
);
|
|
27798
28549
|
}
|
|
27799
28550
|
if (uiState.loopDetectionConfirmationRequest) {
|
|
27800
|
-
return /* @__PURE__ */ (0,
|
|
28551
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27801
28552
|
LoopDetectionConfirmation,
|
|
27802
28553
|
{
|
|
27803
28554
|
onComplete: uiState.loopDetectionConfirmationRequest.onComplete
|
|
@@ -27805,7 +28556,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27805
28556
|
);
|
|
27806
28557
|
}
|
|
27807
28558
|
if (uiState.confirmationRequest) {
|
|
27808
|
-
return /* @__PURE__ */ (0,
|
|
28559
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27809
28560
|
ConsentPrompt,
|
|
27810
28561
|
{
|
|
27811
28562
|
prompt: uiState.confirmationRequest.prompt,
|
|
@@ -27817,7 +28568,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27817
28568
|
}
|
|
27818
28569
|
if (uiState.confirmUpdateExtensionRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
|
|
27819
28570
|
const request = uiState.confirmUpdateExtensionRequests[0];
|
|
27820
|
-
return /* @__PURE__ */ (0,
|
|
28571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27821
28572
|
ConsentPrompt,
|
|
27822
28573
|
{
|
|
27823
28574
|
prompt: request.prompt,
|
|
@@ -27828,7 +28579,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27828
28579
|
);
|
|
27829
28580
|
}
|
|
27830
28581
|
if (uiState.providerUpdateRequest) {
|
|
27831
|
-
return /* @__PURE__ */ (0,
|
|
28582
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27832
28583
|
ProviderUpdatePrompt,
|
|
27833
28584
|
{
|
|
27834
28585
|
entries: uiState.providerUpdateRequest.entries,
|
|
@@ -27838,7 +28589,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27838
28589
|
}
|
|
27839
28590
|
if (uiState.settingInputRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
|
|
27840
28591
|
const request = uiState.settingInputRequests[0];
|
|
27841
|
-
return /* @__PURE__ */ (0,
|
|
28592
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27842
28593
|
SettingInputPrompt,
|
|
27843
28594
|
{
|
|
27844
28595
|
settingName: request.settingName,
|
|
@@ -27853,7 +28604,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27853
28604
|
}
|
|
27854
28605
|
if (uiState.pluginChoiceRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
|
|
27855
28606
|
const request = uiState.pluginChoiceRequests[0];
|
|
27856
|
-
return /* @__PURE__ */ (0,
|
|
28607
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27857
28608
|
PluginChoicePrompt,
|
|
27858
28609
|
{
|
|
27859
28610
|
marketplaceName: request.marketplaceName,
|
|
@@ -27867,9 +28618,9 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27867
28618
|
);
|
|
27868
28619
|
}
|
|
27869
28620
|
if (uiState.isThemeDialogOpen) {
|
|
27870
|
-
return /* @__PURE__ */ (0,
|
|
27871
|
-
uiState.themeError && /* @__PURE__ */ (0,
|
|
27872
|
-
/* @__PURE__ */ (0,
|
|
28621
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
28622
|
+
uiState.themeError && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.status.error, children: uiState.themeError }) }),
|
|
28623
|
+
/* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27873
28624
|
ThemeDialog,
|
|
27874
28625
|
{
|
|
27875
28626
|
onSelect: uiActions.handleThemeSelect,
|
|
@@ -27882,9 +28633,9 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27882
28633
|
] });
|
|
27883
28634
|
}
|
|
27884
28635
|
if (uiState.isEditorDialogOpen) {
|
|
27885
|
-
return /* @__PURE__ */ (0,
|
|
27886
|
-
uiState.editorError && /* @__PURE__ */ (0,
|
|
27887
|
-
/* @__PURE__ */ (0,
|
|
28636
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
28637
|
+
uiState.editorError && /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { marginBottom: 1, children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Text, { color: theme.status.error, children: uiState.editorError }) }),
|
|
28638
|
+
/* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27888
28639
|
EditorSettingsDialog,
|
|
27889
28640
|
{
|
|
27890
28641
|
onSelect: uiActions.handleEditorSelect,
|
|
@@ -27895,7 +28646,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27895
28646
|
] });
|
|
27896
28647
|
}
|
|
27897
28648
|
if (uiState.isModelDialogOpen) {
|
|
27898
|
-
return /* @__PURE__ */ (0,
|
|
28649
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27899
28650
|
ModelDialog,
|
|
27900
28651
|
{
|
|
27901
28652
|
onClose: uiActions.closeModelDialog,
|
|
@@ -27910,7 +28661,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27910
28661
|
);
|
|
27911
28662
|
}
|
|
27912
28663
|
if (uiState.isSettingsDialogOpen) {
|
|
27913
|
-
return /* @__PURE__ */ (0,
|
|
28664
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27914
28665
|
SettingsDialog,
|
|
27915
28666
|
{
|
|
27916
28667
|
settings,
|
|
@@ -27941,7 +28692,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27941
28692
|
) });
|
|
27942
28693
|
}
|
|
27943
28694
|
if (uiState.isStatusLineDialogOpen) {
|
|
27944
|
-
return /* @__PURE__ */ (0,
|
|
28695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27945
28696
|
StatusLineDialog,
|
|
27946
28697
|
{
|
|
27947
28698
|
settings,
|
|
@@ -27955,10 +28706,10 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27955
28706
|
);
|
|
27956
28707
|
}
|
|
27957
28708
|
if (uiState.isMemoryDialogOpen) {
|
|
27958
|
-
return /* @__PURE__ */ (0,
|
|
28709
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(MemoryDialog, { onClose: uiActions.closeMemoryDialog });
|
|
27959
28710
|
}
|
|
27960
28711
|
if (uiState.isHelpDialogOpen) {
|
|
27961
|
-
return /* @__PURE__ */ (0,
|
|
28712
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27962
28713
|
Help,
|
|
27963
28714
|
{
|
|
27964
28715
|
commands: uiState.slashCommands,
|
|
@@ -27972,7 +28723,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27972
28723
|
}
|
|
27973
28724
|
if (uiState.isApprovalModeDialogOpen) {
|
|
27974
28725
|
const currentMode = config.getApprovalMode();
|
|
27975
|
-
return /* @__PURE__ */ (0,
|
|
28726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27976
28727
|
ApprovalModeDialog,
|
|
27977
28728
|
{
|
|
27978
28729
|
settings,
|
|
@@ -27983,7 +28734,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27983
28734
|
) });
|
|
27984
28735
|
}
|
|
27985
28736
|
if (uiState.isEffortDialogOpen) {
|
|
27986
|
-
return /* @__PURE__ */ (0,
|
|
28737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27987
28738
|
EffortDialog,
|
|
27988
28739
|
{
|
|
27989
28740
|
currentEffort: config.getReasoningEffort(),
|
|
@@ -27993,7 +28744,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27993
28744
|
) });
|
|
27994
28745
|
}
|
|
27995
28746
|
if (uiState.isOutputStyleDialogOpen) {
|
|
27996
|
-
return /* @__PURE__ */ (0,
|
|
28747
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27997
28748
|
OutputStyleDialog,
|
|
27998
28749
|
{
|
|
27999
28750
|
currentStyleName: config.getOutputStyle()?.name,
|
|
@@ -28003,7 +28754,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28003
28754
|
) });
|
|
28004
28755
|
}
|
|
28005
28756
|
if (uiState.activeArenaDialog === "start") {
|
|
28006
|
-
return /* @__PURE__ */ (0,
|
|
28757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28007
28758
|
ArenaStartDialog,
|
|
28008
28759
|
{
|
|
28009
28760
|
onClose: () => uiActions.closeArenaDialog(),
|
|
@@ -28014,7 +28765,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28014
28765
|
if (uiState.activeArenaDialog === "status") {
|
|
28015
28766
|
const arenaManager = config.getArenaManager();
|
|
28016
28767
|
if (arenaManager) {
|
|
28017
|
-
return /* @__PURE__ */ (0,
|
|
28768
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28018
28769
|
ArenaStatusDialog,
|
|
28019
28770
|
{
|
|
28020
28771
|
manager: arenaManager,
|
|
@@ -28025,7 +28776,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28025
28776
|
}
|
|
28026
28777
|
}
|
|
28027
28778
|
if (uiState.activeArenaDialog === "stop") {
|
|
28028
|
-
return /* @__PURE__ */ (0,
|
|
28779
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28029
28780
|
ArenaStopDialog,
|
|
28030
28781
|
{
|
|
28031
28782
|
config,
|
|
@@ -28037,7 +28788,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28037
28788
|
if (uiState.activeArenaDialog === "select") {
|
|
28038
28789
|
const arenaManager = config.getArenaManager();
|
|
28039
28790
|
if (arenaManager) {
|
|
28040
|
-
return /* @__PURE__ */ (0,
|
|
28791
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28041
28792
|
ArenaSelectDialog,
|
|
28042
28793
|
{
|
|
28043
28794
|
manager: arenaManager,
|
|
@@ -28049,11 +28800,11 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28049
28800
|
}
|
|
28050
28801
|
}
|
|
28051
28802
|
if (uiState.auth.isAuthDialogOpen || uiState.auth.authError) {
|
|
28052
|
-
return /* @__PURE__ */ (0,
|
|
28803
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(AuthDialog, {}) });
|
|
28053
28804
|
}
|
|
28054
28805
|
if (uiState.auth.isAuthenticating) {
|
|
28055
28806
|
if (uiState.auth.pendingAuthType === "openai" /* USE_OPENAI */ && uiState.auth.externalAuthState) {
|
|
28056
|
-
return /* @__PURE__ */ (0,
|
|
28807
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28057
28808
|
ExternalAuthProgress,
|
|
28058
28809
|
{
|
|
28059
28810
|
title: uiState.auth.externalAuthState.title,
|
|
@@ -28068,13 +28819,13 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28068
28819
|
}
|
|
28069
28820
|
}
|
|
28070
28821
|
if (uiState.isTrustDialogOpen) {
|
|
28071
|
-
return /* @__PURE__ */ (0,
|
|
28822
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(TrustDialog, { onExit: uiActions.closeTrustDialog, addItem });
|
|
28072
28823
|
}
|
|
28073
28824
|
if (uiState.isPermissionsDialogOpen) {
|
|
28074
|
-
return /* @__PURE__ */ (0,
|
|
28825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(PermissionsDialog, { onExit: uiActions.closePermissionsDialog });
|
|
28075
28826
|
}
|
|
28076
28827
|
if (uiState.isSubagentCreateDialogOpen) {
|
|
28077
|
-
return /* @__PURE__ */ (0,
|
|
28828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28078
28829
|
AgentCreationWizard,
|
|
28079
28830
|
{
|
|
28080
28831
|
onClose: uiActions.closeSubagentCreateDialog,
|
|
@@ -28083,7 +28834,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28083
28834
|
);
|
|
28084
28835
|
}
|
|
28085
28836
|
if (uiState.isAgentsManagerDialogOpen) {
|
|
28086
|
-
return /* @__PURE__ */ (0,
|
|
28837
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28087
28838
|
AgentsManagerDialog,
|
|
28088
28839
|
{
|
|
28089
28840
|
onClose: uiActions.closeAgentsManagerDialog,
|
|
@@ -28092,7 +28843,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28092
28843
|
);
|
|
28093
28844
|
}
|
|
28094
28845
|
if (uiState.isSkillsManagerDialogOpen) {
|
|
28095
|
-
return /* @__PURE__ */ (0,
|
|
28846
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28096
28847
|
SkillsManagerDialog,
|
|
28097
28848
|
{
|
|
28098
28849
|
settings,
|
|
@@ -28106,7 +28857,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28106
28857
|
);
|
|
28107
28858
|
}
|
|
28108
28859
|
if (uiState.isExtensionsManagerDialogOpen) {
|
|
28109
|
-
return /* @__PURE__ */ (0,
|
|
28860
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28110
28861
|
ExtensionsManagerDialog,
|
|
28111
28862
|
{
|
|
28112
28863
|
onClose: uiActions.closeExtensionsManagerDialog,
|
|
@@ -28115,19 +28866,19 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28115
28866
|
);
|
|
28116
28867
|
}
|
|
28117
28868
|
if (uiState.isHooksDialogOpen) {
|
|
28118
|
-
return /* @__PURE__ */ (0,
|
|
28869
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(HooksManagementDialog, { onClose: uiActions.closeHooksDialog });
|
|
28119
28870
|
}
|
|
28120
28871
|
if (uiState.isStatsDialogOpen) {
|
|
28121
|
-
return /* @__PURE__ */ (0,
|
|
28872
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(StatsDialog, { onClose: uiActions.closeStatsDialog, width: mainAreaWidth });
|
|
28122
28873
|
}
|
|
28123
28874
|
if (uiState.isRemoteDialogOpen) {
|
|
28124
|
-
return /* @__PURE__ */ (0,
|
|
28875
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(RemoteControlDialog, { onClose: uiActions.closeRemoteDialog });
|
|
28125
28876
|
}
|
|
28126
28877
|
if (uiState.isMcpDialogOpen) {
|
|
28127
|
-
return /* @__PURE__ */ (0,
|
|
28878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(MCPManagementDialog, { onClose: uiActions.closeMcpDialog });
|
|
28128
28879
|
}
|
|
28129
28880
|
if (uiState.isResumeDialogOpen) {
|
|
28130
|
-
return /* @__PURE__ */ (0,
|
|
28881
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28131
28882
|
SessionPicker,
|
|
28132
28883
|
{
|
|
28133
28884
|
sessionService: config.getSessionService(),
|
|
@@ -28141,7 +28892,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28141
28892
|
}
|
|
28142
28893
|
if (uiState.isDeleteDialogOpen) {
|
|
28143
28894
|
const currentSessionId = config.getSessionId();
|
|
28144
|
-
return /* @__PURE__ */ (0,
|
|
28895
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28145
28896
|
SessionPicker,
|
|
28146
28897
|
{
|
|
28147
28898
|
sessionService: config.getSessionService(),
|
|
@@ -28156,7 +28907,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28156
28907
|
);
|
|
28157
28908
|
}
|
|
28158
28909
|
if (uiState.isRewindSelectorOpen) {
|
|
28159
|
-
return /* @__PURE__ */ (0,
|
|
28910
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28160
28911
|
RewindSelector,
|
|
28161
28912
|
{
|
|
28162
28913
|
history: uiState.history,
|
|
@@ -28168,7 +28919,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28168
28919
|
);
|
|
28169
28920
|
}
|
|
28170
28921
|
if (uiState.isDiffDialogOpen) {
|
|
28171
|
-
return /* @__PURE__ */ (0,
|
|
28922
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28172
28923
|
DiffDialog,
|
|
28173
28924
|
{
|
|
28174
28925
|
history: uiState.history,
|
|
@@ -28180,7 +28931,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28180
28931
|
);
|
|
28181
28932
|
}
|
|
28182
28933
|
if (uiState.isSkillReviewDialogOpen && uiState.skillReviewPending) {
|
|
28183
|
-
return /* @__PURE__ */ (0,
|
|
28934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28184
28935
|
SkillReviewDialog,
|
|
28185
28936
|
{
|
|
28186
28937
|
skills: uiState.skillReviewPending.skills,
|
|
@@ -28193,11 +28944,14 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28193
28944
|
);
|
|
28194
28945
|
}
|
|
28195
28946
|
if (bgTasksDialogOpen) {
|
|
28196
|
-
return /* @__PURE__ */ (0,
|
|
28947
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28197
28948
|
BackgroundTasksDialog,
|
|
28198
28949
|
{
|
|
28199
28950
|
availableTerminalHeight: listDialogHeight,
|
|
28200
|
-
terminalWidth:
|
|
28951
|
+
terminalWidth: Math.max(
|
|
28952
|
+
1,
|
|
28953
|
+
terminalWidth - sideMargin(getLayoutTier(terminalWidth)) * 2
|
|
28954
|
+
)
|
|
28201
28955
|
}
|
|
28202
28956
|
);
|
|
28203
28957
|
}
|
|
@@ -28270,7 +29024,7 @@ function isNarrowWidth(width) {
|
|
|
28270
29024
|
__name(isNarrowWidth, "isNarrowWidth");
|
|
28271
29025
|
|
|
28272
29026
|
// packages/cli/src/ui/components/LoadingIndicator.tsx
|
|
28273
|
-
var
|
|
29027
|
+
var import_jsx_runtime112 = __toESM(require_jsx_runtime(), 1);
|
|
28274
29028
|
var LoadingIndicator = /* @__PURE__ */ __name(({
|
|
28275
29029
|
currentLoadingPhrase,
|
|
28276
29030
|
elapsedTime,
|
|
@@ -28311,34 +29065,34 @@ var LoadingIndicator = /* @__PURE__ */ __name(({
|
|
|
28311
29065
|
time: timeStr,
|
|
28312
29066
|
tokens: `${tokenStr}${tokenRateStr}`
|
|
28313
29067
|
}) : null;
|
|
28314
|
-
return /* @__PURE__ */ (0,
|
|
28315
|
-
/* @__PURE__ */ (0,
|
|
29068
|
+
return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Box_default, { paddingLeft: 2, flexDirection: "column", children: [
|
|
29069
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(
|
|
28316
29070
|
Box_default,
|
|
28317
29071
|
{
|
|
28318
29072
|
width: "100%",
|
|
28319
29073
|
flexDirection: isNarrow ? "column" : "row",
|
|
28320
29074
|
alignItems: isNarrow ? "flex-start" : "center",
|
|
28321
29075
|
children: [
|
|
28322
|
-
/* @__PURE__ */ (0,
|
|
28323
|
-
/* @__PURE__ */ (0,
|
|
29076
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Box_default, { children: [
|
|
29077
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
28324
29078
|
RespondingSpinner,
|
|
28325
29079
|
{
|
|
28326
29080
|
nonRespondingDisplay: streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */ ? WAITING_SPINNER_FRAME : ""
|
|
28327
29081
|
}
|
|
28328
29082
|
) }),
|
|
28329
|
-
primaryText && /* @__PURE__ */ (0,
|
|
28330
|
-
!isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0,
|
|
29083
|
+
primaryText && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.accent, wrap: "truncate-end", children: primaryText }),
|
|
29084
|
+
!isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
28331
29085
|
" ",
|
|
28332
29086
|
cancelAndTimerContent
|
|
28333
29087
|
] })
|
|
28334
29088
|
] }),
|
|
28335
|
-
!isNarrow && /* @__PURE__ */ (0,
|
|
28336
|
-
!isNarrow && rightContent && /* @__PURE__ */ (0,
|
|
29089
|
+
!isNarrow && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { flexGrow: 1 }),
|
|
29090
|
+
!isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: rightContent })
|
|
28337
29091
|
]
|
|
28338
29092
|
}
|
|
28339
29093
|
),
|
|
28340
|
-
isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0,
|
|
28341
|
-
isNarrow && rightContent && /* @__PURE__ */ (0,
|
|
29094
|
+
isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.secondary, children: cancelAndTimerContent }) }),
|
|
29095
|
+
isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: rightContent })
|
|
28342
29096
|
] });
|
|
28343
29097
|
}, "LoadingIndicator");
|
|
28344
29098
|
function formatTokensPerSecond(tokensPerSecond) {
|
|
@@ -28349,7 +29103,7 @@ function formatTokensPerSecond(tokensPerSecond) {
|
|
|
28349
29103
|
return `${rounded} t/s`;
|
|
28350
29104
|
}
|
|
28351
29105
|
__name(formatTokensPerSecond, "formatTokensPerSecond");
|
|
28352
|
-
var LiveLoadingIndicator = /* @__PURE__ */ __name(({ elapsedClock, ...props }) => /* @__PURE__ */ (0,
|
|
29106
|
+
var LiveLoadingIndicator = /* @__PURE__ */ __name(({ elapsedClock, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(LoadingIndicator, { ...props, elapsedTime: useElapsedSeconds(elapsedClock) }), "LiveLoadingIndicator");
|
|
28353
29107
|
|
|
28354
29108
|
// packages/cli/src/ui/components/InputPrompt.tsx
|
|
28355
29109
|
init_esbuild_shims();
|
|
@@ -28393,7 +29147,7 @@ __name(CompletionCategoryMouseController, "CompletionCategoryMouseController");
|
|
|
28393
29147
|
// packages/cli/src/ui/components/PrepareLabel.tsx
|
|
28394
29148
|
init_esbuild_shims();
|
|
28395
29149
|
var import_react91 = __toESM(require_react(), 1);
|
|
28396
|
-
var
|
|
29150
|
+
var import_jsx_runtime113 = __toESM(require_jsx_runtime(), 1);
|
|
28397
29151
|
var MAX_WIDTH = 150;
|
|
28398
29152
|
var _PrepareLabel = /* @__PURE__ */ __name(({
|
|
28399
29153
|
label,
|
|
@@ -28405,7 +29159,7 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
|
|
|
28405
29159
|
const hasMatch = matchedIndex !== void 0 && matchedIndex >= 0 && matchedIndex < label.length && userInput.length > 0;
|
|
28406
29160
|
if (!hasMatch) {
|
|
28407
29161
|
const display = isExpanded ? label : label.length > MAX_WIDTH ? label.slice(0, MAX_WIDTH) + "..." : label;
|
|
28408
|
-
return /* @__PURE__ */ (0,
|
|
29162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { wrap: "wrap", color: textColor, children: display });
|
|
28409
29163
|
}
|
|
28410
29164
|
const matchLength = userInput.length;
|
|
28411
29165
|
let before = "";
|
|
@@ -28444,9 +29198,9 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
|
|
|
28444
29198
|
after = after.length >= 3 ? after.slice(0, -3) + "..." : "...";
|
|
28445
29199
|
}
|
|
28446
29200
|
}
|
|
28447
|
-
return /* @__PURE__ */ (0,
|
|
29201
|
+
return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Text, { color: textColor, wrap: "wrap", children: [
|
|
28448
29202
|
before,
|
|
28449
|
-
match ? match.split(/(\s+)/).map((part, index) => /* @__PURE__ */ (0,
|
|
29203
|
+
match ? match.split(/(\s+)/).map((part, index) => /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
|
|
28450
29204
|
Text,
|
|
28451
29205
|
{
|
|
28452
29206
|
color: theme.background.primary,
|
|
@@ -28461,7 +29215,7 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
|
|
|
28461
29215
|
var PrepareLabel = import_react91.default.memo(_PrepareLabel);
|
|
28462
29216
|
|
|
28463
29217
|
// packages/cli/src/ui/components/SuggestionsDisplay.tsx
|
|
28464
|
-
var
|
|
29218
|
+
var import_jsx_runtime114 = __toESM(require_jsx_runtime(), 1);
|
|
28465
29219
|
function categoryLabel(cat) {
|
|
28466
29220
|
switch (cat) {
|
|
28467
29221
|
case "all":
|
|
@@ -28503,7 +29257,7 @@ function SuggestionsDisplay({
|
|
|
28503
29257
|
const itemRefs = (0, import_react92.useRef)([]);
|
|
28504
29258
|
const categoryRefs = (0, import_react92.useRef)([]);
|
|
28505
29259
|
if (isLoading) {
|
|
28506
|
-
return /* @__PURE__ */ (0,
|
|
29260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { width, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: "gray", children: t("Loading suggestions...") }) });
|
|
28507
29261
|
}
|
|
28508
29262
|
const filteredSuggestions = activeCategory === "all" ? suggestions : suggestions.filter((s) => (s.category ?? "file") === activeCategory);
|
|
28509
29263
|
const showTabBar = (availableCategories?.length ?? 0) > 2;
|
|
@@ -28533,7 +29287,7 @@ function SuggestionsDisplay({
|
|
|
28533
29287
|
Math.max(...describedLabelLengths),
|
|
28534
29288
|
Math.max(contentWidth - MIN_DESCRIPTION_WIDTH - 2, 1)
|
|
28535
29289
|
) : 0;
|
|
28536
|
-
return /* @__PURE__ */ (0,
|
|
29290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
|
|
28537
29291
|
Box_default,
|
|
28538
29292
|
{
|
|
28539
29293
|
flexDirection: "column",
|
|
@@ -28543,7 +29297,7 @@ function SuggestionsDisplay({
|
|
|
28543
29297
|
borderColor: extendedTheme.ui.rule,
|
|
28544
29298
|
paddingX: 1,
|
|
28545
29299
|
children: [
|
|
28546
|
-
mouseEnabled && onHoverIndex && onSelectIndex && /* @__PURE__ */ (0,
|
|
29300
|
+
mouseEnabled && onHoverIndex && onSelectIndex && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28547
29301
|
RowMouseController,
|
|
28548
29302
|
{
|
|
28549
29303
|
containerRef,
|
|
@@ -28553,7 +29307,7 @@ function SuggestionsDisplay({
|
|
|
28553
29307
|
onSelectIndex
|
|
28554
29308
|
}
|
|
28555
29309
|
),
|
|
28556
|
-
mouseEnabled && showTabBar && availableCategories && onSelectCategory && /* @__PURE__ */ (0,
|
|
29310
|
+
mouseEnabled && showTabBar && availableCategories && onSelectCategory && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28557
29311
|
CompletionCategoryMouseController,
|
|
28558
29312
|
{
|
|
28559
29313
|
containerRef,
|
|
@@ -28562,17 +29316,17 @@ function SuggestionsDisplay({
|
|
|
28562
29316
|
onSelectCategory
|
|
28563
29317
|
}
|
|
28564
29318
|
),
|
|
28565
|
-
showTabBar && availableCategories && /* @__PURE__ */ (0,
|
|
29319
|
+
showTabBar && availableCategories && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Box_default, { flexDirection: "row", marginBottom: 1, children: [
|
|
28566
29320
|
availableCategories.map((cat, i) => {
|
|
28567
29321
|
const active = cat === activeCategory;
|
|
28568
|
-
return /* @__PURE__ */ (0,
|
|
29322
|
+
return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28569
29323
|
Box_default,
|
|
28570
29324
|
{
|
|
28571
29325
|
marginLeft: i === 0 ? 0 : 1,
|
|
28572
29326
|
ref: (node) => {
|
|
28573
29327
|
categoryRefs.current[i] = node;
|
|
28574
29328
|
},
|
|
28575
|
-
children: /* @__PURE__ */ (0,
|
|
29329
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28576
29330
|
Text,
|
|
28577
29331
|
{
|
|
28578
29332
|
color: active ? theme.background.primary : theme.text.secondary,
|
|
@@ -28584,9 +29338,9 @@ function SuggestionsDisplay({
|
|
|
28584
29338
|
cat
|
|
28585
29339
|
);
|
|
28586
29340
|
}),
|
|
28587
|
-
/* @__PURE__ */ (0,
|
|
29341
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: theme.text.secondary, children: t("(\u2190/\u2192 to switch)") }) })
|
|
28588
29342
|
] }),
|
|
28589
|
-
scrollOffset > 0 && /* @__PURE__ */ (0,
|
|
29343
|
+
scrollOffset > 0 && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: theme.text.primary, children: "\u25B2" }),
|
|
28590
29344
|
visibleSuggestions.map((suggestion, index) => {
|
|
28591
29345
|
const originalIndex = startIndex + index;
|
|
28592
29346
|
const isActive = originalIndex === activeIndex;
|
|
@@ -28599,7 +29353,7 @@ function SuggestionsDisplay({
|
|
|
28599
29353
|
contentWidth - labelColumnWidth - 2 - expansionIndicatorWidth,
|
|
28600
29354
|
1
|
|
28601
29355
|
);
|
|
28602
|
-
const labelElement = /* @__PURE__ */ (0,
|
|
29356
|
+
const labelElement = /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28603
29357
|
PrepareLabel,
|
|
28604
29358
|
{
|
|
28605
29359
|
label: displayLabel,
|
|
@@ -28609,7 +29363,7 @@ function SuggestionsDisplay({
|
|
|
28609
29363
|
isExpanded
|
|
28610
29364
|
}
|
|
28611
29365
|
);
|
|
28612
|
-
return /* @__PURE__ */ (0,
|
|
29366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
|
|
28613
29367
|
Box_default,
|
|
28614
29368
|
{
|
|
28615
29369
|
flexDirection: "row",
|
|
@@ -28617,49 +29371,49 @@ function SuggestionsDisplay({
|
|
|
28617
29371
|
itemRefs.current[index] = node;
|
|
28618
29372
|
},
|
|
28619
29373
|
children: [
|
|
28620
|
-
/* @__PURE__ */ (0,
|
|
28621
|
-
/* @__PURE__ */ (0,
|
|
29374
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { width: ACTIVE_MARKER_WIDTH, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: extendedTheme.ui.brand, children: isActive ? `${glyphs().prompt} ` : " " }) }),
|
|
29375
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28622
29376
|
Box_default,
|
|
28623
29377
|
{
|
|
28624
29378
|
...mode === "slash" || suggestion.description ? { width: labelColumnWidth, flexShrink: 0 } : { flexShrink: 1 },
|
|
28625
|
-
children: /* @__PURE__ */ (0,
|
|
28626
|
-
/* @__PURE__ */ (0,
|
|
28627
|
-
suggestion.argumentHint && /* @__PURE__ */ (0,
|
|
29379
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Box_default, { children: [
|
|
29380
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { flexShrink: 0, children: labelElement }),
|
|
29381
|
+
suggestion.argumentHint && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
|
|
28628
29382
|
" ",
|
|
28629
29383
|
suggestion.argumentHint
|
|
28630
29384
|
] }),
|
|
28631
|
-
suggestion.sourceBadge && /* @__PURE__ */ (0,
|
|
29385
|
+
suggestion.sourceBadge && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: textColor, wrap: "truncate-end", children: [
|
|
28632
29386
|
" ",
|
|
28633
29387
|
suggestion.sourceBadge
|
|
28634
29388
|
] })
|
|
28635
29389
|
] })
|
|
28636
29390
|
}
|
|
28637
29391
|
),
|
|
28638
|
-
suggestion.description && /* @__PURE__ */ (0,
|
|
29392
|
+
suggestion.description && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28639
29393
|
Box_default,
|
|
28640
29394
|
{
|
|
28641
29395
|
width: descriptionColumnWidth,
|
|
28642
29396
|
flexGrow: 1,
|
|
28643
29397
|
flexShrink: 1,
|
|
28644
29398
|
paddingLeft: 2,
|
|
28645
|
-
children: /* @__PURE__ */ (0,
|
|
29399
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: normalizeDescription(suggestion.description) })
|
|
28646
29400
|
}
|
|
28647
29401
|
),
|
|
28648
|
-
isActive && isLong && /* @__PURE__ */ (0,
|
|
29402
|
+
isActive && isLong && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: Colors.Gray, children: isExpanded ? " \u2190 " : " \u2192 " }) })
|
|
28649
29403
|
]
|
|
28650
29404
|
},
|
|
28651
29405
|
`${suggestion.value}-${originalIndex}`
|
|
28652
29406
|
);
|
|
28653
29407
|
}),
|
|
28654
|
-
endIndex < filteredSuggestions.length && /* @__PURE__ */ (0,
|
|
28655
|
-
filteredSuggestions.length > MAX_SUGGESTIONS_TO_SHOW && /* @__PURE__ */ (0,
|
|
29408
|
+
endIndex < filteredSuggestions.length && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: "gray", children: "\u25BC" }),
|
|
29409
|
+
filteredSuggestions.length > MAX_SUGGESTIONS_TO_SHOW && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: "gray", children: [
|
|
28656
29410
|
"(",
|
|
28657
29411
|
activeIndex + 1,
|
|
28658
29412
|
"/",
|
|
28659
29413
|
filteredSuggestions.length,
|
|
28660
29414
|
")"
|
|
28661
29415
|
] }),
|
|
28662
|
-
/* @__PURE__ */ (0,
|
|
29416
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: t("\u2191\u2193 navigate \xB7 tab complete \xB7 enter select \xB7 esc close") })
|
|
28663
29417
|
]
|
|
28664
29418
|
}
|
|
28665
29419
|
);
|
|
@@ -31032,7 +31786,7 @@ function useTeamInProcess(config, actions) {
|
|
|
31032
31786
|
__name(useTeamInProcess, "useTeamInProcess");
|
|
31033
31787
|
|
|
31034
31788
|
// packages/cli/src/ui/contexts/AgentViewContext.tsx
|
|
31035
|
-
var
|
|
31789
|
+
var import_jsx_runtime115 = __toESM(require_jsx_runtime(), 1);
|
|
31036
31790
|
var AgentViewStateContext = (0, import_react106.createContext)(null);
|
|
31037
31791
|
var AgentViewActionsContext = (0, import_react106.createContext)(null);
|
|
31038
31792
|
var DEFAULT_STATE2 = {
|
|
@@ -31290,8 +32044,8 @@ function AgentViewProvider({
|
|
|
31290
32044
|
);
|
|
31291
32045
|
useArenaInProcess(config ?? null, actions);
|
|
31292
32046
|
useTeamInProcess(config ?? null, actions);
|
|
31293
|
-
return /* @__PURE__ */ (0,
|
|
31294
|
-
[...agents.keys()].map((agentId) => /* @__PURE__ */ (0,
|
|
32047
|
+
return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AgentViewStateContext.Provider, { value: state, children: /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(AgentViewActionsContext.Provider, { value: actions, children: [
|
|
32048
|
+
[...agents.keys()].map((agentId) => /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AgentQueueFlusher, { agentId }, agentId)),
|
|
31295
32049
|
children
|
|
31296
32050
|
] }) });
|
|
31297
32051
|
}
|
|
@@ -31336,7 +32090,7 @@ __name(getLiveAgentPanelLayoutKey, "getLiveAgentPanelLayoutKey");
|
|
|
31336
32090
|
|
|
31337
32091
|
// packages/cli/src/ui/FeedbackDialog.tsx
|
|
31338
32092
|
init_esbuild_shims();
|
|
31339
|
-
var
|
|
32093
|
+
var import_jsx_runtime116 = __toESM(require_jsx_runtime(), 1);
|
|
31340
32094
|
var FEEDBACK_OPTIONS = {
|
|
31341
32095
|
GOOD: 1,
|
|
31342
32096
|
BAD: 2,
|
|
@@ -31369,39 +32123,39 @@ var FeedbackDialog = /* @__PURE__ */ __name(() => {
|
|
|
31369
32123
|
},
|
|
31370
32124
|
{ isActive: uiState.isFeedbackDialogOpen }
|
|
31371
32125
|
);
|
|
31372
|
-
return /* @__PURE__ */ (0,
|
|
31373
|
-
/* @__PURE__ */ (0,
|
|
31374
|
-
/* @__PURE__ */ (0,
|
|
31375
|
-
/* @__PURE__ */ (0,
|
|
32126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { flexDirection: "column", marginY: 1, children: [
|
|
32127
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { children: [
|
|
32128
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: "cyan", children: ICON.CIRCLE_FILLED + " " }),
|
|
32129
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { bold: true, children: t("How is O1-Code doing this session? (optional)") })
|
|
31376
32130
|
] }),
|
|
31377
|
-
/* @__PURE__ */ (0,
|
|
31378
|
-
/* @__PURE__ */ (0,
|
|
32131
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { marginTop: 1, children: [
|
|
32132
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
|
|
31379
32133
|
FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.GOOD],
|
|
31380
32134
|
":",
|
|
31381
32135
|
" "
|
|
31382
32136
|
] }),
|
|
31383
|
-
/* @__PURE__ */ (0,
|
|
31384
|
-
/* @__PURE__ */ (0,
|
|
31385
|
-
/* @__PURE__ */ (0,
|
|
32137
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Good") }),
|
|
32138
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
|
|
32139
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
|
|
31386
32140
|
FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.BAD],
|
|
31387
32141
|
": "
|
|
31388
32142
|
] }),
|
|
31389
|
-
/* @__PURE__ */ (0,
|
|
31390
|
-
/* @__PURE__ */ (0,
|
|
31391
|
-
/* @__PURE__ */ (0,
|
|
32143
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Bad") }),
|
|
32144
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
|
|
32145
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
|
|
31392
32146
|
FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.FINE],
|
|
31393
32147
|
":",
|
|
31394
32148
|
" "
|
|
31395
32149
|
] }),
|
|
31396
|
-
/* @__PURE__ */ (0,
|
|
31397
|
-
/* @__PURE__ */ (0,
|
|
31398
|
-
/* @__PURE__ */ (0,
|
|
32150
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Fine") }),
|
|
32151
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
|
|
32152
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
|
|
31399
32153
|
FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.DISMISS],
|
|
31400
32154
|
":",
|
|
31401
32155
|
" "
|
|
31402
32156
|
] }),
|
|
31403
|
-
/* @__PURE__ */ (0,
|
|
31404
|
-
/* @__PURE__ */ (0,
|
|
32157
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Dismiss") }),
|
|
32158
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " })
|
|
31405
32159
|
] })
|
|
31406
32160
|
] });
|
|
31407
32161
|
}, "FeedbackDialog");
|
|
@@ -31524,7 +32278,7 @@ function TextInputMouseController({
|
|
|
31524
32278
|
__name(TextInputMouseController, "TextInputMouseController");
|
|
31525
32279
|
|
|
31526
32280
|
// packages/cli/src/ui/components/BaseTextInput.tsx
|
|
31527
|
-
var
|
|
32281
|
+
var import_jsx_runtime117 = __toESM(require_jsx_runtime(), 1);
|
|
31528
32282
|
var INPUT_MAX_VISIBLE_LINES = 6;
|
|
31529
32283
|
var LABEL_RESERVED_COLUMNS = 7;
|
|
31530
32284
|
function defaultRenderLine({
|
|
@@ -31534,11 +32288,11 @@ function defaultRenderLine({
|
|
|
31534
32288
|
showCursor
|
|
31535
32289
|
}) {
|
|
31536
32290
|
if (!isOnCursorLine || !showCursor || terminalShowsInputCursor()) {
|
|
31537
|
-
return /* @__PURE__ */ (0,
|
|
32291
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { children: lineText || " " });
|
|
31538
32292
|
}
|
|
31539
32293
|
const len = cpLen(lineText);
|
|
31540
32294
|
if (cursorCol >= len) {
|
|
31541
|
-
return /* @__PURE__ */ (0,
|
|
32295
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
|
|
31542
32296
|
lineText,
|
|
31543
32297
|
renderSoftwareCursor(" ")
|
|
31544
32298
|
] });
|
|
@@ -31546,7 +32300,7 @@ function defaultRenderLine({
|
|
|
31546
32300
|
const before = cpSlice(lineText, 0, cursorCol);
|
|
31547
32301
|
const cursorChar = cpSlice(lineText, cursorCol, cursorCol + 1);
|
|
31548
32302
|
const after = cpSlice(lineText, cursorCol + 1);
|
|
31549
|
-
return /* @__PURE__ */ (0,
|
|
32303
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
|
|
31550
32304
|
before,
|
|
31551
32305
|
renderSoftwareCursor(cursorChar),
|
|
31552
32306
|
after
|
|
@@ -31719,13 +32473,13 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31719
32473
|
});
|
|
31720
32474
|
setCursorPosition(cursorPosition);
|
|
31721
32475
|
const resolvedBorderColor = borderColor ?? theme.border.focused;
|
|
31722
|
-
const resolvedPrefix = prefix ?? /* @__PURE__ */ (0,
|
|
32476
|
+
const resolvedPrefix = prefix ?? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: theme.text.accent, children: "> " });
|
|
31723
32477
|
const columns = process.stdout.columns || 80;
|
|
31724
32478
|
const labelBudget = columns - LABEL_RESERVED_COLUMNS;
|
|
31725
32479
|
const renderedLabel = topRightLabel ? truncateToWidth(topRightLabel, labelBudget) : "";
|
|
31726
32480
|
const frame = TOP_FRAME[glyphs().borderStyle];
|
|
31727
|
-
return /* @__PURE__ */ (0,
|
|
31728
|
-
mouseEnabled && isActive && /* @__PURE__ */ (0,
|
|
32481
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { ref: boxRef, flexDirection: "column", children: [
|
|
32482
|
+
mouseEnabled && isActive && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
31729
32483
|
TextInputMouseController,
|
|
31730
32484
|
{
|
|
31731
32485
|
linesRef,
|
|
@@ -31738,9 +32492,9 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31738
32492
|
// The rule starts from zero width and takes only what the label leaves:
|
|
31739
32493
|
// sized from its content (the whole terminal width) it pushed the
|
|
31740
32494
|
// label and the corner past the input's right edge.
|
|
31741
|
-
/* @__PURE__ */ (0,
|
|
31742
|
-
/* @__PURE__ */ (0,
|
|
31743
|
-
/* @__PURE__ */ (0,
|
|
32495
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { children: [
|
|
32496
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: frame.topLeft }),
|
|
32497
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
31744
32498
|
Box_default,
|
|
31745
32499
|
{
|
|
31746
32500
|
flexGrow: 1,
|
|
@@ -31748,12 +32502,12 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31748
32502
|
flexBasis: 0,
|
|
31749
32503
|
height: 1,
|
|
31750
32504
|
overflow: "hidden",
|
|
31751
|
-
children: /* @__PURE__ */ (0,
|
|
32505
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: frame.top.repeat(columns) })
|
|
31752
32506
|
}
|
|
31753
32507
|
),
|
|
31754
|
-
/* @__PURE__ */ (0,
|
|
32508
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: ` ${renderedLabel} ${frame.top.repeat(2)}${frame.topRight}` }) })
|
|
31755
32509
|
] }),
|
|
31756
|
-
/* @__PURE__ */ (0,
|
|
32510
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
|
|
31757
32511
|
Box_default,
|
|
31758
32512
|
{
|
|
31759
32513
|
borderStyle: glyphs().borderStyle,
|
|
@@ -31762,7 +32516,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31762
32516
|
paddingX: 1,
|
|
31763
32517
|
children: [
|
|
31764
32518
|
resolvedPrefix,
|
|
31765
|
-
/* @__PURE__ */ (0,
|
|
32519
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
|
|
31766
32520
|
Box_default,
|
|
31767
32521
|
{
|
|
31768
32522
|
flexGrow: 1,
|
|
@@ -31771,16 +32525,16 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31771
32525
|
minWidth: 0,
|
|
31772
32526
|
flexDirection: "column",
|
|
31773
32527
|
children: [
|
|
31774
|
-
scrollVisualRow > 0 && /* @__PURE__ */ (0,
|
|
32528
|
+
scrollVisualRow > 0 && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.muted, children: `${glyphs().up} ${t("{{count}} lines above", {
|
|
31775
32529
|
count: String(scrollVisualRow)
|
|
31776
32530
|
})}` }),
|
|
31777
|
-
/* @__PURE__ */ (0,
|
|
32531
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { flexGrow: 1, minWidth: 0, flexDirection: "column", ref: linesRef, children: buffer.text.length === 0 && placeholder ? showCursor && !terminalShowsInputCursor() ? /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
|
|
31778
32532
|
renderSoftwareCursor(placeholder.slice(0, 1)),
|
|
31779
|
-
/* @__PURE__ */ (0,
|
|
31780
|
-
] }) : /* @__PURE__ */ (0,
|
|
32533
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder.slice(1) })
|
|
32534
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder }) : linesToRender.map((lineText, idx) => {
|
|
31781
32535
|
const absoluteVisualIndex = scrollVisualRow + idx;
|
|
31782
32536
|
const isOnCursorLine = absoluteVisualIndex === cursorVisualRow;
|
|
31783
|
-
return /* @__PURE__ */ (0,
|
|
32537
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { height: 1, children: renderLine({
|
|
31784
32538
|
lineText,
|
|
31785
32539
|
isOnCursorLine,
|
|
31786
32540
|
cursorCol: cursorVisualCol,
|
|
@@ -31791,7 +32545,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31791
32545
|
scrollVisualRow
|
|
31792
32546
|
}) }, idx);
|
|
31793
32547
|
}) }),
|
|
31794
|
-
(buffer.allVisualLines?.length ?? 0) > 1 && /* @__PURE__ */ (0,
|
|
32548
|
+
(buffer.allVisualLines?.length ?? 0) > 1 && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { justifyContent: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.muted, children: t("{{count}} lines \xB7 enter sends \xB7 shift+enter new line", {
|
|
31795
32549
|
count: String(buffer.allVisualLines.length)
|
|
31796
32550
|
}) }) })
|
|
31797
32551
|
]
|
|
@@ -31806,7 +32560,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31806
32560
|
// packages/cli/src/ui/components/SlashCommandMenu.tsx
|
|
31807
32561
|
init_esbuild_shims();
|
|
31808
32562
|
var import_react109 = __toESM(require_react(), 1);
|
|
31809
|
-
var
|
|
32563
|
+
var import_jsx_runtime118 = __toESM(require_jsx_runtime(), 1);
|
|
31810
32564
|
var GROUPS = [
|
|
31811
32565
|
{
|
|
31812
32566
|
id: "sessions",
|
|
@@ -32202,7 +32956,7 @@ function SlashCommandMenu({
|
|
|
32202
32956
|
);
|
|
32203
32957
|
if (group || query) {
|
|
32204
32958
|
const title = parent ? `/${parent.path}` : group?.label ?? t("Search");
|
|
32205
|
-
return /* @__PURE__ */ (0,
|
|
32959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
32206
32960
|
SelectionDialog,
|
|
32207
32961
|
{
|
|
32208
32962
|
title: `${t("Commands")} \u203A ${title}`,
|
|
@@ -32238,7 +32992,7 @@ function SlashCommandMenu({
|
|
|
32238
32992
|
) });
|
|
32239
32993
|
}
|
|
32240
32994
|
const listRows = Math.max(1, height - 3);
|
|
32241
|
-
return /* @__PURE__ */ (0,
|
|
32995
|
+
return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
|
|
32242
32996
|
Box_default,
|
|
32243
32997
|
{
|
|
32244
32998
|
marginX: 2,
|
|
@@ -32250,7 +33004,7 @@ function SlashCommandMenu({
|
|
|
32250
33004
|
flexDirection: "column",
|
|
32251
33005
|
overflow: "hidden",
|
|
32252
33006
|
children: [
|
|
32253
|
-
/* @__PURE__ */ (0,
|
|
33007
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { height: listRows, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
32254
33008
|
BaseSelectionList,
|
|
32255
33009
|
{
|
|
32256
33010
|
items: groups.map((group2) => ({
|
|
@@ -32269,17 +33023,17 @@ function SlashCommandMenu({
|
|
|
32269
33023
|
setGroupId(id);
|
|
32270
33024
|
setHighlighted(void 0);
|
|
32271
33025
|
},
|
|
32272
|
-
renderItem: (item, { titleColor, isSelected }) => /* @__PURE__ */ (0,
|
|
32273
|
-
/* @__PURE__ */ (0,
|
|
32274
|
-
/* @__PURE__ */ (0,
|
|
33026
|
+
renderItem: (item, { titleColor, isSelected }) => /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Box_default, { width: "100%", children: [
|
|
33027
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { width: "45%", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { bold: isSelected, color: titleColor, wrap: "truncate-end", children: item.label }) }),
|
|
33028
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { flexGrow: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: item.description }) })
|
|
32275
33029
|
] })
|
|
32276
33030
|
}
|
|
32277
33031
|
) }),
|
|
32278
|
-
height >= 4 && /* @__PURE__ */ (0,
|
|
32279
|
-
/* @__PURE__ */ (0,
|
|
33032
|
+
height >= 4 && /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Box_default, { height: 1, flexShrink: 0, children: [
|
|
33033
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { flexGrow: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: t(
|
|
32280
33034
|
"Type to search commands \xB7 \u2191\u2193 navigate \xB7 enter open \xB7 esc close"
|
|
32281
33035
|
) }) }),
|
|
32282
|
-
/* @__PURE__ */ (0,
|
|
33036
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { marginLeft: 1, flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Text, { color: extendedTheme.text.muted, children: [
|
|
32283
33037
|
Math.max(
|
|
32284
33038
|
0,
|
|
32285
33039
|
groups.findIndex((group2) => group2.id === highlightedGroup)
|
|
@@ -33379,7 +34133,7 @@ __name(refineVoiceTranscript, "refineVoiceTranscript");
|
|
|
33379
34133
|
|
|
33380
34134
|
// packages/cli/src/ui/components/VoiceIndicator.tsx
|
|
33381
34135
|
init_esbuild_shims();
|
|
33382
|
-
var
|
|
34136
|
+
var import_jsx_runtime119 = __toESM(require_jsx_runtime(), 1);
|
|
33383
34137
|
var METER_WIDTH = 16;
|
|
33384
34138
|
var LEVEL_GAIN = 12;
|
|
33385
34139
|
function meter(level) {
|
|
@@ -33397,13 +34151,13 @@ function VoiceIndicator({
|
|
|
33397
34151
|
if (status === "idle") {
|
|
33398
34152
|
return null;
|
|
33399
34153
|
}
|
|
33400
|
-
return /* @__PURE__ */ (0,
|
|
33401
|
-
/* @__PURE__ */ (0,
|
|
33402
|
-
/* @__PURE__ */ (0,
|
|
33403
|
-
/* @__PURE__ */ (0,
|
|
33404
|
-
/* @__PURE__ */ (0,
|
|
33405
|
-
] }) : status === "refining" ? /* @__PURE__ */ (0,
|
|
33406
|
-
interimText ? /* @__PURE__ */ (0,
|
|
34154
|
+
return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
|
|
34155
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Box_default, { children: status === "recording" ? /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
|
|
34156
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "redBright", children: "\u25CF " }),
|
|
34157
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "cyan", children: meter(audioLevel) }),
|
|
34158
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "gray", children: " " + t("listening\u2026") })
|
|
34159
|
+
] }) : status === "refining" ? /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "yellow", children: "\u25C6 " + t("refining\u2026") }) : /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "yellow", children: "\u25C6 " + t("transcribing\u2026") }) }),
|
|
34160
|
+
interimText ? /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { dimColor: true, wrap: "truncate-end", children: escapeAnsiCtrlCodes(interimText) }) : null
|
|
33407
34161
|
] });
|
|
33408
34162
|
}
|
|
33409
34163
|
__name(VoiceIndicator, "VoiceIndicator");
|
|
@@ -33411,7 +34165,7 @@ __name(VoiceIndicator, "VoiceIndicator");
|
|
|
33411
34165
|
// packages/cli/src/ui/components/AttachmentPreparation.tsx
|
|
33412
34166
|
init_esbuild_shims();
|
|
33413
34167
|
var import_react111 = __toESM(require_react(), 1);
|
|
33414
|
-
var
|
|
34168
|
+
var import_jsx_runtime120 = __toESM(require_jsx_runtime(), 1);
|
|
33415
34169
|
var frames = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
|
|
33416
34170
|
function AttachmentPreparation({
|
|
33417
34171
|
state,
|
|
@@ -33429,13 +34183,13 @@ function AttachmentPreparation({
|
|
|
33429
34183
|
}, [busy, startedAt]);
|
|
33430
34184
|
if (!busy && state !== "error" && !notice) return null;
|
|
33431
34185
|
const elapsed = Math.max(0, now - startedAt) / 1e3;
|
|
33432
|
-
return /* @__PURE__ */ (0,
|
|
33433
|
-
busy && /* @__PURE__ */ (0,
|
|
34186
|
+
return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Box_default, { marginLeft: 2, marginRight: 2, flexDirection: "column", children: [
|
|
34187
|
+
busy && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: extendedTheme.ui.brandSoft, wrap: "truncate-end", children: [
|
|
33434
34188
|
frames[Math.floor(now / 100) % frames.length],
|
|
33435
34189
|
" ",
|
|
33436
34190
|
pasteBytes !== void 0 ? t("Pasting text\u2026 {{size}} KB", {
|
|
33437
34191
|
size: String(Math.ceil(pasteBytes / 1024))
|
|
33438
|
-
}) : /* @__PURE__ */ (0,
|
|
34192
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(import_jsx_runtime120.Fragment, { children: [
|
|
33439
34193
|
t(
|
|
33440
34194
|
state === "reading" ? "Reading image\u2026" : "Preparing attachment\u2026"
|
|
33441
34195
|
),
|
|
@@ -33446,15 +34200,15 @@ function AttachmentPreparation({
|
|
|
33446
34200
|
t("Esc to cancel")
|
|
33447
34201
|
] })
|
|
33448
34202
|
] }),
|
|
33449
|
-
state === "error" && /* @__PURE__ */ (0,
|
|
34203
|
+
state === "error" && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: theme.status.error, children: [
|
|
33450
34204
|
"\u26A0",
|
|
33451
34205
|
" ",
|
|
33452
34206
|
t(
|
|
33453
34207
|
"Could not prepare the attachment. Paste it again to retry; Esc to dismiss."
|
|
33454
34208
|
)
|
|
33455
34209
|
] }),
|
|
33456
|
-
notice === "wait" && /* @__PURE__ */ (0,
|
|
33457
|
-
notice === "cancelled" && /* @__PURE__ */ (0,
|
|
34210
|
+
notice === "wait" && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.status.warning, children: t("Wait for the attachment to finish preparing before sending.") }),
|
|
34211
|
+
notice === "cancelled" && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: t("Attachment preparation cancelled. Your prompt was preserved.") })
|
|
33458
34212
|
] });
|
|
33459
34213
|
}
|
|
33460
34214
|
__name(AttachmentPreparation, "AttachmentPreparation");
|
|
@@ -33595,7 +34349,7 @@ function clearPromptStash(targetDir) {
|
|
|
33595
34349
|
__name(clearPromptStash, "clearPromptStash");
|
|
33596
34350
|
|
|
33597
34351
|
// packages/cli/src/ui/components/InputPrompt.tsx
|
|
33598
|
-
var
|
|
34352
|
+
var import_jsx_runtime121 = __toESM(require_jsx_runtime(), 1);
|
|
33599
34353
|
var PASTED_IMAGE_EXTENSIONS = /\.(png|jpe?g|gif|webp|bmp)$/i;
|
|
33600
34354
|
function classifyPastedImagePaths(pasted) {
|
|
33601
34355
|
const tokens = pasted.split(/ (?=@?\/|@?[A-Za-z]:\\)/).flatMap((part) => part.split("\n")).map((token) => token.trim()).filter(Boolean);
|
|
@@ -34961,7 +35715,7 @@ ${currentText}`);
|
|
|
34961
35715
|
}
|
|
34962
35716
|
const color2 = seg.type === "command" || seg.type === "file" ? theme.text.accent : theme.text.primary;
|
|
34963
35717
|
renderedLine.push(
|
|
34964
|
-
/* @__PURE__ */ (0,
|
|
35718
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: color2, children: display }, `token-${segIdx}`)
|
|
34965
35719
|
);
|
|
34966
35720
|
});
|
|
34967
35721
|
if (isOnCursorLine && cursorVisualColAbsolute === cpLen(lineText)) {
|
|
@@ -34969,34 +35723,34 @@ ${currentText}`);
|
|
|
34969
35723
|
if (ghostText && showCursorOpt && ghostText.text.length > 0) {
|
|
34970
35724
|
if (!drawCursor) {
|
|
34971
35725
|
renderedLine.push(
|
|
34972
|
-
/* @__PURE__ */ (0,
|
|
35726
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: ghostText.showCursorBeforeText ? ` ${ghostText.text}` : ghostText.text }, "ghost-rest")
|
|
34973
35727
|
);
|
|
34974
35728
|
} else if (ghostText.showCursorBeforeText) {
|
|
34975
35729
|
renderedLine.push(
|
|
34976
|
-
/* @__PURE__ */ (0,
|
|
35730
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderSoftwareCursor(" ") }, "ghost-cursor")
|
|
34977
35731
|
);
|
|
34978
35732
|
renderedLine.push(
|
|
34979
|
-
/* @__PURE__ */ (0,
|
|
35733
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: ghostText.text }, "ghost-rest")
|
|
34980
35734
|
);
|
|
34981
35735
|
} else {
|
|
34982
35736
|
const firstChar = ghostText.text[0];
|
|
34983
35737
|
const rest = ghostText.text.slice(firstChar.length);
|
|
34984
35738
|
renderedLine.push(
|
|
34985
|
-
/* @__PURE__ */ (0,
|
|
35739
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderSoftwareCursor(firstChar) }, "ghost-cursor")
|
|
34986
35740
|
);
|
|
34987
35741
|
if (rest.length > 0) {
|
|
34988
35742
|
renderedLine.push(
|
|
34989
|
-
/* @__PURE__ */ (0,
|
|
35743
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: rest }, "ghost-rest")
|
|
34990
35744
|
);
|
|
34991
35745
|
}
|
|
34992
35746
|
}
|
|
34993
35747
|
} else if (!terminalShowsInputCursor()) {
|
|
34994
35748
|
renderedLine.push(
|
|
34995
|
-
/* @__PURE__ */ (0,
|
|
35749
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: showCursorOpt ? renderSoftwareCursor(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
|
|
34996
35750
|
);
|
|
34997
35751
|
}
|
|
34998
35752
|
}
|
|
34999
|
-
return /* @__PURE__ */ (0,
|
|
35753
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderedLine });
|
|
35000
35754
|
},
|
|
35001
35755
|
[slashCommands]
|
|
35002
35756
|
);
|
|
@@ -35134,27 +35888,27 @@ ${currentText}`);
|
|
|
35134
35888
|
}
|
|
35135
35889
|
const borderColor = isShellFocused && !isEmbeddedShellFocused && !agentTabBarFocused ? shellModeActive ? statusColor ?? extendedTheme.ui.brand : extendedTheme.ui.brand : theme.border.default;
|
|
35136
35890
|
const voiceStatusLabel = voiceInput.status === "recording" ? t("Voice: recording") : voiceInput.status === "transcribing" ? t("Voice: transcribing") : voiceInput.status === "refining" ? t("Voice: refining") : void 0;
|
|
35137
|
-
const prefixNode = /* @__PURE__ */ (0,
|
|
35891
|
+
const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
|
|
35138
35892
|
Text,
|
|
35139
35893
|
{
|
|
35140
35894
|
color: shellModeActive ? statusColor : extendedTheme.ui.brand,
|
|
35141
35895
|
"aria-label": statusText || void 0,
|
|
35142
35896
|
children: [
|
|
35143
|
-
shellModeActive ? reverseSearchActive ? /* @__PURE__ */ (0,
|
|
35897
|
+
shellModeActive ? reverseSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Text, { color: theme.text.link, "aria-label": SCREEN_READER_USER_PREFIX, children: [
|
|
35144
35898
|
"(r:)",
|
|
35145
35899
|
" "
|
|
35146
|
-
] }) : "!" : commandSearchActive ? /* @__PURE__ */ (0,
|
|
35900
|
+
] }) : "!" : commandSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.accent, children: "(r:) " }) : glyphs().prompt,
|
|
35147
35901
|
" "
|
|
35148
35902
|
]
|
|
35149
35903
|
}
|
|
35150
35904
|
);
|
|
35151
|
-
return /* @__PURE__ */ (0,
|
|
35152
|
-
attachments.length > 0 && /* @__PURE__ */ (0,
|
|
35905
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_jsx_runtime121.Fragment, { children: [
|
|
35906
|
+
attachments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, flexDirection: "column", children: attachments.map((att, idx) => {
|
|
35153
35907
|
const selected = isAttachmentMode && idx === selectedAttachmentIndex;
|
|
35154
35908
|
const label = t("Attachments: ");
|
|
35155
|
-
return /* @__PURE__ */ (0,
|
|
35156
|
-
/* @__PURE__ */ (0,
|
|
35157
|
-
/* @__PURE__ */ (0,
|
|
35909
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Box_default, { minWidth: 0, children: [
|
|
35910
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: extendedTheme.activity.read, children: idx === 0 ? label : " ".repeat(stringWidth(label)) }) }),
|
|
35911
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
|
|
35158
35912
|
Text,
|
|
35159
35913
|
{
|
|
35160
35914
|
wrap: "truncate-end",
|
|
@@ -35172,7 +35926,7 @@ ${currentText}`);
|
|
|
35172
35926
|
)
|
|
35173
35927
|
] }, att.id);
|
|
35174
35928
|
}) }),
|
|
35175
|
-
/* @__PURE__ */ (0,
|
|
35929
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35176
35930
|
AttachmentPreparation,
|
|
35177
35931
|
{
|
|
35178
35932
|
state: attachmentPreparation.state,
|
|
@@ -35181,7 +35935,7 @@ ${currentText}`);
|
|
|
35181
35935
|
pasteBytes: pasteProgress?.active ? pasteProgress.receivedBytes : void 0
|
|
35182
35936
|
}
|
|
35183
35937
|
),
|
|
35184
|
-
/* @__PURE__ */ (0,
|
|
35938
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35185
35939
|
VoiceIndicator,
|
|
35186
35940
|
{
|
|
35187
35941
|
status: voiceInput.status,
|
|
@@ -35189,7 +35943,7 @@ ${currentText}`);
|
|
|
35189
35943
|
audioLevel: voiceInput.audioLevel
|
|
35190
35944
|
}
|
|
35191
35945
|
),
|
|
35192
|
-
!slashMenuPanelOpen && /* @__PURE__ */ (0,
|
|
35946
|
+
!slashMenuPanelOpen && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35193
35947
|
BaseTextInput,
|
|
35194
35948
|
{
|
|
35195
35949
|
buffer,
|
|
@@ -35209,7 +35963,7 @@ ${currentText}`);
|
|
|
35209
35963
|
mouseEnabled: mouseInteractionsEnabled
|
|
35210
35964
|
}
|
|
35211
35965
|
),
|
|
35212
|
-
showSlashMenu && /* @__PURE__ */ (0,
|
|
35966
|
+
showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35213
35967
|
SlashCommandMenu,
|
|
35214
35968
|
{
|
|
35215
35969
|
query: buffer.text.slice(1),
|
|
@@ -35238,7 +35992,7 @@ ${currentText}`);
|
|
|
35238
35992
|
}
|
|
35239
35993
|
}
|
|
35240
35994
|
),
|
|
35241
|
-
shouldShowSuggestions && !showSlashMenu && /* @__PURE__ */ (0,
|
|
35995
|
+
shouldShowSuggestions && !showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35242
35996
|
SuggestionsDisplay,
|
|
35243
35997
|
{
|
|
35244
35998
|
suggestions: suggestionDisplayProps.suggestions,
|
|
@@ -35257,7 +36011,7 @@ ${currentText}`);
|
|
|
35257
36011
|
onSelectCategory: suggestionsFromExport || commandSearchActive || reverseSearchActive ? void 0 : handleCategorySelect
|
|
35258
36012
|
}
|
|
35259
36013
|
) }),
|
|
35260
|
-
attachments.length > 0 && !shouldShowSuggestions && /* @__PURE__ */ (0,
|
|
36014
|
+
attachments.length > 0 && !shouldShowSuggestions && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: isAttachmentMode ? t("\u2190 \u2192 select, Delete to remove, \u2193 to exit") : t("\u2191 to manage attachments") }) })
|
|
35261
36015
|
] });
|
|
35262
36016
|
}, "InputPrompt");
|
|
35263
36017
|
|
|
@@ -35267,10 +36021,10 @@ var import_react117 = __toESM(require_react(), 1);
|
|
|
35267
36021
|
|
|
35268
36022
|
// packages/cli/src/ui/components/ShellModeIndicator.tsx
|
|
35269
36023
|
init_esbuild_shims();
|
|
35270
|
-
var
|
|
35271
|
-
var ShellModeIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0,
|
|
36024
|
+
var import_jsx_runtime122 = __toESM(require_jsx_runtime(), 1);
|
|
36025
|
+
var ShellModeIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Text, { color: theme.ui.symbol, children: [
|
|
35272
36026
|
"shell mode enabled",
|
|
35273
|
-
/* @__PURE__ */ (0,
|
|
36027
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.text.secondary, children: " (esc to disable)" })
|
|
35274
36028
|
] }), "ShellModeIndicator");
|
|
35275
36029
|
|
|
35276
36030
|
// packages/cli/src/ui/hooks/use-layout-tier.ts
|
|
@@ -35851,7 +36605,7 @@ function useConfigInitMessage(isConfigInitialized) {
|
|
|
35851
36605
|
__name(useConfigInitMessage, "useConfigInitMessage");
|
|
35852
36606
|
|
|
35853
36607
|
// packages/cli/src/ui/components/Footer.tsx
|
|
35854
|
-
var
|
|
36608
|
+
var import_jsx_runtime123 = __toESM(require_jsx_runtime(), 1);
|
|
35855
36609
|
function readReasoning(config) {
|
|
35856
36610
|
const generationConfig = config.getContentGeneratorConfig();
|
|
35857
36611
|
if (!generationConfig) return void 0;
|
|
@@ -35917,23 +36671,23 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35917
36671
|
const worktreeBranch = settings.merged.ui?.hideBuiltinWorktreeIndicator ? void 0 : uiState.activeWorktree?.branch;
|
|
35918
36672
|
const branch = worktreeBranch ?? uiState.branchName;
|
|
35919
36673
|
const model = generationConfig ? config.getModelDisplayName().replace(/^\[[^\]]+\]\s*/, "") : "\u2014";
|
|
35920
|
-
const transientNotice = uiState.ctrlCPressedOnce ? /* @__PURE__ */ (0,
|
|
35921
|
-
const lastingState = vimEnabled && vimMode === "INSERT" ? /* @__PURE__ */ (0,
|
|
35922
|
-
/* @__PURE__ */ (0,
|
|
36674
|
+
const transientNotice = uiState.ctrlCPressedOnce ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, children: t("Press Ctrl+C again to exit.") }) : uiState.ctrlDPressedOnce ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, children: t("Press Ctrl+D again to exit.") }) : uiState.showEscapePrompt ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, children: t("Press Esc again to clear.") }) : uiState.rewindEscPending ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, children: t("Press Esc again to rewind conversation.") }) : null;
|
|
36675
|
+
const lastingState = vimEnabled && vimMode === "INSERT" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, children: "-- INSERT --" }) : vimEnabled && vimMode === "NORMAL" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.text.secondary, children: "-- NORMAL --" }) : uiState.shellModeActive ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(ShellModeIndicator, {}) : configInitMessage ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
36676
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Spinner, {}),
|
|
35923
36677
|
" ",
|
|
35924
36678
|
configInitMessage
|
|
35925
|
-
] }) : uiState.startupIdeConnectionStatus.state === "connecting" ? /* @__PURE__ */ (0,
|
|
35926
|
-
/* @__PURE__ */ (0,
|
|
36679
|
+
] }) : uiState.startupIdeConnectionStatus.state === "connecting" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
36680
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Spinner, {}),
|
|
35927
36681
|
" ",
|
|
35928
36682
|
t("IDE connecting... context may be unavailable")
|
|
35929
|
-
] }) : uiState.startupIdeConnectionStatus.state === "failed" ? /* @__PURE__ */ (0,
|
|
36683
|
+
] }) : uiState.startupIdeConnectionStatus.state === "failed" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, children: t("IDE connection unavailable: {{message}}", {
|
|
35930
36684
|
message: uiState.startupIdeConnectionStatus.message
|
|
35931
36685
|
}) }) : null;
|
|
35932
36686
|
const showStatusLine = statusLineLines.length > 0 && !uiState.ctrlCPressedOnce && !uiState.ctrlDPressedOnce;
|
|
35933
36687
|
if (transientNotice) {
|
|
35934
|
-
return /* @__PURE__ */ (0,
|
|
36688
|
+
return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { ref: containerRef, width: "100%", paddingX: sideMargin(tier), children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { wrap: "truncate", children: transientNotice }) });
|
|
35935
36689
|
}
|
|
35936
|
-
return /* @__PURE__ */ (0,
|
|
36690
|
+
return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
|
|
35937
36691
|
Box_default,
|
|
35938
36692
|
{
|
|
35939
36693
|
ref: containerRef,
|
|
@@ -35941,7 +36695,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35941
36695
|
paddingX: sideMargin(tier),
|
|
35942
36696
|
justifyContent: "space-between",
|
|
35943
36697
|
children: [
|
|
35944
|
-
/* @__PURE__ */ (0,
|
|
36698
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { flexShrink: showStatusLine ? 0 : 1, minWidth: 0, children: lastingState ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { wrap: "truncate", children: lastingState }) : /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
35945
36699
|
ModeZone,
|
|
35946
36700
|
{
|
|
35947
36701
|
tier,
|
|
@@ -35953,10 +36707,10 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35953
36707
|
summaryMode: displayMode === "summary"
|
|
35954
36708
|
}
|
|
35955
36709
|
) }),
|
|
35956
|
-
atLeast(tier, "medium") && /* @__PURE__ */ (0,
|
|
36710
|
+
atLeast(tier, "medium") && /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { flexShrink: 1, minWidth: 0, marginX: 1, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(GitZone, { branch, diff }) }),
|
|
35957
36711
|
showStatusLine ? (
|
|
35958
36712
|
// A custom status line replaces the usage zone and takes the room left.
|
|
35959
|
-
/* @__PURE__ */ (0,
|
|
36713
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
35960
36714
|
Box_default,
|
|
35961
36715
|
{
|
|
35962
36716
|
ref: statusLineRef,
|
|
@@ -35967,7 +36721,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35967
36721
|
alignItems: "flex-end",
|
|
35968
36722
|
maxHeight: MAX_STATUS_LINES,
|
|
35969
36723
|
overflow: "hidden",
|
|
35970
|
-
children: /* @__PURE__ */ (0,
|
|
36724
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
35971
36725
|
Text,
|
|
35972
36726
|
{
|
|
35973
36727
|
color: respectUserColors ? void 0 : useThemeColors ? theme.text.accent : void 0,
|
|
@@ -35978,7 +36732,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35978
36732
|
)
|
|
35979
36733
|
}
|
|
35980
36734
|
)
|
|
35981
|
-
) : /* @__PURE__ */ (0,
|
|
36735
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
35982
36736
|
UsageZone,
|
|
35983
36737
|
{
|
|
35984
36738
|
tier,
|
|
@@ -36030,7 +36784,7 @@ __name(getActiveSkill, "getActiveSkill");
|
|
|
36030
36784
|
// packages/cli/src/ui/components/background-view/BackgroundTasksPill.tsx
|
|
36031
36785
|
init_esbuild_shims();
|
|
36032
36786
|
var import_react118 = __toESM(require_react(), 1);
|
|
36033
|
-
var
|
|
36787
|
+
var import_jsx_runtime124 = __toESM(require_jsx_runtime(), 1);
|
|
36034
36788
|
var KIND_NAMES = {
|
|
36035
36789
|
agent: { singular: "local agent", plural: "local agents" },
|
|
36036
36790
|
shell: { singular: "shell", plural: "shells" },
|
|
@@ -36111,21 +36865,21 @@ var BackgroundTasksPill = /* @__PURE__ */ __name(() => {
|
|
|
36111
36865
|
);
|
|
36112
36866
|
const needsApproval = hasPendingApproval(entries);
|
|
36113
36867
|
const largeWorkflow = hasLargeWorkflow(entries);
|
|
36114
|
-
return /* @__PURE__ */ (0,
|
|
36115
|
-
label && /* @__PURE__ */ (0,
|
|
36116
|
-
/* @__PURE__ */ (0,
|
|
36117
|
-
/* @__PURE__ */ (0,
|
|
36868
|
+
return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
|
|
36869
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
|
|
36870
|
+
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: " \xB7 " }),
|
|
36871
|
+
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { inverse: pillFocused && monitoring === 0, wrap: "truncate", children: label })
|
|
36118
36872
|
] }),
|
|
36119
|
-
pillFocused && /* @__PURE__ */ (0,
|
|
36120
|
-
needsApproval && /* @__PURE__ */ (0,
|
|
36121
|
-
largeWorkflow && /* @__PURE__ */ (0,
|
|
36873
|
+
pillFocused && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: ` ${t("enter open \xB7 \u2191 history \xB7 esc back")}` }),
|
|
36874
|
+
needsApproval && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("needs approval")}` }),
|
|
36875
|
+
largeWorkflow && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("Large workflow")}` })
|
|
36122
36876
|
] });
|
|
36123
36877
|
}, "BackgroundTasksPill");
|
|
36124
36878
|
|
|
36125
36879
|
// packages/cli/src/ui/components/GoalPill.tsx
|
|
36126
36880
|
init_esbuild_shims();
|
|
36127
36881
|
var import_react119 = __toESM(require_react(), 1);
|
|
36128
|
-
var
|
|
36882
|
+
var import_jsx_runtime125 = __toESM(require_jsx_runtime(), 1);
|
|
36129
36883
|
var ELAPSED_REFRESH_MS = 1e3;
|
|
36130
36884
|
function formatSpend(goal) {
|
|
36131
36885
|
if (goal.tokensUsed <= 0) return "";
|
|
@@ -36229,19 +36983,19 @@ var GoalPill = /* @__PURE__ */ __name(({ snapshot }) => {
|
|
|
36229
36983
|
const spend = formatSpend(goal);
|
|
36230
36984
|
const detail = [elapsed, spend].filter(Boolean).join(" \xB7 ");
|
|
36231
36985
|
const suffix = detail ? ` (${detail})` : "";
|
|
36232
|
-
return /* @__PURE__ */ (0,
|
|
36986
|
+
return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(Text, { color: visible.color, children: [
|
|
36233
36987
|
visible.icon,
|
|
36234
36988
|
" /goal ",
|
|
36235
36989
|
visible.label,
|
|
36236
36990
|
suffix,
|
|
36237
|
-
goal.status === "blocked" && /* @__PURE__ */ (0,
|
|
36991
|
+
goal.status === "blocked" && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Text, { color: extendedTheme.text.muted, children: " \xB7 /goal clear" })
|
|
36238
36992
|
] });
|
|
36239
36993
|
}, "GoalPill");
|
|
36240
36994
|
|
|
36241
36995
|
// packages/cli/src/ui/components/CronPill.tsx
|
|
36242
36996
|
init_esbuild_shims();
|
|
36243
36997
|
var import_react120 = __toESM(require_react(), 1);
|
|
36244
|
-
var
|
|
36998
|
+
var import_jsx_runtime126 = __toESM(require_jsx_runtime(), 1);
|
|
36245
36999
|
var POLL_INTERVAL_MS = 1e3;
|
|
36246
37000
|
function getScheduledTaskCount(config) {
|
|
36247
37001
|
if (!config?.isCronEnabled?.()) return 0;
|
|
@@ -36266,7 +37020,7 @@ __name(useFooterCronTaskCount, "useFooterCronTaskCount");
|
|
|
36266
37020
|
var CronPill = /* @__PURE__ */ __name(({ count }) => {
|
|
36267
37021
|
if (count <= 0) return null;
|
|
36268
37022
|
const noun = count === 1 ? "scheduled task" : "scheduled tasks";
|
|
36269
|
-
return /* @__PURE__ */ (0,
|
|
37023
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { color: theme.text.accent, children: [
|
|
36270
37024
|
ICON.BULLSEYE,
|
|
36271
37025
|
" ",
|
|
36272
37026
|
count,
|
|
@@ -36276,7 +37030,7 @@ var CronPill = /* @__PURE__ */ __name(({ count }) => {
|
|
|
36276
37030
|
}, "CronPill");
|
|
36277
37031
|
|
|
36278
37032
|
// packages/cli/src/ui/components/ActivityLine.tsx
|
|
36279
|
-
var
|
|
37033
|
+
var import_jsx_runtime127 = __toESM(require_jsx_runtime(), 1);
|
|
36280
37034
|
function remoteFooterSnapshot(status) {
|
|
36281
37035
|
if (!status) return null;
|
|
36282
37036
|
if (status.active) return status.snapshot;
|
|
@@ -36295,19 +37049,19 @@ function planProgress(todos) {
|
|
|
36295
37049
|
__name(planProgress, "planProgress");
|
|
36296
37050
|
var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, monitoringFocused = false }) => {
|
|
36297
37051
|
const wide = atLeast(tier, "compact");
|
|
36298
|
-
return /* @__PURE__ */ (0,
|
|
37052
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { wrap: "truncate", children: [
|
|
36299
37053
|
CATEGORIES.map(([category, label], i) => {
|
|
36300
37054
|
const on = category === active;
|
|
36301
|
-
return /* @__PURE__ */ (0,
|
|
37055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { children: [
|
|
36302
37056
|
i > 0 && (wide ? " " : " "),
|
|
36303
|
-
/* @__PURE__ */ (0,
|
|
37057
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36304
37058
|
Text,
|
|
36305
37059
|
{
|
|
36306
37060
|
color: on ? extendedTheme.activity[category] : extendedTheme.ui.separator,
|
|
36307
37061
|
children: glyphs().dot
|
|
36308
37062
|
}
|
|
36309
37063
|
),
|
|
36310
|
-
(on || wide) && /* @__PURE__ */ (0,
|
|
37064
|
+
(on || wide) && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36311
37065
|
Text,
|
|
36312
37066
|
{
|
|
36313
37067
|
color: on ? theme.text.primary : extendedTheme.text.muted,
|
|
@@ -36317,10 +37071,10 @@ var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, moni
|
|
|
36317
37071
|
)
|
|
36318
37072
|
] }, category);
|
|
36319
37073
|
}),
|
|
36320
|
-
monitoring > 0 && /* @__PURE__ */ (0,
|
|
37074
|
+
monitoring > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { children: [
|
|
36321
37075
|
wide ? " " : " ",
|
|
36322
|
-
/* @__PURE__ */ (0,
|
|
36323
|
-
/* @__PURE__ */ (0,
|
|
37076
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.brandSoft, children: glyphs().dot }),
|
|
37077
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36324
37078
|
Text,
|
|
36325
37079
|
{
|
|
36326
37080
|
color: extendedTheme.ui.brandSoft,
|
|
@@ -36332,7 +37086,7 @@ var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, moni
|
|
|
36332
37086
|
] })
|
|
36333
37087
|
] });
|
|
36334
37088
|
}, "ActivityChips");
|
|
36335
|
-
var Sep2 = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0,
|
|
37089
|
+
var Sep2 = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.separator, children: " \xB7 " }), "Sep");
|
|
36336
37090
|
var ActivityLine = /* @__PURE__ */ __name(() => {
|
|
36337
37091
|
const uiState = useUIState();
|
|
36338
37092
|
const remoteSnapshot = remoteFooterSnapshot(uiState.remoteStatus);
|
|
@@ -36353,14 +37107,14 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
|
|
|
36353
37107
|
uiState.turnStartHistoryIndex
|
|
36354
37108
|
) : null;
|
|
36355
37109
|
const reviewCount = uiState.isSkillReviewDialogOpen ? 0 : uiState.skillReviewPending?.skills.length ?? 0;
|
|
36356
|
-
return /* @__PURE__ */ (0,
|
|
37110
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
|
|
36357
37111
|
Box_default,
|
|
36358
37112
|
{
|
|
36359
37113
|
width: "100%",
|
|
36360
37114
|
paddingX: sideMargin(tier),
|
|
36361
37115
|
justifyContent: "space-between",
|
|
36362
37116
|
children: [
|
|
36363
|
-
/* @__PURE__ */ (0,
|
|
37117
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36364
37118
|
ActivityChips,
|
|
36365
37119
|
{
|
|
36366
37120
|
tier,
|
|
@@ -36369,38 +37123,38 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
|
|
|
36369
37123
|
monitoringFocused: pillFocused && monitoring > 0
|
|
36370
37124
|
}
|
|
36371
37125
|
) }),
|
|
36372
|
-
/* @__PURE__ */ (0,
|
|
36373
|
-
/* @__PURE__ */ (0,
|
|
36374
|
-
plan && /* @__PURE__ */ (0,
|
|
36375
|
-
/* @__PURE__ */ (0,
|
|
37126
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 1, minWidth: 0, marginLeft: 1, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { color: extendedTheme.text.muted, wrap: "truncate", children: [
|
|
37127
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(BackgroundTasksPill, {}),
|
|
37128
|
+
plan && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37129
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
36376
37130
|
`${t("plan")} `,
|
|
36377
|
-
/* @__PURE__ */ (0,
|
|
37131
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.primary, bold: true, children: `${plan.done}/${plan.total}` })
|
|
36378
37132
|
] }),
|
|
36379
|
-
skill && /* @__PURE__ */ (0,
|
|
36380
|
-
/* @__PURE__ */ (0,
|
|
36381
|
-
/* @__PURE__ */ (0,
|
|
37133
|
+
skill && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37134
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37135
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.brandSoft, bold: true, children: `${glyphs().dot} ${skill}` })
|
|
36382
37136
|
] }),
|
|
36383
|
-
isLiveGoalSnapshot(goal) && /* @__PURE__ */ (0,
|
|
36384
|
-
/* @__PURE__ */ (0,
|
|
36385
|
-
/* @__PURE__ */ (0,
|
|
37137
|
+
isLiveGoalSnapshot(goal) && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37138
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37139
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(GoalPill, { snapshot: goal })
|
|
36386
37140
|
] }),
|
|
36387
|
-
cronCount > 0 && /* @__PURE__ */ (0,
|
|
36388
|
-
/* @__PURE__ */ (0,
|
|
36389
|
-
/* @__PURE__ */ (0,
|
|
37141
|
+
cronCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37142
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37143
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(CronPill, { count: cronCount })
|
|
36390
37144
|
] }),
|
|
36391
|
-
reviewCount > 0 && /* @__PURE__ */ (0,
|
|
36392
|
-
/* @__PURE__ */ (0,
|
|
36393
|
-
/* @__PURE__ */ (0,
|
|
37145
|
+
reviewCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37146
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37147
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.status.warning, children: t("{{count}} skill(s) pending review", {
|
|
36394
37148
|
count: String(reviewCount)
|
|
36395
37149
|
}) })
|
|
36396
37150
|
] }),
|
|
36397
|
-
uiState.workflowKeywordActive && /* @__PURE__ */ (0,
|
|
36398
|
-
/* @__PURE__ */ (0,
|
|
36399
|
-
/* @__PURE__ */ (0,
|
|
37151
|
+
uiState.workflowKeywordActive && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37152
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37153
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.accent, children: t("workflow active") })
|
|
36400
37154
|
] }),
|
|
36401
|
-
remoteSnapshot && /* @__PURE__ */ (0,
|
|
36402
|
-
/* @__PURE__ */ (0,
|
|
36403
|
-
/* @__PURE__ */ (0,
|
|
37155
|
+
remoteSnapshot && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37156
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37157
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36404
37158
|
Text,
|
|
36405
37159
|
{
|
|
36406
37160
|
color: remoteSnapshot.state === "online" ? extendedTheme.ui.brandSoft : theme.status.warning,
|
|
@@ -36416,7 +37170,7 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
|
|
|
36416
37170
|
|
|
36417
37171
|
// packages/cli/src/ui/components/KeyboardShortcuts.tsx
|
|
36418
37172
|
init_esbuild_shims();
|
|
36419
|
-
var
|
|
37173
|
+
var import_jsx_runtime128 = __toESM(require_jsx_runtime(), 1);
|
|
36420
37174
|
var getNewlineKey = /* @__PURE__ */ __name(() => process.platform === "win32" ? "ctrl+enter" : "ctrl+j", "getNewlineKey");
|
|
36421
37175
|
var getPasteKey = /* @__PURE__ */ __name(() => {
|
|
36422
37176
|
if (process.platform === "win32") return "alt+v";
|
|
@@ -36442,8 +37196,8 @@ var getShortcuts = /* @__PURE__ */ __name(() => [
|
|
|
36442
37196
|
{ key: getPasteKey(), description: t("to paste images") },
|
|
36443
37197
|
{ key: getExternalEditorKey(), description: t("for external editor") }
|
|
36444
37198
|
], "getShortcuts");
|
|
36445
|
-
var ShortcutItem = /* @__PURE__ */ __name(({ shortcut }) => /* @__PURE__ */ (0,
|
|
36446
|
-
/* @__PURE__ */ (0,
|
|
37199
|
+
var ShortcutItem = /* @__PURE__ */ __name(({ shortcut }) => /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
37200
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Text, { color: theme.text.accent, children: shortcut.key }),
|
|
36447
37201
|
" ",
|
|
36448
37202
|
shortcut.description
|
|
36449
37203
|
] }), "ShortcutItem");
|
|
@@ -36484,18 +37238,18 @@ var KeyboardShortcuts = /* @__PURE__ */ __name(() => {
|
|
|
36484
37238
|
columns.push(shortcuts.slice(startIndex, startIndex + count));
|
|
36485
37239
|
startIndex += count;
|
|
36486
37240
|
}
|
|
36487
|
-
return /* @__PURE__ */ (0,
|
|
37241
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
36488
37242
|
Box_default,
|
|
36489
37243
|
{
|
|
36490
37244
|
flexDirection: "row",
|
|
36491
37245
|
marginLeft: MARGIN_LEFT,
|
|
36492
37246
|
marginRight: MARGIN_RIGHT,
|
|
36493
|
-
children: columns.map((column, colIndex) => /* @__PURE__ */ (0,
|
|
37247
|
+
children: columns.map((column, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
36494
37248
|
Box_default,
|
|
36495
37249
|
{
|
|
36496
37250
|
flexDirection: "column",
|
|
36497
37251
|
marginRight: colIndex < numColumns - 1 ? COLUMN_GAP : 0,
|
|
36498
|
-
children: column.map((shortcut) => /* @__PURE__ */ (0,
|
|
37252
|
+
children: column.map((shortcut) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ShortcutItem, { shortcut }, shortcut.key))
|
|
36499
37253
|
},
|
|
36500
37254
|
colIndex
|
|
36501
37255
|
))
|
|
@@ -36504,7 +37258,7 @@ var KeyboardShortcuts = /* @__PURE__ */ __name(() => {
|
|
|
36504
37258
|
}, "KeyboardShortcuts");
|
|
36505
37259
|
|
|
36506
37260
|
// packages/cli/src/ui/components/Composer.tsx
|
|
36507
|
-
var
|
|
37261
|
+
var import_jsx_runtime129 = __toESM(require_jsx_runtime(), 1);
|
|
36508
37262
|
var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
|
|
36509
37263
|
const config = useConfig();
|
|
36510
37264
|
const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
|
|
@@ -36533,8 +37287,8 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
|
|
|
36533
37287
|
},
|
|
36534
37288
|
[uiActions]
|
|
36535
37289
|
);
|
|
36536
|
-
return /* @__PURE__ */ (0,
|
|
36537
|
-
!uiState.useTerminalBuffer && !uiState.embeddedShellFocused && !suppressBottomLoadingIndicator && /* @__PURE__ */ (0,
|
|
37290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
37291
|
+
!uiState.useTerminalBuffer && !uiState.embeddedShellFocused && !suppressBottomLoadingIndicator && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
36538
37292
|
LiveLoadingIndicator,
|
|
36539
37293
|
{
|
|
36540
37294
|
currentLoadingPhrase: config.getAccessibility()?.enableLoadingPhrases === false ? void 0 : uiState.currentLoadingPhrase,
|
|
@@ -36548,22 +37302,22 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
|
|
|
36548
37302
|
isReceivingContent
|
|
36549
37303
|
}
|
|
36550
37304
|
),
|
|
36551
|
-
!uiState.useTerminalBuffer && !uiState.embeddedShellFocused && suppressBottomLoadingIndicator && /* @__PURE__ */ (0,
|
|
37305
|
+
!uiState.useTerminalBuffer && !uiState.embeddedShellFocused && suppressBottomLoadingIndicator && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Box_default, { paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
36552
37306
|
"(",
|
|
36553
37307
|
t("Esc to cancel"),
|
|
36554
37308
|
")"
|
|
36555
37309
|
] }) }),
|
|
36556
|
-
!uiState.useTerminalBuffer && /* @__PURE__ */ (0,
|
|
37310
|
+
!uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
36557
37311
|
Box_default,
|
|
36558
37312
|
{
|
|
36559
37313
|
marginTop: uiState.messageQueue.length > 0 ? 1 : 0,
|
|
36560
37314
|
paddingLeft: 2,
|
|
36561
|
-
children: /* @__PURE__ */ (0,
|
|
37315
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(QueuedMessageDisplay, { messageQueue: uiState.messageQueue })
|
|
36562
37316
|
}
|
|
36563
37317
|
),
|
|
36564
|
-
uiState.isFeedbackDialogOpen && /* @__PURE__ */ (0,
|
|
36565
|
-
uiState.isInputActive && !showSuggestions && /* @__PURE__ */ (0,
|
|
36566
|
-
uiState.isInputActive && /* @__PURE__ */ (0,
|
|
37318
|
+
uiState.isFeedbackDialogOpen && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(FeedbackDialog, {}),
|
|
37319
|
+
uiState.isInputActive && !showSuggestions && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(ActivityLine, {}),
|
|
37320
|
+
uiState.isInputActive && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
36567
37321
|
InputPrompt,
|
|
36568
37322
|
{
|
|
36569
37323
|
buffer: uiState.buffer,
|
|
@@ -36595,18 +37349,18 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
|
|
|
36595
37349
|
voiceMicWarnedStatusRef: uiState.voiceMicWarnedStatusRef
|
|
36596
37350
|
}
|
|
36597
37351
|
),
|
|
36598
|
-
(uiState.isInputActive || !uiState.isConfigInitialized) && !showSuggestions && (showShortcuts ? /* @__PURE__ */ (0,
|
|
37352
|
+
(uiState.isInputActive || !uiState.isConfigInitialized) && !showSuggestions && (showShortcuts ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(KeyboardShortcuts, {}) : !isScreenReaderEnabled && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Footer, { containerRef: footerRef }))
|
|
36599
37353
|
] });
|
|
36600
37354
|
}, "Composer");
|
|
36601
37355
|
|
|
36602
37356
|
// packages/cli/src/ui/components/ExitWarning.tsx
|
|
36603
37357
|
init_esbuild_shims();
|
|
36604
|
-
var
|
|
37358
|
+
var import_jsx_runtime130 = __toESM(require_jsx_runtime(), 1);
|
|
36605
37359
|
var ExitWarning = /* @__PURE__ */ __name(() => {
|
|
36606
37360
|
const uiState = useUIState();
|
|
36607
|
-
return /* @__PURE__ */ (0,
|
|
36608
|
-
uiState.dialogsVisible && uiState.ctrlCPressedOnce && /* @__PURE__ */ (0,
|
|
36609
|
-
uiState.dialogsVisible && uiState.ctrlDPressedOnce && /* @__PURE__ */ (0,
|
|
37361
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_jsx_runtime130.Fragment, { children: [
|
|
37362
|
+
uiState.dialogsVisible && uiState.ctrlCPressedOnce && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Text, { color: theme.status.warning, children: "Press Ctrl+C again to exit." }) }),
|
|
37363
|
+
uiState.dialogsVisible && uiState.ctrlDPressedOnce && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Box_default, { marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Text, { color: theme.status.warning, children: "Press Ctrl+D again to exit." }) })
|
|
36610
37364
|
] });
|
|
36611
37365
|
}, "ExitWarning");
|
|
36612
37366
|
|
|
@@ -36784,7 +37538,7 @@ function getStickyTodoMaxVisibleItemsForMode(terminalHeight, useTerminalBuffer)
|
|
|
36784
37538
|
__name(getStickyTodoMaxVisibleItemsForMode, "getStickyTodoMaxVisibleItemsForMode");
|
|
36785
37539
|
|
|
36786
37540
|
// packages/cli/src/ui/components/StickyTodoList.tsx
|
|
36787
|
-
var
|
|
37541
|
+
var import_jsx_runtime131 = __toESM(require_jsx_runtime(), 1);
|
|
36788
37542
|
var STATUS_ICONS = {
|
|
36789
37543
|
pending: ICON.CIRCLE_EMPTY,
|
|
36790
37544
|
in_progress: ICON.CIRCLE_LEFT_HALF,
|
|
@@ -36827,7 +37581,7 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
|
|
|
36827
37581
|
)
|
|
36828
37582
|
) + 1;
|
|
36829
37583
|
const contentColumnWidth = Math.max(1, width - numberColumnWidth - 6);
|
|
36830
|
-
return /* @__PURE__ */ (0,
|
|
37584
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(
|
|
36831
37585
|
Box_default,
|
|
36832
37586
|
{
|
|
36833
37587
|
marginX: 2,
|
|
@@ -36837,14 +37591,14 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
|
|
|
36837
37591
|
borderColor: theme.border.default,
|
|
36838
37592
|
paddingX: 1,
|
|
36839
37593
|
children: [
|
|
36840
|
-
/* @__PURE__ */ (0,
|
|
37594
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, bold: true, children: t("Current tasks") }),
|
|
36841
37595
|
visibleTodos.map((todo, index) => {
|
|
36842
37596
|
const todoNumber = todoNumberById.get(todo.id) ?? `${index + 1}.`;
|
|
36843
37597
|
const itemColor = todo.status === "in_progress" ? Colors.AccentGreen : Colors.Foreground;
|
|
36844
|
-
return /* @__PURE__ */ (0,
|
|
36845
|
-
/* @__PURE__ */ (0,
|
|
36846
|
-
/* @__PURE__ */ (0,
|
|
36847
|
-
/* @__PURE__ */ (0,
|
|
37598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
|
|
37599
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: numberColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, children: todoNumber }) }),
|
|
37600
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: 2, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: itemColor, children: STATUS_ICONS[todo.status] }) }),
|
|
37601
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: contentColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
36848
37602
|
Text,
|
|
36849
37603
|
{
|
|
36850
37604
|
color: itemColor,
|
|
@@ -36855,10 +37609,10 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
|
|
|
36855
37609
|
) })
|
|
36856
37610
|
] }, todo.id);
|
|
36857
37611
|
}),
|
|
36858
|
-
hiddenTodoCount > 0 && /* @__PURE__ */ (0,
|
|
36859
|
-
/* @__PURE__ */ (0,
|
|
36860
|
-
/* @__PURE__ */ (0,
|
|
36861
|
-
/* @__PURE__ */ (0,
|
|
37612
|
+
hiddenTodoCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
|
|
37613
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: numberColumnWidth }),
|
|
37614
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: 2 }),
|
|
37615
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: contentColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: t("... and {{count}} more", {
|
|
36862
37616
|
count: String(hiddenTodoCount)
|
|
36863
37617
|
}) }) })
|
|
36864
37618
|
] })
|
|
@@ -36872,9 +37626,11 @@ var StickyTodoList = (0, import_react122.memo)(
|
|
|
36872
37626
|
);
|
|
36873
37627
|
|
|
36874
37628
|
// packages/cli/src/ui/layouts/ScreenReaderAppLayout.tsx
|
|
36875
|
-
var
|
|
37629
|
+
var import_jsx_runtime132 = __toESM(require_jsx_runtime(), 1);
|
|
36876
37630
|
var ScreenReaderAppLayout = /* @__PURE__ */ __name(() => {
|
|
36877
37631
|
const uiState = useUIState();
|
|
37632
|
+
const { dialogOpen: backgroundDialogOpen } = useBackgroundTaskViewState();
|
|
37633
|
+
const backgroundMargin = sideMargin(getLayoutTier(uiState.terminalWidth));
|
|
36878
37634
|
const stickyTodoWidth = Math.min(uiState.mainAreaWidth, 64);
|
|
36879
37635
|
const stickyTodoMaxVisibleItems = getStickyTodoMaxVisibleItemsForMode(
|
|
36880
37636
|
uiState.terminalHeight,
|
|
@@ -36886,47 +37642,55 @@ var ScreenReaderAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
36886
37642
|
);
|
|
36887
37643
|
const dialogHeight = uiState.constrainHeight ? dialogMaxHeight : void 0;
|
|
36888
37644
|
const shouldShowStickyTodos = uiState.stickyTodos !== null && !uiState.dialogsVisible && !uiState.isFeedbackDialogOpen && uiState.streamingState === "responding" /* Responding */;
|
|
36889
|
-
return /* @__PURE__ */ (0,
|
|
36890
|
-
|
|
36891
|
-
|
|
36892
|
-
|
|
36893
|
-
|
|
36894
|
-
|
|
36895
|
-
|
|
36896
|
-
|
|
36897
|
-
|
|
36898
|
-
|
|
36899
|
-
|
|
36900
|
-
|
|
36901
|
-
|
|
36902
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
36903
|
-
DialogManager,
|
|
37645
|
+
return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(
|
|
37646
|
+
Box_default,
|
|
37647
|
+
{
|
|
37648
|
+
flexDirection: "column",
|
|
37649
|
+
width: backgroundDialogOpen ? uiState.terminalWidth : "90%",
|
|
37650
|
+
height: "100%",
|
|
37651
|
+
children: [
|
|
37652
|
+
!uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
|
|
37653
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Notifications, {}),
|
|
37654
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Footer, {}),
|
|
37655
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { flexGrow: 1, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(MainContent, {}) }),
|
|
37656
|
+
uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37657
|
+
Box_default,
|
|
36904
37658
|
{
|
|
36905
|
-
|
|
36906
|
-
|
|
37659
|
+
marginX: backgroundDialogOpen ? backgroundMargin : 2,
|
|
37660
|
+
flexDirection: "column",
|
|
37661
|
+
width: backgroundDialogOpen ? Math.max(1, uiState.terminalWidth - backgroundMargin * 2) : uiState.mainAreaWidth,
|
|
37662
|
+
height: dialogHeight,
|
|
37663
|
+
overflow: uiState.constrainHeight ? "hidden" : void 0,
|
|
37664
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37665
|
+
DialogManager,
|
|
37666
|
+
{
|
|
37667
|
+
terminalWidth: uiState.terminalWidth,
|
|
37668
|
+
addItem: uiState.historyManager.addItem
|
|
37669
|
+
}
|
|
37670
|
+
)
|
|
36907
37671
|
}
|
|
36908
|
-
)
|
|
36909
|
-
|
|
36910
|
-
|
|
36911
|
-
|
|
36912
|
-
|
|
36913
|
-
|
|
36914
|
-
|
|
36915
|
-
|
|
36916
|
-
|
|
36917
|
-
|
|
36918
|
-
|
|
36919
|
-
|
|
36920
|
-
|
|
36921
|
-
|
|
36922
|
-
|
|
36923
|
-
|
|
36924
|
-
|
|
36925
|
-
|
|
36926
|
-
|
|
36927
|
-
|
|
36928
|
-
|
|
36929
|
-
|
|
37672
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_jsx_runtime132.Fragment, { children: [
|
|
37673
|
+
shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37674
|
+
StickyTodoList,
|
|
37675
|
+
{
|
|
37676
|
+
todos: uiState.stickyTodos,
|
|
37677
|
+
width: stickyTodoWidth,
|
|
37678
|
+
maxVisibleItems: stickyTodoMaxVisibleItems
|
|
37679
|
+
}
|
|
37680
|
+
),
|
|
37681
|
+
uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37682
|
+
BtwMessage,
|
|
37683
|
+
{
|
|
37684
|
+
btw: uiState.btwItem.btw,
|
|
37685
|
+
containerWidth: uiState.mainAreaWidth
|
|
37686
|
+
}
|
|
37687
|
+
) }),
|
|
37688
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Composer, {})
|
|
37689
|
+
] }),
|
|
37690
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(ExitWarning, {})
|
|
37691
|
+
]
|
|
37692
|
+
}
|
|
37693
|
+
);
|
|
36930
37694
|
}, "ScreenReaderAppLayout");
|
|
36931
37695
|
|
|
36932
37696
|
// packages/cli/src/ui/layouts/DefaultAppLayout.tsx
|
|
@@ -36941,7 +37705,7 @@ var ScrollContext = (0, import_react123.createContext)(null);
|
|
|
36941
37705
|
// packages/cli/src/ui/components/agent-view/AgentTabBar.tsx
|
|
36942
37706
|
init_esbuild_shims();
|
|
36943
37707
|
var import_react124 = __toESM(require_react(), 1);
|
|
36944
|
-
var
|
|
37708
|
+
var import_jsx_runtime133 = __toESM(require_jsx_runtime(), 1);
|
|
36945
37709
|
function statusIndicator(agent) {
|
|
36946
37710
|
const status = agent.interactiveAgent.getStatus();
|
|
36947
37711
|
switch (status) {
|
|
@@ -37014,8 +37778,8 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
|
|
|
37014
37778
|
}, [agents, forceRender]);
|
|
37015
37779
|
const isFocused = agentTabBarFocused;
|
|
37016
37780
|
const hint = isFocused ? "\u2190/\u2192 switch \u2191 input" : "\u2193 tabs";
|
|
37017
|
-
return /* @__PURE__ */ (0,
|
|
37018
|
-
/* @__PURE__ */ (0,
|
|
37781
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
|
|
37782
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
37019
37783
|
Text,
|
|
37020
37784
|
{
|
|
37021
37785
|
bold: activeView === "main",
|
|
@@ -37025,12 +37789,12 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
|
|
|
37025
37789
|
children: " Main "
|
|
37026
37790
|
}
|
|
37027
37791
|
) }),
|
|
37028
|
-
/* @__PURE__ */ (0,
|
|
37792
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { dimColor: !isFocused, color: theme.border.default, children: "\u2502" }),
|
|
37029
37793
|
[...agents.entries()].map(([agentId, agent]) => {
|
|
37030
37794
|
const isActive = activeView === agentId;
|
|
37031
37795
|
const { symbol, color: indicatorColor } = statusIndicator(agent);
|
|
37032
|
-
return /* @__PURE__ */ (0,
|
|
37033
|
-
/* @__PURE__ */ (0,
|
|
37796
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Box_default, { marginLeft: 1, children: [
|
|
37797
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
37034
37798
|
Text,
|
|
37035
37799
|
{
|
|
37036
37800
|
bold: isActive,
|
|
@@ -37040,10 +37804,10 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
|
|
|
37040
37804
|
children: ` ${agent.modelId} `
|
|
37041
37805
|
}
|
|
37042
37806
|
),
|
|
37043
|
-
/* @__PURE__ */ (0,
|
|
37807
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { dimColor: !isFocused, color: indicatorColor, children: ` ${symbol}` })
|
|
37044
37808
|
] }, agentId);
|
|
37045
37809
|
}),
|
|
37046
|
-
/* @__PURE__ */ (0,
|
|
37810
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { color: theme.text.secondary, children: hint }) })
|
|
37047
37811
|
] });
|
|
37048
37812
|
}, "AgentTabBar");
|
|
37049
37813
|
|
|
@@ -37165,7 +37929,7 @@ __name(agentMessagesToHistoryItems, "agentMessagesToHistoryItems");
|
|
|
37165
37929
|
|
|
37166
37930
|
// packages/cli/src/ui/components/agent-view/AgentHeader.tsx
|
|
37167
37931
|
init_esbuild_shims();
|
|
37168
|
-
var
|
|
37932
|
+
var import_jsx_runtime134 = __toESM(require_jsx_runtime(), 1);
|
|
37169
37933
|
var AgentHeader = /* @__PURE__ */ __name(({
|
|
37170
37934
|
modelId,
|
|
37171
37935
|
modelName,
|
|
@@ -37176,7 +37940,7 @@ var AgentHeader = /* @__PURE__ */ __name(({
|
|
|
37176
37940
|
const maxPathLen = Math.max(20, terminalWidth - 12);
|
|
37177
37941
|
const displayPath = shortenPath(tildeifyPath(workingDirectory), maxPathLen);
|
|
37178
37942
|
const modelText = modelName && modelName !== modelId ? `${modelId} (${modelName})` : modelId;
|
|
37179
|
-
return /* @__PURE__ */ (0,
|
|
37943
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(
|
|
37180
37944
|
Box_default,
|
|
37181
37945
|
{
|
|
37182
37946
|
flexDirection: "column",
|
|
@@ -37186,17 +37950,17 @@ var AgentHeader = /* @__PURE__ */ __name(({
|
|
|
37186
37950
|
borderColor: theme.border.default,
|
|
37187
37951
|
paddingX: 1,
|
|
37188
37952
|
children: [
|
|
37189
|
-
/* @__PURE__ */ (0,
|
|
37190
|
-
/* @__PURE__ */ (0,
|
|
37191
|
-
/* @__PURE__ */ (0,
|
|
37953
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
|
|
37954
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Model: " }),
|
|
37955
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: modelText })
|
|
37192
37956
|
] }),
|
|
37193
|
-
/* @__PURE__ */ (0,
|
|
37194
|
-
/* @__PURE__ */ (0,
|
|
37195
|
-
/* @__PURE__ */ (0,
|
|
37957
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
|
|
37958
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Path: " }),
|
|
37959
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: displayPath })
|
|
37196
37960
|
] }),
|
|
37197
|
-
gitBranch && /* @__PURE__ */ (0,
|
|
37198
|
-
/* @__PURE__ */ (0,
|
|
37199
|
-
/* @__PURE__ */ (0,
|
|
37961
|
+
gitBranch && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
|
|
37962
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Branch: " }),
|
|
37963
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: gitBranch })
|
|
37200
37964
|
] })
|
|
37201
37965
|
]
|
|
37202
37966
|
}
|
|
@@ -37204,7 +37968,7 @@ var AgentHeader = /* @__PURE__ */ __name(({
|
|
|
37204
37968
|
}, "AgentHeader");
|
|
37205
37969
|
|
|
37206
37970
|
// packages/cli/src/ui/components/agent-view/AgentChatContent.tsx
|
|
37207
|
-
var
|
|
37971
|
+
var import_jsx_runtime135 = __toESM(require_jsx_runtime(), 1);
|
|
37208
37972
|
var AgentChatContent = /* @__PURE__ */ __name(({
|
|
37209
37973
|
core,
|
|
37210
37974
|
interactiveAgent,
|
|
@@ -37320,12 +38084,12 @@ var AgentChatContent = /* @__PURE__ */ __name(({
|
|
|
37320
38084
|
[instanceKey]
|
|
37321
38085
|
);
|
|
37322
38086
|
const agentModelId = core.modelConfig.model ?? "";
|
|
37323
|
-
return /* @__PURE__ */ (0,
|
|
37324
|
-
/* @__PURE__ */ (0,
|
|
38087
|
+
return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
38088
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
37325
38089
|
Static,
|
|
37326
38090
|
{
|
|
37327
38091
|
items: [
|
|
37328
|
-
/* @__PURE__ */ (0,
|
|
38092
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
37329
38093
|
AgentHeader,
|
|
37330
38094
|
{
|
|
37331
38095
|
modelId: agentModelId,
|
|
@@ -37335,7 +38099,7 @@ var AgentChatContent = /* @__PURE__ */ __name(({
|
|
|
37335
38099
|
},
|
|
37336
38100
|
"agent-header"
|
|
37337
38101
|
),
|
|
37338
|
-
...committedItems.map((item) => /* @__PURE__ */ (0,
|
|
38102
|
+
...committedItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
37339
38103
|
HistoryItemDisplay,
|
|
37340
38104
|
{
|
|
37341
38105
|
item,
|
|
@@ -37352,7 +38116,7 @@ var AgentChatContent = /* @__PURE__ */ __name(({
|
|
|
37352
38116
|
},
|
|
37353
38117
|
`agent-${instanceKey}-${historyRemountKey}`
|
|
37354
38118
|
),
|
|
37355
|
-
pendingItems.map((item) => /* @__PURE__ */ (0,
|
|
38119
|
+
pendingItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
37356
38120
|
HistoryItemDisplay,
|
|
37357
38121
|
{
|
|
37358
38122
|
item,
|
|
@@ -37367,13 +38131,13 @@ var AgentChatContent = /* @__PURE__ */ __name(({
|
|
|
37367
38131
|
},
|
|
37368
38132
|
item.id
|
|
37369
38133
|
)),
|
|
37370
|
-
isRunning && /* @__PURE__ */ (0,
|
|
38134
|
+
isRunning && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Box_default, { marginX: 2, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(RespondingSpinner, {}) })
|
|
37371
38135
|
] });
|
|
37372
38136
|
}, "AgentChatContent");
|
|
37373
|
-
var AgentChatMissing = /* @__PURE__ */ __name(({ label }) => /* @__PURE__ */ (0,
|
|
38137
|
+
var AgentChatMissing = /* @__PURE__ */ __name(({ label }) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Text, { color: theme.status.error, children: label }) }), "AgentChatMissing");
|
|
37374
38138
|
|
|
37375
38139
|
// packages/cli/src/ui/components/agent-view/AgentChatView.tsx
|
|
37376
|
-
var
|
|
38140
|
+
var import_jsx_runtime136 = __toESM(require_jsx_runtime(), 1);
|
|
37377
38141
|
var debugLogger29 = createDebugLogger("AGENT_TAB_RENDER");
|
|
37378
38142
|
var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
|
|
37379
38143
|
const { agents } = useAgentViewState();
|
|
@@ -37382,7 +38146,7 @@ var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37382
38146
|
const interactiveAgent = agent?.interactiveAgent;
|
|
37383
38147
|
const core = interactiveAgent?.getCore();
|
|
37384
38148
|
if (!agent || !interactiveAgent || !core) {
|
|
37385
|
-
return /* @__PURE__ */ (0,
|
|
38149
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(AgentChatMissing, { label: `Agent "${agentId}" not found.` });
|
|
37386
38150
|
}
|
|
37387
38151
|
return (
|
|
37388
38152
|
// Non-fatal per-tab containment: the app-level boundary is
|
|
@@ -37392,15 +38156,15 @@ var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37392
38156
|
// keeping the session and the other tabs alive. Keyed by agentId so
|
|
37393
38157
|
// switching tabs starts from fresh boundary state: one crashed tab
|
|
37394
38158
|
// must not strand every later tab in its fallback.
|
|
37395
|
-
/* @__PURE__ */ (0,
|
|
38159
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
37396
38160
|
ErrorBoundary,
|
|
37397
38161
|
{
|
|
37398
|
-
fallback: (error) => /* @__PURE__ */ (0,
|
|
37399
|
-
/* @__PURE__ */ (0,
|
|
37400
|
-
/* @__PURE__ */ (0,
|
|
37401
|
-
/* @__PURE__ */ (0,
|
|
37402
|
-
/* @__PURE__ */ (0,
|
|
37403
|
-
/* @__PURE__ */ (0,
|
|
38162
|
+
fallback: (error) => /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, children: [
|
|
38163
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.status.error, bold: true, children: "Something went wrong while rendering this agent tab." }),
|
|
38164
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, children: sanitizeTerminalText(error.message) }),
|
|
38165
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "The session is still running; other tabs are unaffected." }),
|
|
38166
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "Switch to another tab and back to retry rendering this tab." }),
|
|
38167
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "Set O1CODE_DEBUG_LOG_FILE=1 and reproduce for a full log." })
|
|
37404
38168
|
] }),
|
|
37405
38169
|
onError: (error, info) => {
|
|
37406
38170
|
setAgentShellFocused(false);
|
|
@@ -37410,7 +38174,7 @@ ${info.componentStack ?? ""}
|
|
|
37410
38174
|
${error.stack ?? ""}`
|
|
37411
38175
|
);
|
|
37412
38176
|
},
|
|
37413
|
-
children: /* @__PURE__ */ (0,
|
|
38177
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
37414
38178
|
AgentChatContent,
|
|
37415
38179
|
{
|
|
37416
38180
|
core,
|
|
@@ -37434,7 +38198,7 @@ init_esbuild_shims();
|
|
|
37434
38198
|
|
|
37435
38199
|
// packages/cli/src/ui/components/AutoAcceptIndicator.tsx
|
|
37436
38200
|
init_esbuild_shims();
|
|
37437
|
-
var
|
|
38201
|
+
var import_jsx_runtime137 = __toESM(require_jsx_runtime(), 1);
|
|
37438
38202
|
var AutoAcceptIndicator = /* @__PURE__ */ __name(({
|
|
37439
38203
|
approvalMode
|
|
37440
38204
|
}) => {
|
|
@@ -37466,15 +38230,15 @@ var AutoAcceptIndicator = /* @__PURE__ */ __name(({
|
|
|
37466
38230
|
default:
|
|
37467
38231
|
break;
|
|
37468
38232
|
}
|
|
37469
|
-
return /* @__PURE__ */ (0,
|
|
38233
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(Text, { color: textColor, children: [
|
|
37470
38234
|
textContent,
|
|
37471
|
-
subText && /* @__PURE__ */ (0,
|
|
38235
|
+
subText && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Text, { color: theme.text.secondary, children: subText })
|
|
37472
38236
|
] });
|
|
37473
38237
|
}, "AutoAcceptIndicator");
|
|
37474
38238
|
|
|
37475
38239
|
// packages/cli/src/ui/components/ContextUsageDisplay.tsx
|
|
37476
38240
|
init_esbuild_shims();
|
|
37477
|
-
var
|
|
38241
|
+
var import_jsx_runtime138 = __toESM(require_jsx_runtime(), 1);
|
|
37478
38242
|
var ContextUsageDisplay = /* @__PURE__ */ __name(({
|
|
37479
38243
|
promptTokenCount,
|
|
37480
38244
|
terminalWidth,
|
|
@@ -37488,19 +38252,19 @@ var ContextUsageDisplay = /* @__PURE__ */ __name(({
|
|
|
37488
38252
|
const isOverLimit = percentage > 1;
|
|
37489
38253
|
const label = contextUsageLabel(terminalWidth);
|
|
37490
38254
|
if (isOverLimit) {
|
|
37491
|
-
return /* @__PURE__ */ (0,
|
|
38255
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_jsx_runtime138.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(Text, { color: theme.status.error, children: [
|
|
37492
38256
|
percentageUsed,
|
|
37493
38257
|
label
|
|
37494
38258
|
] }) });
|
|
37495
38259
|
}
|
|
37496
|
-
return /* @__PURE__ */ (0,
|
|
38260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
37497
38261
|
percentageUsed,
|
|
37498
38262
|
label
|
|
37499
38263
|
] });
|
|
37500
38264
|
}, "ContextUsageDisplay");
|
|
37501
38265
|
|
|
37502
38266
|
// packages/cli/src/ui/components/agent-view/AgentFooter.tsx
|
|
37503
|
-
var
|
|
38267
|
+
var import_jsx_runtime139 = __toESM(require_jsx_runtime(), 1);
|
|
37504
38268
|
var AgentFooter = /* @__PURE__ */ __name(({
|
|
37505
38269
|
approvalMode,
|
|
37506
38270
|
promptTokenCount,
|
|
@@ -37512,7 +38276,7 @@ var AgentFooter = /* @__PURE__ */ __name(({
|
|
|
37512
38276
|
if (!showApproval && !showContext) {
|
|
37513
38277
|
return null;
|
|
37514
38278
|
}
|
|
37515
|
-
return /* @__PURE__ */ (0,
|
|
38279
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
|
|
37516
38280
|
Box_default,
|
|
37517
38281
|
{
|
|
37518
38282
|
justifyContent: "space-between",
|
|
@@ -37520,8 +38284,8 @@ var AgentFooter = /* @__PURE__ */ __name(({
|
|
|
37520
38284
|
flexDirection: "row",
|
|
37521
38285
|
alignItems: "center",
|
|
37522
38286
|
children: [
|
|
37523
|
-
/* @__PURE__ */ (0,
|
|
37524
|
-
/* @__PURE__ */ (0,
|
|
38287
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Box_default, { marginLeft: 2, children: showApproval ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(AutoAcceptIndicator, { approvalMode }) : null }),
|
|
38288
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Box_default, { marginRight: 2, children: showContext && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Text, { color: theme.text.accent, children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
37525
38289
|
ContextUsageDisplay,
|
|
37526
38290
|
{
|
|
37527
38291
|
promptTokenCount,
|
|
@@ -37535,7 +38299,7 @@ var AgentFooter = /* @__PURE__ */ __name(({
|
|
|
37535
38299
|
}, "AgentFooter");
|
|
37536
38300
|
|
|
37537
38301
|
// packages/cli/src/ui/components/agent-view/AgentComposer.tsx
|
|
37538
|
-
var
|
|
38302
|
+
var import_jsx_runtime140 = __toESM(require_jsx_runtime(), 1);
|
|
37539
38303
|
var EMPTY_MESSAGE_QUEUE2 = [];
|
|
37540
38304
|
var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
37541
38305
|
const {
|
|
@@ -37654,21 +38418,21 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37654
38418
|
}
|
|
37655
38419
|
}, [status, interactiveAgent]);
|
|
37656
38420
|
const inputBorderColor = !isInputActive || agentTabBarFocused ? theme.border.default : extendedTheme.ui.brand;
|
|
37657
|
-
const prefixNode = /* @__PURE__ */ (0,
|
|
38421
|
+
const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Text, { color: extendedTheme.ui.brand, children: [
|
|
37658
38422
|
glyphs().prompt,
|
|
37659
38423
|
" "
|
|
37660
38424
|
] });
|
|
37661
|
-
return /* @__PURE__ */ (0,
|
|
37662
|
-
/* @__PURE__ */ (0,
|
|
38425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(StreamingContext.Provider, { value: streamingState, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
38426
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
37663
38427
|
LoadingIndicator,
|
|
37664
38428
|
{
|
|
37665
38429
|
currentLoadingPhrase: streamingState === "responding" /* Responding */ ? t("Thinking\u2026") : void 0,
|
|
37666
38430
|
elapsedTime
|
|
37667
38431
|
}
|
|
37668
38432
|
),
|
|
37669
|
-
statusLabel && /* @__PURE__ */ (0,
|
|
37670
|
-
/* @__PURE__ */ (0,
|
|
37671
|
-
/* @__PURE__ */ (0,
|
|
38433
|
+
statusLabel && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { marginLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Text, { color: statusLabel.color, children: statusLabel.text }) }),
|
|
38434
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(Box_default, { marginTop: messageQueue.length > 0 ? 1 : 0, paddingLeft: 2, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(QueuedMessageDisplay, { messageQueue, showHint: false }) }),
|
|
38435
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
37672
38436
|
BaseTextInput,
|
|
37673
38437
|
{
|
|
37674
38438
|
buffer,
|
|
@@ -37681,7 +38445,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37681
38445
|
isActive: isInputActive && !agentShellFocused
|
|
37682
38446
|
}
|
|
37683
38447
|
),
|
|
37684
|
-
/* @__PURE__ */ (0,
|
|
38448
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
37685
38449
|
AgentFooter,
|
|
37686
38450
|
{
|
|
37687
38451
|
approvalMode: agentApprovalMode,
|
|
@@ -37696,7 +38460,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37696
38460
|
// packages/cli/src/ui/components/background-view/LiveAgentPanel.tsx
|
|
37697
38461
|
init_esbuild_shims();
|
|
37698
38462
|
var import_react127 = __toESM(require_react(), 1);
|
|
37699
|
-
var
|
|
38463
|
+
var import_jsx_runtime141 = __toESM(require_jsx_runtime(), 1);
|
|
37700
38464
|
var DEFAULT_MAX_ROWS = LIVE_AGENT_PANEL_MAX_ROWS;
|
|
37701
38465
|
var DEFAULT_SUBAGENT_TYPE = DEFAULT_BUILTIN_SUBAGENT_TYPE;
|
|
37702
38466
|
function isAgentEntry(entry) {
|
|
@@ -37814,7 +38578,7 @@ var LiveAgentPanel = /* @__PURE__ */ __name(({
|
|
|
37814
38578
|
}
|
|
37815
38579
|
}, [hasVisibleAgent, livePanelFocused, setLivePanelFocused]);
|
|
37816
38580
|
if (dialogOpen) return null;
|
|
37817
|
-
return /* @__PURE__ */ (0,
|
|
38581
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
37818
38582
|
LiveAgentPanelBody,
|
|
37819
38583
|
{
|
|
37820
38584
|
snapshots: liveAgentSnapshots,
|
|
@@ -37838,19 +38602,19 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
|
|
|
37838
38602
|
const visible = overflow > 0 ? visibleAgentsAsc.slice(-maxRows) : visibleAgentsAsc;
|
|
37839
38603
|
const totalItems = 1 + visible.length;
|
|
37840
38604
|
const clampedIndex = Math.min(selectedIndex, totalItems - 1);
|
|
37841
|
-
return /* @__PURE__ */ (0,
|
|
37842
|
-
/* @__PURE__ */ (0,
|
|
37843
|
-
/* @__PURE__ */ (0,
|
|
37844
|
-
/* @__PURE__ */ (0,
|
|
38605
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, width, paddingX: 2, children: [
|
|
38606
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { children: [
|
|
38607
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: focused ? theme.text.accent : theme.text.secondary, children: focused && clampedIndex === 0 ? "\u25B8 " : " " }),
|
|
38608
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { bold: true, color: theme.text.accent, children: "main" })
|
|
37845
38609
|
] }),
|
|
37846
|
-
overflow > 0 && /* @__PURE__ */ (0,
|
|
38610
|
+
overflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
37847
38611
|
Text,
|
|
37848
38612
|
{
|
|
37849
38613
|
color: theme.text.secondary,
|
|
37850
38614
|
children: ` ^ ${overflow} more above (\u2193 to view all)`
|
|
37851
38615
|
}
|
|
37852
38616
|
) }),
|
|
37853
|
-
visible.map((entry, idx) => /* @__PURE__ */ (0,
|
|
38617
|
+
visible.map((entry, idx) => /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
37854
38618
|
AgentRow,
|
|
37855
38619
|
{
|
|
37856
38620
|
entry,
|
|
@@ -37860,7 +38624,7 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
|
|
|
37860
38624
|
},
|
|
37861
38625
|
entry.agentId
|
|
37862
38626
|
)),
|
|
37863
|
-
focused && /* @__PURE__ */ (0,
|
|
38627
|
+
focused && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: " \u2191\u2193 navigate \xB7 Enter detail \xB7 Esc back" }) })
|
|
37864
38628
|
] });
|
|
37865
38629
|
}, "LiveAgentPanelBody");
|
|
37866
38630
|
var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) => {
|
|
@@ -37875,33 +38639,33 @@ var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) =
|
|
|
37875
38639
|
const prefix = selected ? "\u25B8 " : " ";
|
|
37876
38640
|
const treePrefix = treeRowPrefix(entry, tree);
|
|
37877
38641
|
const orphanNote = tree?.orphaned ? entry.parentName ? ` \xB7 from ${escapeAnsiCtrlCodes(entry.parentName)}` : " \xB7 nested" : "";
|
|
37878
|
-
return /* @__PURE__ */ (0,
|
|
37879
|
-
/* @__PURE__ */ (0,
|
|
37880
|
-
/* @__PURE__ */ (0,
|
|
37881
|
-
treePrefix !== "" && /* @__PURE__ */ (0,
|
|
37882
|
-
/* @__PURE__ */ (0,
|
|
37883
|
-
showType && /* @__PURE__ */ (0,
|
|
37884
|
-
/* @__PURE__ */ (0,
|
|
37885
|
-
/* @__PURE__ */ (0,
|
|
38642
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
38643
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: selected ? theme.text.accent : theme.text.secondary, children: prefix }) }),
|
|
38644
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Text, { wrap: "truncate-end", children: [
|
|
38645
|
+
treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
|
|
38646
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: color2, children: `${glyph} ` }),
|
|
38647
|
+
showType && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
|
|
38648
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { bold: true, children: safeSubagentType }),
|
|
38649
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: ": " })
|
|
37886
38650
|
] }),
|
|
37887
|
-
/* @__PURE__ */ (0,
|
|
37888
|
-
activity && /* @__PURE__ */ (0,
|
|
37889
|
-
orphanNote && /* @__PURE__ */ (0,
|
|
38651
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: label }),
|
|
38652
|
+
activity && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: ` (${activity})` }),
|
|
38653
|
+
orphanNote && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: orphanNote })
|
|
37890
38654
|
] }) }),
|
|
37891
|
-
/* @__PURE__ */ (0,
|
|
38655
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: tail }) })
|
|
37892
38656
|
] });
|
|
37893
38657
|
}, "AgentRow");
|
|
37894
38658
|
|
|
37895
38659
|
// packages/cli/src/ui/context-menu/ContextMenuOverlay.tsx
|
|
37896
38660
|
init_esbuild_shims();
|
|
37897
38661
|
var import_react128 = __toESM(require_react(), 1);
|
|
37898
|
-
var
|
|
38662
|
+
var import_jsx_runtime142 = __toESM(require_jsx_runtime(), 1);
|
|
37899
38663
|
var ContextMenuOverlay = /* @__PURE__ */ __name(() => {
|
|
37900
38664
|
const { menu } = useContextMenu();
|
|
37901
38665
|
if (!menu) {
|
|
37902
38666
|
return null;
|
|
37903
38667
|
}
|
|
37904
|
-
return /* @__PURE__ */ (0,
|
|
38668
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ActiveContextMenu, {});
|
|
37905
38669
|
}, "ContextMenuOverlay");
|
|
37906
38670
|
var ActiveContextMenu = /* @__PURE__ */ __name(() => {
|
|
37907
38671
|
const { menu, selectedIndex, closeMenu, setSelectedIndex, executeIndex } = useContextMenu();
|
|
@@ -37935,7 +38699,7 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
|
|
|
37935
38699
|
(max, item) => Math.max(max, item.label.length),
|
|
37936
38700
|
0
|
|
37937
38701
|
);
|
|
37938
|
-
return /* @__PURE__ */ (0,
|
|
38702
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
37939
38703
|
Box_default,
|
|
37940
38704
|
{
|
|
37941
38705
|
position: "absolute",
|
|
@@ -37947,7 +38711,7 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
|
|
|
37947
38711
|
paddingX: 0,
|
|
37948
38712
|
children: menu.items.map((item, index) => {
|
|
37949
38713
|
const selected = index === selectedIndex;
|
|
37950
|
-
return /* @__PURE__ */ (0,
|
|
38714
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
37951
38715
|
Text,
|
|
37952
38716
|
{
|
|
37953
38717
|
selectable: false,
|
|
@@ -37962,10 +38726,10 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
|
|
|
37962
38726
|
}, "ActiveContextMenu");
|
|
37963
38727
|
|
|
37964
38728
|
// packages/cli/src/ui/layouts/DefaultAppLayout.tsx
|
|
37965
|
-
var
|
|
38729
|
+
var import_jsx_runtime143 = __toESM(require_jsx_runtime(), 1);
|
|
37966
38730
|
var PinnedHeader = /* @__PURE__ */ __name(() => {
|
|
37967
38731
|
const { version } = useAppContext();
|
|
37968
|
-
return /* @__PURE__ */ (0,
|
|
38732
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AppHeader, { version, pinned: true });
|
|
37969
38733
|
}, "PinnedHeader");
|
|
37970
38734
|
var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
37971
38735
|
const uiState = useUIState();
|
|
@@ -37982,6 +38746,8 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
37982
38746
|
const { refreshStatic } = useUIActions();
|
|
37983
38747
|
const { activeView, agents } = useAgentViewState();
|
|
37984
38748
|
const { columns: terminalWidth } = useTerminalSize();
|
|
38749
|
+
const { dialogOpen: backgroundDialogOpen } = useBackgroundTaskViewState();
|
|
38750
|
+
const backgroundMargin = sideMargin(getLayoutTier(terminalWidth));
|
|
37985
38751
|
const hasAgents = agents.size > 0;
|
|
37986
38752
|
const isAgentTab = activeView !== "main" && agents.has(activeView);
|
|
37987
38753
|
const stickyTodoWidth = Math.min(uiState.mainAreaWidth, 64);
|
|
@@ -38003,17 +38769,17 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38003
38769
|
refreshStatic();
|
|
38004
38770
|
}
|
|
38005
38771
|
}, [activeView, refreshStatic]);
|
|
38006
|
-
return /* @__PURE__ */ (0,
|
|
38007
|
-
uiState.useTerminalBuffer && /* @__PURE__ */ (0,
|
|
38008
|
-
isAgentTab ? /* @__PURE__ */ (0,
|
|
38009
|
-
/* @__PURE__ */ (0,
|
|
38010
|
-
/* @__PURE__ */ (0,
|
|
38011
|
-
!uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0,
|
|
38012
|
-
/* @__PURE__ */ (0,
|
|
38013
|
-
/* @__PURE__ */ (0,
|
|
38772
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", width: terminalWidth, children: [
|
|
38773
|
+
uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(PinnedHeader, {}),
|
|
38774
|
+
isAgentTab ? /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
|
|
38775
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentChatView, { agentId: activeView }),
|
|
38776
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
|
|
38777
|
+
!uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
|
|
38778
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentComposer, { agentId: activeView }, activeView),
|
|
38779
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ExitWarning, {})
|
|
38014
38780
|
] })
|
|
38015
|
-
] }) : /* @__PURE__ */ (0,
|
|
38016
|
-
/* @__PURE__ */ (0,
|
|
38781
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(ScrollContext.Provider, { value: scrollActions, children: [
|
|
38782
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38017
38783
|
MainContent,
|
|
38018
38784
|
{
|
|
38019
38785
|
footerRef,
|
|
@@ -38021,18 +38787,18 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38021
38787
|
scrollActionsRef
|
|
38022
38788
|
}
|
|
38023
38789
|
),
|
|
38024
|
-
/* @__PURE__ */ (0,
|
|
38025
|
-
!uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0,
|
|
38026
|
-
uiState.dialogsVisible ? /* @__PURE__ */ (0,
|
|
38790
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
|
|
38791
|
+
!uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
|
|
38792
|
+
uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38027
38793
|
Box_default,
|
|
38028
38794
|
{
|
|
38029
|
-
marginX: 2,
|
|
38795
|
+
marginX: backgroundDialogOpen ? backgroundMargin : 2,
|
|
38030
38796
|
flexDirection: "column",
|
|
38031
|
-
width: uiState.isSettingsDialogOpen ? Math.max(1, terminalWidth - 4) : uiState.isApprovalModeDialogOpen ? Math.max(1, Math.min(terminalWidth - 4, 140)) : uiState.mainAreaWidth,
|
|
38797
|
+
width: backgroundDialogOpen ? Math.max(1, terminalWidth - backgroundMargin * 2) : uiState.isSettingsDialogOpen ? Math.max(1, terminalWidth - 4) : uiState.isApprovalModeDialogOpen ? Math.max(1, Math.min(terminalWidth - 4, 140)) : uiState.mainAreaWidth,
|
|
38032
38798
|
height: uiState.isApprovalModeDialogOpen || uiState.isSettingsDialogOpen ? void 0 : dialogHeight,
|
|
38033
38799
|
maxHeight: dialogHeight,
|
|
38034
38800
|
overflow: uiState.constrainHeight ? "hidden" : void 0,
|
|
38035
|
-
children: /* @__PURE__ */ (0,
|
|
38801
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38036
38802
|
DialogManager,
|
|
38037
38803
|
{
|
|
38038
38804
|
terminalWidth: uiState.terminalWidth,
|
|
@@ -38040,8 +38806,8 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38040
38806
|
}
|
|
38041
38807
|
)
|
|
38042
38808
|
}
|
|
38043
|
-
) : /* @__PURE__ */ (0,
|
|
38044
|
-
shouldShowStickyTodos && /* @__PURE__ */ (0,
|
|
38809
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
|
|
38810
|
+
shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38045
38811
|
StickyTodoList,
|
|
38046
38812
|
{
|
|
38047
38813
|
todos: uiState.stickyTodos,
|
|
@@ -38049,17 +38815,17 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38049
38815
|
maxVisibleItems: stickyTodoMaxVisibleItems
|
|
38050
38816
|
}
|
|
38051
38817
|
),
|
|
38052
|
-
uiState.btwItem && /* @__PURE__ */ (0,
|
|
38818
|
+
uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38053
38819
|
BtwMessage,
|
|
38054
38820
|
{
|
|
38055
38821
|
btw: uiState.btwItem.btw,
|
|
38056
38822
|
containerWidth: uiState.mainAreaWidth
|
|
38057
38823
|
}
|
|
38058
38824
|
) }),
|
|
38059
|
-
/* @__PURE__ */ (0,
|
|
38825
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Composer, { footerRef, inputLinesRef })
|
|
38060
38826
|
] }),
|
|
38061
|
-
/* @__PURE__ */ (0,
|
|
38062
|
-
!uiState.dialogsVisible && /* @__PURE__ */ (0,
|
|
38827
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ExitWarning, {}),
|
|
38828
|
+
!uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38063
38829
|
LiveAgentPanel,
|
|
38064
38830
|
{
|
|
38065
38831
|
width: uiState.terminalWidth,
|
|
@@ -38068,24 +38834,24 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38068
38834
|
)
|
|
38069
38835
|
] })
|
|
38070
38836
|
] }),
|
|
38071
|
-
hasAgents && !uiState.dialogsVisible && /* @__PURE__ */ (0,
|
|
38072
|
-
/* @__PURE__ */ (0,
|
|
38837
|
+
hasAgents && !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentTabBar, {}),
|
|
38838
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ContextMenuOverlay, {})
|
|
38073
38839
|
] });
|
|
38074
38840
|
}, "DefaultAppLayout");
|
|
38075
38841
|
|
|
38076
38842
|
// packages/cli/src/ui/App.tsx
|
|
38077
38843
|
import fs8 from "node:fs";
|
|
38078
|
-
var
|
|
38844
|
+
var import_jsx_runtime144 = __toESM(require_jsx_runtime(), 1);
|
|
38079
38845
|
var App = /* @__PURE__ */ __name(({ onExitSummary }) => {
|
|
38080
38846
|
const uiState = useUIState();
|
|
38081
38847
|
const settings = useSettings();
|
|
38082
38848
|
const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
|
|
38083
38849
|
const [dismissed, setDismissed] = (0, import_react130.useState)(false);
|
|
38084
38850
|
if (uiState.quittingMessages) {
|
|
38085
|
-
return /* @__PURE__ */ (0,
|
|
38851
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(QuittingDisplay, { onExit: onExitSummary });
|
|
38086
38852
|
}
|
|
38087
38853
|
if (settings.corruptedPath && !dismissed) {
|
|
38088
|
-
return /* @__PURE__ */ (0,
|
|
38854
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(StreamingContext.Provider, { value: uiState.streamingState, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
38089
38855
|
SettingsCorruptedDialog,
|
|
38090
38856
|
{
|
|
38091
38857
|
corruptedPath: settings.corruptedPath,
|
|
@@ -38131,7 +38897,7 @@ var App = /* @__PURE__ */ __name(({ onExitSummary }) => {
|
|
|
38131
38897
|
}
|
|
38132
38898
|
) }) });
|
|
38133
38899
|
}
|
|
38134
|
-
return /* @__PURE__ */ (0,
|
|
38900
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(StreamingContext.Provider, { value: uiState.streamingState, children: isScreenReaderEnabled ? /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(ScreenReaderAppLayout, {}) : /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(DefaultAppLayout, {}) });
|
|
38135
38901
|
}, "App");
|
|
38136
38902
|
|
|
38137
38903
|
// packages/cli/src/ui/utils/terminal-resize-reflow.ts
|
|
@@ -50245,7 +51011,7 @@ function historyToRemoteEvents(items, sessionId) {
|
|
|
50245
51011
|
__name(historyToRemoteEvents, "historyToRemoteEvents");
|
|
50246
51012
|
|
|
50247
51013
|
// packages/cli/src/ui/AppContainer.tsx
|
|
50248
|
-
var
|
|
51014
|
+
var import_jsx_runtime145 = __toESM(require_jsx_runtime(), 1);
|
|
50249
51015
|
var MCP_BATCH_FLUSH_MS = 16;
|
|
50250
51016
|
var STARTUP_PROFILE_FINALIZE_CAP_MS = 35e3;
|
|
50251
51017
|
var CTRL_EXIT_PROMPT_DURATION_MS = 1e3;
|
|
@@ -54139,18 +54905,18 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
54139
54905
|
}),
|
|
54140
54906
|
[expandedToolBatchIds, expandToolBatch]
|
|
54141
54907
|
);
|
|
54142
|
-
return /* @__PURE__ */ (0,
|
|
54908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(VirtualViewportContext.Provider, { value: useTerminalBuffer, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(UIStateContext.Provider, { value: uiState, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(UIActionsContext.Provider, { value: uiActions, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ConfigContext.Provider, { value: config, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
54143
54909
|
AppContext.Provider,
|
|
54144
54910
|
{
|
|
54145
54911
|
value: {
|
|
54146
54912
|
version: props.version,
|
|
54147
54913
|
startupWarnings
|
|
54148
54914
|
},
|
|
54149
|
-
children: /* @__PURE__ */ (0,
|
|
54915
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ThoughtExpandedProvider, { value: thoughtExpandedValue, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ToolDetailsExpandedProvider, { value: toolDetailsExpandedValue, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(RenderModeProvider, { value: renderModeValue, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(TerminalOutputProvider, { value: writeRaw, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(ShellFocusContext.Provider, { value: isFocused, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
54150
54916
|
ContextMenuProvider,
|
|
54151
54917
|
{
|
|
54152
54918
|
onMenuChange: handleContextMenuChange,
|
|
54153
|
-
children: /* @__PURE__ */ (0,
|
|
54919
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(App, { onExitSummary: finishExit })
|
|
54154
54920
|
}
|
|
54155
54921
|
) }) }) }) }) })
|
|
54156
54922
|
}
|
|
@@ -54252,7 +55018,7 @@ function installSynchronizedOutput(stdout = process.stdout, env = process.env) {
|
|
|
54252
55018
|
__name(installSynchronizedOutput, "installSynchronizedOutput");
|
|
54253
55019
|
|
|
54254
55020
|
// packages/cli/src/ui/startInteractiveUI.tsx
|
|
54255
|
-
var
|
|
55021
|
+
var import_jsx_runtime146 = __toESM(require_jsx_runtime(), 1);
|
|
54256
55022
|
var debugLogger41 = createDebugLogger("STARTUP");
|
|
54257
55023
|
var PRESSURE_CHECK_INTERVAL_MS = 3e4;
|
|
54258
55024
|
async function startInteractiveUI(config, settings, startupWarnings, workspaceRoot = process.cwd(), initializationResult, options = {}) {
|
|
@@ -54359,7 +55125,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
54359
55125
|
alive = false;
|
|
54360
55126
|
};
|
|
54361
55127
|
}, []);
|
|
54362
|
-
return /* @__PURE__ */ (0,
|
|
55128
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(PeerInboxFailureContext.Provider, { value: peerInboxFailure, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(PeerMessagingContext.Provider, { value: peerMessaging, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(RemoteInputContext.Provider, { value: remoteInputWatcher, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(DualOutputContext.Provider, { value: dualOutputSinks, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(RemoteControllerContext.Provider, { value: remoteController, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(SettingsContext.Provider, { value: settings, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
54363
55129
|
KeypressProvider,
|
|
54364
55130
|
{
|
|
54365
55131
|
kittyProtocolEnabled: kittyProtocolStatus.enabled,
|
|
@@ -54367,7 +55133,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
54367
55133
|
debugKeystrokeLogging: settings.merged.general?.debugKeystrokeLogging,
|
|
54368
55134
|
pasteWorkaround: process.platform === "win32" || nodeMajorVersion < 20,
|
|
54369
55135
|
initialCapturedInput,
|
|
54370
|
-
children: /* @__PURE__ */ (0,
|
|
55136
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(SessionStatsProvider, { sessionId: config.getSessionId(), children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(VimModeProvider, { settings, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(AgentViewProvider, { config, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(BackgroundTaskViewProvider, { config, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
54371
55137
|
AppContainer,
|
|
54372
55138
|
{
|
|
54373
55139
|
config,
|
|
@@ -54387,7 +55153,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
54387
55153
|
if (useVP) {
|
|
54388
55154
|
process.stdout.setMaxListeners(0);
|
|
54389
55155
|
}
|
|
54390
|
-
const appTree = /* @__PURE__ */ (0,
|
|
55156
|
+
const appTree = /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
54391
55157
|
ErrorBoundary,
|
|
54392
55158
|
{
|
|
54393
55159
|
recordForExitEcho: true,
|
|
@@ -54401,11 +55167,11 @@ ${error.stack ?? ""}`
|
|
|
54401
55167
|
void runExitCleanup().then(() => process.exit(1));
|
|
54402
55168
|
}, 5e3);
|
|
54403
55169
|
},
|
|
54404
|
-
children: /* @__PURE__ */ (0,
|
|
55170
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(AppWrapper, {})
|
|
54405
55171
|
}
|
|
54406
55172
|
);
|
|
54407
55173
|
const instance = render_default(
|
|
54408
|
-
process.env["DEBUG"] ? /* @__PURE__ */ (0,
|
|
55174
|
+
process.env["DEBUG"] ? /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_react181.default.StrictMode, { children: appTree }) : appTree,
|
|
54409
55175
|
{
|
|
54410
55176
|
exitOnCtrlC: false,
|
|
54411
55177
|
isScreenReaderEnabled: config.getScreenReader(),
|