@organizaone/o1-code 0.19.4 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/features/sub-agents.md +29 -0
- package/chunks/{MaxSizedBox-IEWPEYLM.js → MaxSizedBox-K453N7OJ.js} +67 -67
- package/chunks/{StandaloneSessionPicker-O5XGGHSV.js → StandaloneSessionPicker-7LEKR6B6.js} +91 -90
- package/chunks/{acp-subagent-executor-SARFPLBX.js → acp-subagent-executor-KOZFCXR6.js} +70 -70
- package/chunks/{acpAgent-WI2WIHJ2.js → acpAgent-TXF2EESQ.js} +152 -151
- package/chunks/{agent-TRD3DVKW.js → agent-NTOX6TWC.js} +46 -46
- package/chunks/{agent-headless-L3ODBSIA.js → agent-headless-32TGYQU2.js} +46 -46
- package/chunks/{all-providers-Q4UTI7X7.js → all-providers-Q3J2KNYY.js} +2 -2
- package/chunks/{anthropicContentGenerator-R5EZMIUD.js → anthropicContentGenerator-C4H5D7AR.js} +10 -10
- 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-MA3C46FT.js} +71 -71
- package/chunks/{bwrap-execution-PXKLC4L6.js → bwrap-execution-A5QZJK2I.js} +7 -7
- 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-U3KIMPCC.js → chunk-2F3GZ6WG.js} +1 -1
- package/chunks/{chunk-IZSIFV6S.js → chunk-2I2NK33A.js} +1 -1
- package/chunks/{chunk-YCTMVTDP.js → chunk-2SMHE6PC.js} +1 -1
- package/chunks/{chunk-OBKNDDZW.js → chunk-2UDEKBYA.js} +54 -54
- package/chunks/{chunk-WK44MSGW.js → chunk-32722SNN.js} +1 -1
- package/chunks/{chunk-CFFFKDAX.js → chunk-3I7PGVYC.js} +1 -1
- package/chunks/{chunk-XC6BAHJR.js → chunk-3K7BQWZY.js} +1 -1
- package/chunks/{chunk-E554MWZ4.js → chunk-3SCPHVRF.js} +2 -2
- package/chunks/chunk-3UJ6A45H.js +259 -0
- package/chunks/{chunk-FRDIFAE7.js → chunk-3YBMUB43.js} +1 -1
- package/chunks/{chunk-VUJ4WYBZ.js → chunk-4P64F4DP.js} +1 -1
- package/chunks/{chunk-PCN4NLQX.js → chunk-5MP3GGWM.js} +2 -2
- package/chunks/{chunk-6XUAD5G6.js → chunk-62UWQRWK.js} +3 -3
- package/chunks/{chunk-OSMXNPJP.js → chunk-6CW53FOJ.js} +2 -2
- package/chunks/{chunk-7ONVZOIL.js → chunk-6UDLEDID.js} +1 -1
- package/chunks/{chunk-53B5T577.js → chunk-7ADYEHKM.js} +1 -1
- package/chunks/{chunk-GJFAQ4TA.js → chunk-7CDZR7TE.js} +5 -5
- package/chunks/{chunk-S3ERVFHU.js → chunk-7HCWHQSP.js} +9 -9
- package/chunks/{chunk-D5LBASZ7.js → chunk-7QFTUN62.js} +1 -1
- package/chunks/{chunk-Z3JO7QH2.js → chunk-A55LB5TM.js} +1 -1
- package/chunks/{chunk-XOVXSDNN.js → chunk-AGTM6524.js} +2 -2
- package/chunks/{chunk-LZPTOCB6.js → chunk-AIU3JWUX.js} +9 -9
- package/chunks/{chunk-RGEOMZSI.js → chunk-ASP55J6A.js} +14 -14
- package/chunks/{chunk-WN23CFGN.js → chunk-ASQLIG2L.js} +19 -19
- package/chunks/{chunk-FIXBGZLC.js → chunk-ASWPB74Q.js} +3 -3
- package/chunks/{chunk-KNSZB75B.js → chunk-BEZWXDOT.js} +10 -10
- package/chunks/{chunk-Q4SBLB6E.js → chunk-BLABAT4U.js} +2 -2
- package/chunks/{chunk-YO3SEHXM.js → chunk-BNJ3IJB7.js} +1 -1
- package/chunks/{chunk-74XOBBIF.js → chunk-BP4CPYAM.js} +1 -1
- package/chunks/{chunk-73IWVPN4.js → chunk-BRW37PKP.js} +69 -69
- package/chunks/{chunk-UOO4TFQV.js → chunk-BZRPH7VF.js} +16 -16
- package/chunks/{chunk-TD372APW.js → chunk-CCW6IQGJ.js} +5 -5
- package/chunks/{chunk-OMOKTMD5.js → chunk-CDXXQLVZ.js} +5 -5
- package/chunks/{chunk-2Z5S36GZ.js → chunk-CMS6LBMK.js} +2 -2
- package/chunks/{chunk-XOP6HC4S.js → chunk-D5Y6P57R.js} +3 -3
- package/chunks/{chunk-2XBK3KBR.js → chunk-D7DZAA5W.js} +3 -3
- package/chunks/{chunk-JOBNLOEW.js → chunk-DNFPKNWM.js} +2 -2
- package/chunks/{chunk-ZQBNP2ZQ.js → chunk-DNMM4RF7.js} +3 -3
- package/chunks/{chunk-ZHDGCGW7.js → chunk-DRONBPX2.js} +2 -2
- package/chunks/{chunk-HYGNYNEB.js → chunk-DV7OATUZ.js} +1 -1
- package/chunks/{chunk-QYUMJTBP.js → chunk-DVR4QCFA.js} +2 -2
- package/chunks/{chunk-5HVWJGQN.js → chunk-EFTQJBOI.js} +1 -1
- package/chunks/{chunk-7OBN7TW6.js → chunk-EOQIIUFY.js} +3 -3
- package/chunks/{chunk-3NT6BHLE.js → chunk-G2OKMHVX.js} +5 -5
- package/chunks/{chunk-LKU26DC5.js → chunk-G7HV5FVG.js} +2 -2
- package/chunks/{chunk-FAOCU5VJ.js → chunk-G7JBBQVU.js} +1 -1
- package/chunks/{chunk-NEHYQ3LT.js → chunk-GIB2TRUW.js} +15 -15
- package/chunks/{chunk-U6NS36IA.js → chunk-GT2ATHFG.js} +4 -4
- package/chunks/{chunk-75UFQ4VY.js → chunk-H2GNNVMW.js} +4 -4
- package/chunks/{chunk-FFUKRRCR.js → chunk-HAZNBQPI.js} +1 -1
- package/chunks/{chunk-PZPDQGRC.js → chunk-HCD2C6MU.js} +8 -8
- package/chunks/{chunk-ID6BF7FM.js → chunk-HO45CNDB.js} +1 -1
- package/chunks/{chunk-H5AU3734.js → chunk-HVQQIKDI.js} +1 -1
- package/chunks/{chunk-2MXORWOC.js → chunk-IMLPJ76O.js} +1 -1
- package/chunks/{chunk-DUHNRPAF.js → chunk-INGWSCK5.js} +1 -1
- package/chunks/{chunk-VBDGXRYM.js → chunk-IV56M43Z.js} +6 -6
- package/chunks/{chunk-H4GDMMIG.js → chunk-IVVMETSX.js} +1 -1
- package/chunks/{chunk-7LFCBMVX.js → chunk-JEUH2DSW.js} +2 -2
- package/chunks/{chunk-LJLEOFW5.js → chunk-JF3N4RE2.js} +1 -1
- package/chunks/{chunk-TC6APBKO.js → chunk-JIECZNY6.js} +1 -1
- package/chunks/{chunk-NIPNNHXO.js → chunk-JSRLBGQW.js} +9 -9
- package/chunks/{chunk-H4OG24QJ.js → chunk-JXHE3Q7W.js} +10 -10
- package/chunks/{chunk-GNF3RKRI.js → chunk-K3XD5ECD.js} +1 -1
- package/chunks/{chunk-NLDWAN5E.js → chunk-KPX5HEZT.js} +1 -1
- package/chunks/{chunk-QYVHXOTK.js → chunk-KT4SJM3N.js} +4 -4
- package/chunks/{chunk-7R7LA5F5.js → chunk-KUPFPBJP.js} +18 -18
- package/chunks/{chunk-HHG3UCD5.js → chunk-LO6VR36F.js} +25 -4
- package/chunks/{chunk-TZKJ3CYY.js → chunk-LOB3R2LB.js} +1 -1
- package/chunks/{chunk-7S2AYA27.js → chunk-M7ZHP7VU.js} +1 -1
- package/chunks/{chunk-O7ZK6JUE.js → chunk-N7CYQT7L.js} +26 -26
- package/chunks/{chunk-HFQJYTZB.js → chunk-NGEWU2DI.js} +3 -3
- package/chunks/{chunk-EAULWM27.js → chunk-NJYNBWEO.js} +2 -2
- package/chunks/{chunk-CJG6P7UJ.js → chunk-NZWZTJMM.js} +7 -7
- package/chunks/{chunk-2I7F4TTF.js → chunk-O3FUFDAZ.js} +1 -1
- package/chunks/{chunk-G5QZC3KV.js → chunk-OJAGNSHH.js} +3 -3
- package/chunks/{chunk-CQURIVUY.js → chunk-OMMOMHTD.js} +6 -6
- package/chunks/{chunk-ZPCVRY42.js → chunk-P2JIFC4O.js} +1 -1
- package/chunks/{chunk-R54WGB5K.js → chunk-P5SAF7QU.js} +7 -7
- package/chunks/{chunk-5MGXHMC4.js → chunk-P6KD4P3E.js} +1 -1
- package/chunks/{chunk-XVSSUT2K.js → chunk-PHCY2DQ2.js} +4 -4
- package/chunks/{chunk-OPYQYNSR.js → chunk-PJZS6TLH.js} +11 -11
- package/chunks/{chunk-B3E57DII.js → chunk-PUBQDZLP.js} +1 -1
- package/chunks/{chunk-NUADBQGA.js → chunk-PW5PDEJH.js} +11 -11
- package/chunks/{chunk-HKBLZQYR.js → chunk-Q6IDKPJW.js} +1 -1
- package/chunks/{chunk-V75J4GJ2.js → chunk-QCE3SPTV.js} +1 -1
- package/chunks/{chunk-ADHXMZ3K.js → chunk-QECJHTGC.js} +1 -1
- package/chunks/{chunk-ZJLBESKM.js → chunk-QFGPKAOX.js} +2 -2
- package/chunks/{chunk-63PQ6B3U.js → chunk-QHTEPXED.js} +1 -1
- package/chunks/{chunk-4LITKLIX.js → chunk-QIRJOOS6.js} +71 -71
- package/chunks/{chunk-WA5T74EJ.js → chunk-QMTHJGAM.js} +5 -5
- package/chunks/{chunk-RJBN74YD.js → chunk-QSFWRJQF.js} +2 -2
- package/chunks/{chunk-GQCAN53O.js → chunk-RV2TL4NM.js} +2 -2
- package/chunks/{chunk-HU66EQY6.js → chunk-RVRJZT5M.js} +1 -1
- package/chunks/{chunk-X4OQN3ZO.js → chunk-SDKL3D4L.js} +2 -2
- package/chunks/{chunk-VT3TJFQR.js → chunk-SHADJNT6.js} +2 -2
- package/chunks/{chunk-JX3AAXJY.js → chunk-SKPIIDV3.js} +1 -1
- package/chunks/{chunk-KC5PN54N.js → chunk-SSIOTLWY.js} +3 -3
- package/chunks/{chunk-RNEMD6QU.js → chunk-SU6K5JRJ.js} +1 -1
- package/chunks/{chunk-IWYGXAQU.js → chunk-SYMYKLO4.js} +2 -0
- package/chunks/{chunk-VEJCE7UR.js → chunk-SZ26YNBZ.js} +1 -1
- package/chunks/{chunk-FH534GWJ.js → chunk-T4WPMWU4.js} +1256 -1107
- package/chunks/{chunk-LH3T52KS.js → chunk-T5Z45XLU.js} +1 -1
- package/chunks/{chunk-2LB3FV6Y.js → chunk-TB7SJODY.js} +5 -5
- package/chunks/{chunk-MZI6FDZT.js → chunk-THO5UG52.js} +1 -1
- package/chunks/{chunk-7ZXK4ANS.js → chunk-TIWB6RLI.js} +29 -29
- package/chunks/{chunk-JFO6OCHQ.js → chunk-TYYTQIEZ.js} +1 -1
- package/chunks/{chunk-JKOS3HZY.js → chunk-UBBREU4U.js} +3 -3
- package/chunks/{chunk-QTI36T2P.js → chunk-ULFANPGF.js} +5 -5
- package/chunks/{chunk-OW44PTOE.js → chunk-UUZBSXW2.js} +8 -8
- package/chunks/{chunk-DQZYZDIL.js → chunk-UW4Q5E5P.js} +1 -1
- package/chunks/{chunk-OT7EXUL3.js → chunk-VCYXTJKE.js} +3 -3
- package/chunks/{chunk-GVWQRVLV.js → chunk-VEGSKFFR.js} +1 -1
- package/chunks/{chunk-QGBGLKMW.js → chunk-VHFC6CDB.js} +27 -27
- package/chunks/{chunk-SGO7T2LC.js → chunk-VRHNWL5X.js} +2 -2
- package/chunks/{chunk-YBZG6WG2.js → chunk-VYUHXV5Q.js} +2 -2
- package/chunks/{chunk-HDCVSMR4.js → chunk-WEPGJI5V.js} +67 -24
- package/chunks/{chunk-PPHCWNOW.js → chunk-WFLDNTCT.js} +4 -4
- package/chunks/{chunk-6GEEXVXS.js → chunk-WRHVLLKJ.js} +5 -5
- package/chunks/{chunk-OJSW65PQ.js → chunk-WXMXXBCC.js} +5 -2
- package/chunks/{chunk-FNALBCC7.js → chunk-WXTAP6NR.js} +1 -1
- package/chunks/{chunk-I5INQP6E.js → chunk-XA3N5TO5.js} +1 -1
- package/chunks/{chunk-FJHDFJVI.js → chunk-XI7IX5QR.js} +1 -1
- package/chunks/{chunk-Y5KGWAF5.js → chunk-Y5P7ZZEN.js} +3 -3
- package/chunks/{chunk-QG4PTE3V.js → chunk-Y7AZBD2R.js} +3 -3
- package/chunks/{chunk-4QVZPLPW.js → chunk-YMZWUG55.js} +4 -4
- package/chunks/{chunk-KHSEVS3O.js → chunk-YU6Z65RE.js} +2 -2
- package/chunks/{chunk-O7RFFTTE.js → chunk-YWMF5ROG.js} +4 -4
- package/chunks/{chunk-R4ECPR25.js → chunk-YXYCU2GM.js} +3 -3
- package/chunks/{chunk-6NPHWGZJ.js → chunk-ZHF2UQ6M.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-XDCQSK23.js} +70 -70
- 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-6HRAN3Q2.js} +68 -68
- package/chunks/{convert-image-AYXBZ3TH.js → convert-image-4MPD5TZ5.js} +1 -1
- package/chunks/{core-runtime-UERTINTN.js → core-runtime-MFAU5CF4.js} +66 -66
- package/chunks/{create-sub-session-BJIHWC5U.js → create-sub-session-EUZQNTYQ.js} +67 -67
- 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-JHY5W4ZW.js} +67 -67
- package/chunks/{daemon-status-provider-77MFFWPG.js → daemon-status-provider-IV2EYOEH.js} +76 -76
- package/chunks/{daemon-trust-policy-QS7LZ4DW.js → daemon-trust-policy-ENUUMAXH.js} +72 -72
- package/chunks/{daemon-trust-policy-monitor-AY7BR4O7.js → daemon-trust-policy-monitor-FMG7RJKV.js} +72 -72
- package/chunks/{deferred-core-runtime-OCMBUSB5.js → deferred-core-runtime-CJQCZJPG.js} +69 -69
- 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-HDL6LZNC.js} +4 -4
- package/chunks/{downscale-video-GQ5ZMJRX.js → downscale-video-XZNDYVK4.js} +1 -1
- package/chunks/{edit-TLQKC3LG.js → edit-XGLKDGPA.js} +48 -48
- package/chunks/{en-YJDPOSAW.js → en-LFESTYTB.js} +42 -0
- package/chunks/{enter-worktree-MF4APJEN.js → enter-worktree-FY6Y6APX.js} +5 -5
- package/chunks/{enterPlanMode-76BPF6LH.js → enterPlanMode-7S4DMCPX.js} +48 -48
- package/chunks/{environment-AMUW2KX3.js → environment-2JAP76AW.js} +68 -68
- package/chunks/{errors-KNTKHM6L.js → errors-YOLWCYL7.js} +68 -68
- package/chunks/{exec-J7LCEEPS.js → exec-36YD62RP.js} +1 -1
- package/chunks/{execution-sandbox-config-VE7OGRXY.js → execution-sandbox-config-2RI6A7VE.js} +8 -8
- package/chunks/{execution-tool-263V5JEK.js → execution-tool-4HC3L4TQ.js} +49 -49
- package/chunks/{execution-worker-JHOCJBIN.js → execution-worker-5RRYF3B6.js} +57 -57
- package/chunks/{exit-worktree-DXSLV6EM.js → exit-worktree-Q3ZHCBYN.js} +5 -5
- package/chunks/{exitPlanMode-K6B2JODR.js → exitPlanMode-NZHLFZLJ.js} +46 -46
- 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-NIGD342A.js} +5 -5
- package/chunks/{glob-EBASENJF.js → glob-ELCVZAJ4.js} +47 -47
- package/chunks/{goal-tools-QZECYB4S.js → goal-tools-7BG6WES7.js} +46 -46
- package/chunks/{grep-NAW5AFAD.js → grep-JBR55JCA.js} +3 -3
- package/chunks/{handleAutoUpdate-XBTIE4FC.js → handleAutoUpdate-5GKL7VQ6.js} +69 -69
- package/chunks/{i18n-J7ANXY2X.js → i18n-OMIA7E4U.js} +67 -67
- package/chunks/{image-gen-Q4E7L7EV.js → image-gen-27Q5XGGZ.js} +1 -1
- package/chunks/{initializer-6INBSHTX.js → initializer-NG5E4POR.js} +72 -72
- package/chunks/{installationInfo-VK32EWFR.js → installationInfo-7VHALE7P.js} +66 -66
- package/chunks/{list-KEQUWD6M.js → list-MWDQAIAZ.js} +74 -74
- package/chunks/{list-agents-A7UJ6VXZ.js → list-agents-T2EHYFCL.js} +1 -1
- package/chunks/{llm-CR5OP72L.js → llm-3ZAGCSJL.js} +125 -120
- package/chunks/{llm-content-generator-K2DRDNXN.js → llm-content-generator-SFPAYYOJ.js} +7 -7
- package/chunks/{loadedSettingsAdapter-PJPH4OCO.js → loadedSettingsAdapter-RBAYH3F2.js} +72 -72
- package/chunks/{local-execution-environment-QC5UHGMN.js → local-execution-environment-AJF47BTW.js} +57 -57
- package/chunks/{loggingContentGenerator-DJEMIYHV.js → loggingContentGenerator-5MDGVYRW.js} +58 -58
- 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-N2WHAQ6J.js} +66 -66
- package/chunks/{mcp-TYYYLGMV.js → mcp-YKMSQCHU.js} +72 -72
- package/chunks/{memory-side-query-BSVTSKCB.js → memory-side-query-DNXJZB7B.js} +2 -2
- package/chunks/{model-call-collection-FFR7ZNWD.js → model-call-collection-BE2H44PN.js} +3 -3
- package/chunks/{model-configuration-GUZIIGAH.js → model-configuration-4U5BOYQX.js} +73 -73
- package/chunks/{modelConfigUtils-PKQ46KSJ.js → modelConfigUtils-OJZUSINX.js} +68 -68
- package/chunks/{monitor-FNMBX5BB.js → monitor-3WKOMMC6.js} +47 -47
- package/chunks/{nonInteractiveCli-LATJ4A34.js → nonInteractiveCli-MGX6RBDW.js} +106 -105
- package/chunks/{nonInteractiveToolExecutor-YQOVVH6B.js → nonInteractiveToolExecutor-XVGERMMR.js} +47 -47
- package/chunks/{notebook-edit-BW4DJWZU.js → notebook-edit-WPIXQ25B.js} +47 -47
- package/chunks/{ocr-image-O6ECQNUE.js → ocr-image-UTGQDI5V.js} +3 -3
- package/chunks/{omni-YYVIGRGX.js → omni-34TDK3DM.js} +16 -16
- package/chunks/{openaiContentGenerator-FG3UZCTL.js → openaiContentGenerator-XNEEZYGM.js} +51 -51
- package/chunks/{openaiResponsesContentGenerator-XOT5DTAC.js → openaiResponsesContentGenerator-PAWM7H5R.js} +12 -12
- package/chunks/{processUtils-QBMARONE.js → processUtils-GJWNO6CX.js} +2 -2
- package/chunks/{prompt-terminal-ledger-VUCLICZG.js → prompt-terminal-ledger-LN6JQ2G2.js} +67 -67
- package/chunks/{pt-TSNNSVF3.js → pt-EY6TJFGW.js} +42 -0
- package/chunks/{reactive-degrade-VPQZF55X.js → reactive-degrade-7C3JTVTP.js} +12 -12
- package/chunks/{read-file-2O33TKD7.js → read-file-XZXFDCA6.js} +13 -13
- 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-BLD2JYBR.js} +72 -72
- package/chunks/{ripGrep-U4HZCL4K.js → ripGrep-V2UHA5BK.js} +17 -17
- package/chunks/{run-o1-code-serve-B5XNSRQI.js → run-o1-code-serve-X6RDPQQN.js} +35 -35
- package/chunks/{runtime-shell-policy-R4LXGDDO.js → runtime-shell-policy-ENSGJINV.js} +1 -1
- package/chunks/{sandboxConfig-6LJHLGOT.js → sandboxConfig-BYPE3SB6.js} +66 -66
- package/chunks/{scheduled-tasks-DBHHUK3R.js → scheduled-tasks-YXWYCZIW.js} +74 -74
- package/chunks/{scheduler-XHIPT4EI.js → scheduler-XCPGPBZJ.js} +68 -68
- package/chunks/{sdk-exporters-grpc-7ZF7NWTA.js → sdk-exporters-grpc-U5H74BEL.js} +2 -2
- package/chunks/{sdk-exporters-http-73LTU25J.js → sdk-exporters-http-34H6REMF.js} +3 -3
- package/chunks/{sdk-impl-IAUUHG7Z.js → sdk-impl-5OTPCVXV.js} +5 -5
- package/chunks/{send-message-XY7EC52V.js → send-message-KFUNQQFA.js} +5 -5
- package/chunks/{serve-6MCT2M2A.js → serve-FBHWAMZQ.js} +72 -72
- package/chunks/{server-B3KEPLVK.js → server-UQLKGTWU.js} +131 -131
- package/chunks/{session-XDZM36XY.js → session-OGWTPHTK.js} +107 -106
- package/chunks/{session-DTLH45KY.js → session-VPWL2DX2.js} +1 -1
- package/chunks/{session-attachments-root-DUCWV5SV.js → session-attachments-root-M26TQWO6.js} +66 -66
- package/chunks/{session-pr-refresh-6XZHJOHJ.js → session-pr-refresh-XURIUCED.js} +73 -73
- package/chunks/{settings-EIBLUO2U.js → settings-6MJCNEY5.js} +71 -71
- package/chunks/{shell-7U5KEVDP.js → shell-RIIDO6RZ.js} +46 -46
- package/chunks/{skill-RQNSH7FP.js → skill-W5GW56BH.js} +17 -17
- package/chunks/{skill-settings-RLPBS65V.js → skill-settings-DMGR5FHY.js} +72 -72
- package/chunks/{spawnChannel-ORMDVKIV.js → spawnChannel-RWGGO6X2.js} +69 -69
- package/chunks/{standalone-update-EFWC3EXO.js → standalone-update-XVR7WYWV.js} +68 -68
- package/chunks/{startInteractiveUI-XPJQ6N4R.js → startInteractiveUI-QE25VGX2.js} +1632 -867
- 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-V5DQGWMS.js} +46 -46
- package/chunks/{team-delete-WBSKRFVF.js → team-delete-RL37ORM3.js} +1 -1
- package/chunks/{team-plan-approval-ZICR7PLR.js → team-plan-approval-2NIL3Q77.js} +46 -46
- package/chunks/{terminal-image-renderer-KNBEKIBU.js → terminal-image-renderer-CRCFT57H.js} +66 -66
- package/chunks/{theme-manager-ELLW2WSH.js → theme-manager-TCTYBF5V.js} +66 -66
- 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-IISRSEFL.js} +16 -16
- package/chunks/{tool-search-5YDYOBEY.js → tool-search-EMMXLL3Z.js} +17 -17
- package/chunks/{total-session-admission-5J6FUOHB.js → total-session-admission-I6256XRH.js} +71 -71
- package/chunks/{transcribe-audio-R6YC24KU.js → transcribe-audio-WOITX4I2.js} +2 -2
- package/chunks/{trustedFolders-L4OBHBMG.js → trustedFolders-VYKGMRLU.js} +67 -67
- package/chunks/{understand-video-segments-2WK4T6PO.js → understand-video-segments-YFCIFF7P.js} +3 -3
- package/chunks/{update-relaunch-OLWQOXJD.js → update-relaunch-N6Q6SXQR.js} +5 -5
- package/chunks/{updateCheck-P4256JN4.js → updateCheck-MHHINLNL.js} +68 -68
- package/chunks/{upload-config-W6QM7O7M.js → upload-config-4NBDT35S.js} +7 -7
- package/chunks/{useAutoAcceptIndicator-GAV5FOVS.js → useAutoAcceptIndicator-PSLAXXIF.js} +76 -75
- package/chunks/{validateNonInterActiveAuth-JSAM5DKT.js → validateNonInterActiveAuth-7Q7WV7ZN.js} +103 -102
- package/chunks/{version-J4K7YJEP.js → version-AJLUIHWI.js} +1 -1
- package/chunks/{web-fetch-KU4CTSQA.js → web-fetch-4HI4SH5S.js} +13 -13
- package/chunks/{web-search-6EC47GMF.js → web-search-432FZTQD.js} +9 -9
- package/chunks/{workflow-4LNE5CRK.js → workflow-KVNXIEIQ.js} +49 -49
- package/chunks/{workspace-providers-status-5X5EEQU4.js → workspace-providers-status-7UBH5FZO.js} +78 -78
- package/chunks/{workspace-registration-store-B7RGZ7XC.js → workspace-registration-store-NWN4IAHF.js} +1 -1
- package/chunks/{workspace-registry-DGFL345F.js → workspace-registry-X2NLZYDK.js} +71 -71
- package/chunks/{workspace-runtime-coordinator-JOUD45MU.js → workspace-runtime-coordinator-SGKJJPRO.js} +72 -72
- package/chunks/{workspace-service-MVNGRTAX.js → workspace-service-RABSJN2O.js} +77 -77
- package/chunks/{workspace-skills-status-54YB4YNO.js → workspace-skills-status-NWLUCLXW.js} +75 -75
- package/chunks/{workspace-trust-reconciler-XWTFKN7T.js → workspace-trust-reconciler-6L5CEM6N.js} +77 -77
- package/chunks/{write-file-PAA35JB5.js → write-file-C3GFBE6P.js} +49 -49
- package/chunks/{zoom-image-7UF6I5FM.js → zoom-image-DVMN6NQZ.js} +13 -13
- package/cli.js +14 -14
- package/execution-worker.js +1 -1
- package/export-transcript-document.js +3 -3
- package/locales/en.js +50 -0
- package/locales/pt.js +50 -0
- package/package.json +3 -2
- package/release-notes.json +13 -0
- package/vendor/ripgrep/COPYING +11 -0
- package/vendor/ripgrep/LICENSE-MIT +21 -0
- package/vendor/ripgrep/UNLICENSE +24 -0
- package/vendor/ripgrep/arm64-win32/rg.exe +0 -0
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DaskAjYa.js → abnfDiagram-VCTEODGH-4tyJ-IOM.js} +1 -1
- package/web-shell/assets/{arc-CeF5eQNa.js → arc-D5XHMvp_.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-0cJpQiMQ.js → architectureDiagram-5GKGNRK7-DTJyMJ4K.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-ZRZ9t0GN.js → blockDiagram-NRAW4CY4-llcJtAbu.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-wIoBOLjK.js → c4Diagram-UCG6FXSJ-CVRnieKp.js} +1 -1
- package/web-shell/assets/channel-DrXxrVwN.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-CRe2K3To.js → chunk-2Q5K7J3B-BBQuSBIP.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-BG67yUA9.js → chunk-5VM5RSS4-KWslePRD.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-B1d6n5eI.js → chunk-F27PBJKO-Crl6QExg.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-CIVn7PDx.js → chunk-G27WJ6UU-C-W9cosE.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-BUCoEgYK.js → chunk-JWPE2WC7-B19IzqnN.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-BEcferer.js → chunk-LCL6LL3I-BJqzCD90.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-CpdZE7zI.js → chunk-POPQ4Y6H-DYkXv4Bl.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-B9JFFHOW.js → chunk-SVP7TREG-DZaAk_mv.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-D7hHjiYq.js → chunk-XXDRQBXY-DgbKuHRM.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-BoFTh2ij.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-BoFTh2ij.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-B3CuOihi.js → cose-bilkent-JH36ORCC-CrWjEQBv.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-BL-7Y9zJ.js → cynefin-OW5HDTMX-DbUKAEfO.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-B4B-aYh1.js → cynefinDiagram-5FMLGOSQ-Ct60E7KW.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-DeLGsLtP.js → dagre-3AP2YEHR-DqpsNq-m.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-CD1ow9s5.js → diagram-S7CK7UJ4-gK_a8S13.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-BLXrwSIS.js → diagram-UQ7AKVKN-IYxdlPdp.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-C_4s_9Gq.js → diagram-VSXAHHWV-C7_1o5YQ.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-CDfysUiq.js → diagram-VX7I27RA-DsGivJVm.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-B_nOMJNo.js → diagram-Z3DM3KII-3Iw2ASQH.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-Bq9OS-2B.js → ebnfDiagram-PWID7BFC-HUst2lkU.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-DdYlHfr0.js → erDiagram-SSCWMZ5O-BFJOXs7K.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-BEMFnzjR.js → flowDiagram-A5DVABFB-lZYOtflc.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CUnEB8YA.js → ganttDiagram-EL5Y4UJY-B2Q9UVpC.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-BZ3xFWS5.js → gitGraphDiagram-WWUBYQGX-BIFm5rz-.js} +1 -1
- package/web-shell/assets/{index-X14MyJWi.js → index-C-r7y6m-.js} +5 -5
- package/web-shell/assets/{index-CQ5O0GyT.js → index-DLqoza9Y.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-DdBkiCU5.js → infoDiagram-RXCK75RN-DV3V_JPX.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CQwdIl4G.js → ishikawaDiagram-5VMMS53U-BsdDREEa.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-CHthIOzQ.js → journeyDiagram-EYS64GPL-0XvVKCig.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-wsQvYKZn.js → kanban-definition-3QL26DDD-CiYa40sA.js} +1 -1
- package/web-shell/assets/{layout-BizdV6jP.js → layout-BSOIn-1S.js} +1 -1
- package/web-shell/assets/{linear-BjxyKDV-.js → linear-CkiKAyO2.js} +1 -1
- package/web-shell/assets/{mermaid.core-C5zbhLSB.js → mermaid.core-Q4YMjYlN.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-B1fXC6cz.js → mindmap-definition-FBJOCRG2-DFR6o-MY.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-BWkVT1h_.js → pegDiagram-XKGWAZYB-BJHry1Zc.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-mXFpa0SY.js → pieDiagram-E7YTZNPT-UZQLuq5B.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CgURyFxf.js → quadrantDiagram-AXDQQJYC-BjwMxG-u.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-BKWdEmSU.js → railroadDiagram-O6MQD6OU-_YgpF2tc.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-DQfXvBnO.js → requirementDiagram-EFPCY7ZU-B_ZzJOTx.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C2NHJ-vh.js → sankeyDiagram-P5KCCOFB-B_OwV9en.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BMY1NnO-.js → sequenceDiagram-WJ2MYXX4-CA2Vree8.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-H_G6QbIF.js → sizeCapture-X5ZJPWSS-BUic5VOB.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BpXGLI-f.js → stateDiagram-HBIQ2CUA-CjzVK9sL.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BfStDX1l.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-CK7vT1lz.js → swimlanes-XN3QIQJK-BJKsEct6.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DAK1VhpN.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-hlwSiLfp.js → timeline-definition-24CTP7MA-1PAhR9eu.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-D6np4JGg.js → vennDiagram-4TSXK5OY-BCLxmcKg.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CciJIRt_.js → wardleyDiagram-VM6X3IG4-ChpSHWtA.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-KPEsUSHH.js → xychartDiagram-S5SC5T6Z-DNG5XUCm.js} +1 -1
- package/web-shell/index.html +1 -1
- package/web-shell/sw.js +1 -1
- package/windows-clipboard-worker.js +16 -0
- 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
- package/chunks/{chunk-Z3TVPPGU.js → chunk-IE4RH3YW.js} +3 -3
- package/chunks/{chunk-2JPUVHYB.js → chunk-JHRVJBV5.js} +3 -3
- /package/chunks/{chunk-YZBNAMA2.js → chunk-M6C3BI2P.js} +0 -0
|
@@ -1,18 +1,102 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
MAX_ACCEPTED_BACKLOG,
|
|
5
|
+
PeerMessaging,
|
|
6
|
+
classifyApiError,
|
|
7
|
+
fireSessionDeleteHook
|
|
8
|
+
} from "./chunk-P6KD4P3E.js";
|
|
3
9
|
import {
|
|
4
10
|
buildPermissionSuggestions
|
|
5
11
|
} from "./chunk-CPURT2SU.js";
|
|
6
12
|
import {
|
|
7
13
|
TUI_CHAT_RECORDING_FAILURE_MESSAGE,
|
|
8
14
|
reportChatRecordingFailureToAdapter
|
|
9
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-O3FUFDAZ.js";
|
|
16
|
+
import {
|
|
17
|
+
MAX_SUGGESTIONS_TO_SHOW,
|
|
18
|
+
SESSION_MENTION_PREFIX,
|
|
19
|
+
buildMcpResourceRef,
|
|
20
|
+
buildMcpServerRef,
|
|
21
|
+
buildSessionRef,
|
|
22
|
+
getExtensionSuggestions,
|
|
23
|
+
handleAtCommand,
|
|
24
|
+
matchMcpServerPrefix,
|
|
25
|
+
normalizeDescription,
|
|
26
|
+
normalizePartList,
|
|
27
|
+
resolveAtCommandQuery
|
|
28
|
+
} from "./chunk-UUZBSXW2.js";
|
|
10
29
|
import {
|
|
11
30
|
StreamJsonOutputAdapter
|
|
12
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-WFLDNTCT.js";
|
|
32
|
+
import {
|
|
33
|
+
BuiltinCommandLoader,
|
|
34
|
+
BundledSkillLoader,
|
|
35
|
+
CONTEXT_FILES_ANNOUNCEMENT_PREFIX,
|
|
36
|
+
CommandService,
|
|
37
|
+
DISPLAY_HOOK_EVENTS,
|
|
38
|
+
FileCommandLoader,
|
|
39
|
+
MAX_STACKED_SKILLS,
|
|
40
|
+
McpPromptLoader,
|
|
41
|
+
SLASH_COMMANDS_SKIP_RECORDING,
|
|
42
|
+
SavedWorkflowLoader,
|
|
43
|
+
SkillCommandLoader,
|
|
44
|
+
addConfigToMatcherGroup,
|
|
45
|
+
appendUserPromptExpansionAdditionalContext,
|
|
46
|
+
applyEffortSelection,
|
|
47
|
+
applyOutputStyleSelection,
|
|
48
|
+
buildBackgroundWorkBlockedMessage,
|
|
49
|
+
consumesContextAnnouncementLatch,
|
|
50
|
+
copyToClipboard,
|
|
51
|
+
createEmptyHookEventInfo,
|
|
52
|
+
dayKey,
|
|
53
|
+
describeRemoteOutcome,
|
|
54
|
+
describeRemoteSnapshot,
|
|
55
|
+
findMidInputSlashCommand,
|
|
56
|
+
findSlashCommandTokens,
|
|
57
|
+
formatApprovalModeDescription,
|
|
58
|
+
formatApprovalModeName,
|
|
59
|
+
formatLowRateLimit,
|
|
60
|
+
formatUserPromptExpansionBlockedMessage,
|
|
61
|
+
getAllConfigs,
|
|
62
|
+
getBestSlashCommandMatch,
|
|
63
|
+
getTranslatedSourceDisplayMap,
|
|
64
|
+
hasBlockingBackgroundWork,
|
|
65
|
+
hasSlashCommandPathSeparator,
|
|
66
|
+
isAtCommand,
|
|
67
|
+
isBtwCommand,
|
|
68
|
+
isContextFilesAnnouncement,
|
|
69
|
+
isCrossSessionMessagingEnabled,
|
|
70
|
+
isCrossSessionMessagingOptedIn,
|
|
71
|
+
isMidInputCompletableCommand,
|
|
72
|
+
isPickerOnlyModelInvocation,
|
|
73
|
+
isSlashCommand,
|
|
74
|
+
isStackedSkillCompletableCommand,
|
|
75
|
+
isValidStackedSkillPrefix,
|
|
76
|
+
loadOrganizaOneKeySummary,
|
|
77
|
+
loadSessionOutputStyles,
|
|
78
|
+
parseDayKey,
|
|
79
|
+
parseSlashCommand,
|
|
80
|
+
parseStackedSlashCommands,
|
|
81
|
+
quitCommand,
|
|
82
|
+
recordAutoSkillCommandUsage,
|
|
83
|
+
refreshExtensionContentRuntime,
|
|
84
|
+
resetBackgroundStateForSessionSwitch,
|
|
85
|
+
resolveOutputStyleChoice,
|
|
86
|
+
serializeUserPromptExpansionPrompt,
|
|
87
|
+
supportsMatchers
|
|
88
|
+
} from "./chunk-QIRJOOS6.js";
|
|
13
89
|
import {
|
|
14
90
|
startPostRenderPrefetches
|
|
15
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-ASP55J6A.js";
|
|
92
|
+
import {
|
|
93
|
+
EXTENSION_RELOAD_FAILED_REASON,
|
|
94
|
+
ExtensionRefreshState,
|
|
95
|
+
appEvents,
|
|
96
|
+
cleanupReviewWorktreeLeases,
|
|
97
|
+
loadHierarchicalMemory,
|
|
98
|
+
openRemoteSession
|
|
99
|
+
} from "./chunk-BRW37PKP.js";
|
|
16
100
|
import {
|
|
17
101
|
AboutBox,
|
|
18
102
|
BaseSelectionList,
|
|
@@ -114,7 +198,22 @@ import {
|
|
|
114
198
|
useUIActions,
|
|
115
199
|
useUIState,
|
|
116
200
|
useVirtualViewport
|
|
117
|
-
} from "./chunk-
|
|
201
|
+
} from "./chunk-2UDEKBYA.js";
|
|
202
|
+
import {
|
|
203
|
+
BRAND,
|
|
204
|
+
MAX_EXTENSION_OWNER_LABEL_WIDTH,
|
|
205
|
+
computeSessionStats,
|
|
206
|
+
getCommandDisplayName,
|
|
207
|
+
getCommandSourceBadge,
|
|
208
|
+
getEffectiveSupportedModes,
|
|
209
|
+
repoDocUrl,
|
|
210
|
+
skillOriginLabel
|
|
211
|
+
} from "./chunk-CCW6IQGJ.js";
|
|
212
|
+
import {
|
|
213
|
+
MaxSizedBox,
|
|
214
|
+
OverflowProvider,
|
|
215
|
+
useOverflowState
|
|
216
|
+
} from "./chunk-DSAFH5CY.js";
|
|
118
217
|
import {
|
|
119
218
|
CATEGORY_LABELS,
|
|
120
219
|
ICON,
|
|
@@ -136,126 +235,36 @@ import {
|
|
|
136
235
|
showsToolLabel,
|
|
137
236
|
useStreamingContext,
|
|
138
237
|
waitForGoalRuntime
|
|
139
|
-
} from "./chunk-
|
|
140
|
-
import {
|
|
141
|
-
stopAndGetCapturedInput
|
|
142
|
-
} from "./chunk-VFLUNXD6.js";
|
|
143
|
-
import {
|
|
144
|
-
useAutoAcceptIndicator
|
|
145
|
-
} from "./chunk-SGO7T2LC.js";
|
|
146
|
-
import {
|
|
147
|
-
KeypressProvider,
|
|
148
|
-
useFocus,
|
|
149
|
-
useKeypress,
|
|
150
|
-
useKeypressContext
|
|
151
|
-
} from "./chunk-QTI36T2P.js";
|
|
152
|
-
import {
|
|
153
|
-
MAX_ACCEPTED_BACKLOG,
|
|
154
|
-
PeerMessaging,
|
|
155
|
-
classifyApiError,
|
|
156
|
-
fireSessionDeleteHook
|
|
157
|
-
} from "./chunk-5MGXHMC4.js";
|
|
158
|
-
import {
|
|
159
|
-
MAX_SUGGESTIONS_TO_SHOW,
|
|
160
|
-
SESSION_MENTION_PREFIX,
|
|
161
|
-
buildMcpResourceRef,
|
|
162
|
-
buildMcpServerRef,
|
|
163
|
-
buildSessionRef,
|
|
164
|
-
getExtensionSuggestions,
|
|
165
|
-
handleAtCommand,
|
|
166
|
-
matchMcpServerPrefix,
|
|
167
|
-
normalizeDescription,
|
|
168
|
-
normalizePartList,
|
|
169
|
-
resolveAtCommandQuery
|
|
170
|
-
} from "./chunk-OW44PTOE.js";
|
|
171
|
-
import {
|
|
172
|
-
BuiltinCommandLoader,
|
|
173
|
-
BundledSkillLoader,
|
|
174
|
-
CONTEXT_FILES_ANNOUNCEMENT_PREFIX,
|
|
175
|
-
CommandService,
|
|
176
|
-
DISPLAY_HOOK_EVENTS,
|
|
177
|
-
FileCommandLoader,
|
|
178
|
-
MAX_STACKED_SKILLS,
|
|
179
|
-
McpPromptLoader,
|
|
180
|
-
SLASH_COMMANDS_SKIP_RECORDING,
|
|
181
|
-
SavedWorkflowLoader,
|
|
182
|
-
SkillCommandLoader,
|
|
183
|
-
addConfigToMatcherGroup,
|
|
184
|
-
appendUserPromptExpansionAdditionalContext,
|
|
185
|
-
applyEffortSelection,
|
|
186
|
-
applyOutputStyleSelection,
|
|
187
|
-
buildBackgroundWorkBlockedMessage,
|
|
188
|
-
consumesContextAnnouncementLatch,
|
|
189
|
-
copyToClipboard,
|
|
190
|
-
createEmptyHookEventInfo,
|
|
191
|
-
dayKey,
|
|
192
|
-
describeRemoteOutcome,
|
|
193
|
-
describeRemoteSnapshot,
|
|
194
|
-
findMidInputSlashCommand,
|
|
195
|
-
findSlashCommandTokens,
|
|
196
|
-
formatApprovalModeDescription,
|
|
197
|
-
formatApprovalModeName,
|
|
198
|
-
formatLowRateLimit,
|
|
199
|
-
formatUserPromptExpansionBlockedMessage,
|
|
200
|
-
getAllConfigs,
|
|
201
|
-
getBestSlashCommandMatch,
|
|
202
|
-
getTranslatedSourceDisplayMap,
|
|
203
|
-
hasBlockingBackgroundWork,
|
|
204
|
-
hasSlashCommandPathSeparator,
|
|
205
|
-
isAtCommand,
|
|
206
|
-
isBtwCommand,
|
|
207
|
-
isContextFilesAnnouncement,
|
|
208
|
-
isCrossSessionMessagingEnabled,
|
|
209
|
-
isCrossSessionMessagingOptedIn,
|
|
210
|
-
isMidInputCompletableCommand,
|
|
211
|
-
isPickerOnlyModelInvocation,
|
|
212
|
-
isSlashCommand,
|
|
213
|
-
isStackedSkillCompletableCommand,
|
|
214
|
-
isValidStackedSkillPrefix,
|
|
215
|
-
loadOrganizaOneKeySummary,
|
|
216
|
-
loadSessionOutputStyles,
|
|
217
|
-
parseDayKey,
|
|
218
|
-
parseSlashCommand,
|
|
219
|
-
parseStackedSlashCommands,
|
|
220
|
-
quitCommand,
|
|
221
|
-
recordAutoSkillCommandUsage,
|
|
222
|
-
refreshExtensionContentRuntime,
|
|
223
|
-
resetBackgroundStateForSessionSwitch,
|
|
224
|
-
resolveOutputStyleChoice,
|
|
225
|
-
serializeUserPromptExpansionPrompt,
|
|
226
|
-
supportsMatchers
|
|
227
|
-
} from "./chunk-4LITKLIX.js";
|
|
228
|
-
import {
|
|
229
|
-
EXTENSION_RELOAD_FAILED_REASON,
|
|
230
|
-
ExtensionRefreshState,
|
|
231
|
-
appEvents,
|
|
232
|
-
cleanupReviewWorktreeLeases,
|
|
233
|
-
loadHierarchicalMemory,
|
|
234
|
-
openRemoteSession
|
|
235
|
-
} from "./chunk-73IWVPN4.js";
|
|
236
|
-
import {
|
|
237
|
-
BRAND,
|
|
238
|
-
MAX_EXTENSION_OWNER_LABEL_WIDTH,
|
|
239
|
-
computeSessionStats,
|
|
240
|
-
getCommandDisplayName,
|
|
241
|
-
getCommandSourceBadge,
|
|
242
|
-
getEffectiveSupportedModes,
|
|
243
|
-
repoDocUrl,
|
|
244
|
-
skillOriginLabel
|
|
245
|
-
} from "./chunk-TD372APW.js";
|
|
238
|
+
} from "./chunk-JXHE3Q7W.js";
|
|
246
239
|
import {
|
|
247
240
|
contextUsageLabel,
|
|
248
241
|
formatDuration,
|
|
249
242
|
formatPercentageUsed,
|
|
250
243
|
formatRelativeTime,
|
|
251
244
|
formatTokenCount
|
|
252
|
-
} from "./chunk-
|
|
245
|
+
} from "./chunk-BP4CPYAM.js";
|
|
246
|
+
import {
|
|
247
|
+
extendedTheme,
|
|
248
|
+
theme
|
|
249
|
+
} from "./chunk-NTUVIB2G.js";
|
|
250
|
+
import {
|
|
251
|
+
stopAndGetCapturedInput
|
|
252
|
+
} from "./chunk-VFLUNXD6.js";
|
|
253
253
|
import {
|
|
254
254
|
disableKittyProtocol,
|
|
255
255
|
isKittyProtocolEnabled,
|
|
256
256
|
isKittyProtocolSupported,
|
|
257
257
|
pushKittyProtocolFlags
|
|
258
258
|
} from "./chunk-AYSIXE44.js";
|
|
259
|
+
import {
|
|
260
|
+
useAutoAcceptIndicator
|
|
261
|
+
} from "./chunk-VRHNWL5X.js";
|
|
262
|
+
import {
|
|
263
|
+
KeypressProvider,
|
|
264
|
+
useFocus,
|
|
265
|
+
useKeypress,
|
|
266
|
+
useKeypressContext
|
|
267
|
+
} from "./chunk-ULFANPGF.js";
|
|
259
268
|
import {
|
|
260
269
|
BEL,
|
|
261
270
|
OSC_PREFIX,
|
|
@@ -268,29 +277,25 @@ import {
|
|
|
268
277
|
oscKittyNotify,
|
|
269
278
|
saveClipboardImage,
|
|
270
279
|
writeOsc52
|
|
271
|
-
} from "./chunk-
|
|
280
|
+
} from "./chunk-WEPGJI5V.js";
|
|
281
|
+
import {
|
|
282
|
+
require_jsx_runtime
|
|
283
|
+
} from "./chunk-SKTOH6US.js";
|
|
272
284
|
import {
|
|
273
285
|
sanitizeDisplayText
|
|
274
|
-
} from "./chunk-
|
|
286
|
+
} from "./chunk-P5SAF7QU.js";
|
|
275
287
|
import "./chunk-AHKE26WU.js";
|
|
276
|
-
import "./chunk-
|
|
288
|
+
import "./chunk-SSIOTLWY.js";
|
|
289
|
+
import {
|
|
290
|
+
AUTO_THEME_NAME,
|
|
291
|
+
DEFAULT_THEME,
|
|
292
|
+
themeManager
|
|
293
|
+
} from "./chunk-VFSP4ZUZ.js";
|
|
277
294
|
import "./chunk-UMIHM32I.js";
|
|
278
295
|
import {
|
|
279
296
|
TOP_FRAME,
|
|
280
297
|
glyphs
|
|
281
298
|
} from "./chunk-U6ZAL4MF.js";
|
|
282
|
-
import {
|
|
283
|
-
MaxSizedBox,
|
|
284
|
-
OverflowProvider,
|
|
285
|
-
useOverflowState
|
|
286
|
-
} from "./chunk-DSAFH5CY.js";
|
|
287
|
-
import {
|
|
288
|
-
extendedTheme,
|
|
289
|
-
theme
|
|
290
|
-
} from "./chunk-NTUVIB2G.js";
|
|
291
|
-
import {
|
|
292
|
-
require_jsx_runtime
|
|
293
|
-
} from "./chunk-SKTOH6US.js";
|
|
294
299
|
import {
|
|
295
300
|
Box_default,
|
|
296
301
|
Static,
|
|
@@ -308,7 +313,8 @@ import {
|
|
|
308
313
|
import {
|
|
309
314
|
require_react
|
|
310
315
|
} from "./chunk-2KK65OQ6.js";
|
|
311
|
-
import "./chunk-
|
|
316
|
+
import "./chunk-4P64F4DP.js";
|
|
317
|
+
import "./chunk-HO45CNDB.js";
|
|
312
318
|
import "./chunk-G4YDGSSX.js";
|
|
313
319
|
import {
|
|
314
320
|
MAX_INLINE_IMAGES_PER_ITEM,
|
|
@@ -317,42 +323,35 @@ import {
|
|
|
317
323
|
} from "./chunk-KIN34HCU.js";
|
|
318
324
|
import {
|
|
319
325
|
setUpdateHandler
|
|
320
|
-
} from "./chunk-
|
|
326
|
+
} from "./chunk-G7HV5FVG.js";
|
|
321
327
|
import {
|
|
322
328
|
isHistoryItemVisibleAfterRestore
|
|
323
329
|
} from "./chunk-64WBFX5X.js";
|
|
324
|
-
import "./chunk-
|
|
330
|
+
import "./chunk-SDKL3D4L.js";
|
|
325
331
|
import "./chunk-7DQWDZUQ.js";
|
|
326
332
|
import "./chunk-KD7GIK2D.js";
|
|
327
|
-
import
|
|
328
|
-
|
|
329
|
-
DEFAULT_THEME,
|
|
330
|
-
themeManager
|
|
331
|
-
} from "./chunk-VFSP4ZUZ.js";
|
|
333
|
+
import "./chunk-YXYCU2GM.js";
|
|
334
|
+
import "./chunk-LXUIOY3M.js";
|
|
332
335
|
import {
|
|
333
336
|
requestConsentInteractive,
|
|
334
337
|
requestConsentOrFail
|
|
335
|
-
} from "./chunk-
|
|
338
|
+
} from "./chunk-IV56M43Z.js";
|
|
336
339
|
import "./chunk-XZ3MQL2U.js";
|
|
337
340
|
import {
|
|
338
341
|
getErrorMessage as getErrorMessage2
|
|
339
|
-
} from "./chunk-
|
|
342
|
+
} from "./chunk-VCYXTJKE.js";
|
|
340
343
|
import {
|
|
341
344
|
relaunchApp
|
|
342
|
-
} from "./chunk-
|
|
345
|
+
} from "./chunk-DV7OATUZ.js";
|
|
343
346
|
import "./chunk-XG36NMOI.js";
|
|
344
347
|
import "./chunk-SPLQKNEP.js";
|
|
345
|
-
import "./chunk-VUJ4WYBZ.js";
|
|
346
|
-
import "./chunk-R4ECPR25.js";
|
|
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-KUPFPBJP.js";
|
|
354
354
|
import "./chunk-LL7XM3LM.js";
|
|
355
|
-
import "./chunk-5HVWJGQN.js";
|
|
356
355
|
import {
|
|
357
356
|
cpLen,
|
|
358
357
|
cpSlice,
|
|
@@ -365,6 +364,7 @@ import {
|
|
|
365
364
|
toCodePoints,
|
|
366
365
|
truncateToWidth
|
|
367
366
|
} from "./chunk-PJF3WRYZ.js";
|
|
367
|
+
import "./chunk-EFTQJBOI.js";
|
|
368
368
|
import {
|
|
369
369
|
stringWidth
|
|
370
370
|
} from "./chunk-F5IN4KK7.js";
|
|
@@ -379,44 +379,44 @@ import {
|
|
|
379
379
|
isStreamingVoiceModel,
|
|
380
380
|
resolveVoiceStreamConfig,
|
|
381
381
|
transcribeVoiceAudio
|
|
382
|
-
} from "./chunk-
|
|
382
|
+
} from "./chunk-BLABAT4U.js";
|
|
383
383
|
import {
|
|
384
384
|
formatUnsupportedVoiceModelMessage,
|
|
385
385
|
isSelectableVoiceModel
|
|
386
|
-
} from "./chunk-
|
|
386
|
+
} from "./chunk-6UDLEDID.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-RV2TL4NM.js";
|
|
393
|
+
import "./chunk-H2GNNVMW.js";
|
|
394
|
+
import {
|
|
395
|
+
isInlineModelOverrideAllowed
|
|
396
|
+
} from "./chunk-YU6Z65RE.js";
|
|
393
397
|
import {
|
|
394
398
|
buildHigherDisabled,
|
|
395
399
|
computeWorkspaceSkillListUpdates,
|
|
396
400
|
skillSettingStrings
|
|
397
|
-
} from "./chunk-
|
|
401
|
+
} from "./chunk-XA3N5TO5.js";
|
|
398
402
|
import "./chunk-W2R46PFD.js";
|
|
399
403
|
import {
|
|
400
404
|
createLoadedSettingsAdapter,
|
|
401
405
|
getRawModelProviders
|
|
402
|
-
} from "./chunk-
|
|
406
|
+
} from "./chunk-KT4SJM3N.js";
|
|
403
407
|
import {
|
|
404
408
|
getExtendedSystemInfo
|
|
405
|
-
} from "./chunk-
|
|
406
|
-
import "./chunk-
|
|
407
|
-
import "./chunk-QTAUA6ED.js";
|
|
409
|
+
} from "./chunk-62UWQRWK.js";
|
|
410
|
+
import "./chunk-5MP3GGWM.js";
|
|
408
411
|
import "./chunk-LPCPB2S5.js";
|
|
409
412
|
import "./chunk-LD2T7YET.js";
|
|
413
|
+
import "./chunk-QTAUA6ED.js";
|
|
410
414
|
import "./chunk-O7MSLRFZ.js";
|
|
411
415
|
import "./chunk-W3YES77O.js";
|
|
412
|
-
import "./chunk-
|
|
413
|
-
import "./chunk-75UFQ4VY.js";
|
|
414
|
-
import {
|
|
415
|
-
isInlineModelOverrideAllowed
|
|
416
|
-
} from "./chunk-KHSEVS3O.js";
|
|
416
|
+
import "./chunk-SU6K5JRJ.js";
|
|
417
417
|
import {
|
|
418
418
|
loadMcpApprovals
|
|
419
|
-
} from "./chunk-
|
|
419
|
+
} from "./chunk-JSRLBGQW.js";
|
|
420
420
|
import {
|
|
421
421
|
CORRUPTED_SUFFIX,
|
|
422
422
|
SettingScope,
|
|
@@ -439,7 +439,8 @@ import {
|
|
|
439
439
|
settingExistsInScope,
|
|
440
440
|
validateSettingValue,
|
|
441
441
|
writeOutputLanguageAndRegisterPath
|
|
442
|
-
} from "./chunk-
|
|
442
|
+
} from "./chunk-HCD2C6MU.js";
|
|
443
|
+
import "./chunk-EDRKBK4B.js";
|
|
443
444
|
import {
|
|
444
445
|
LOGO_ANIMATIONS,
|
|
445
446
|
LOGO_FRAME_MS,
|
|
@@ -449,16 +450,15 @@ import {
|
|
|
449
450
|
pickLogoAnimation,
|
|
450
451
|
renderLogoRows,
|
|
451
452
|
restFrame
|
|
452
|
-
} from "./chunk-
|
|
453
|
-
import "./chunk-EDRKBK4B.js";
|
|
453
|
+
} from "./chunk-Y7AZBD2R.js";
|
|
454
454
|
import {
|
|
455
455
|
getCurrentLanguage,
|
|
456
456
|
localizeToolDisplayName,
|
|
457
457
|
t,
|
|
458
458
|
ta
|
|
459
|
-
} from "./chunk-
|
|
459
|
+
} from "./chunk-QFGPKAOX.js";
|
|
460
460
|
import "./chunk-Q2V34OV7.js";
|
|
461
|
-
import "./chunk-
|
|
461
|
+
import "./chunk-3SCPHVRF.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-JIECZNY6.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-YMZWUG55.js";
|
|
482
482
|
import "./chunk-BHXBXELA.js";
|
|
483
483
|
import "./chunk-MXCWSDSC.js";
|
|
484
484
|
import {
|
|
@@ -522,19 +522,20 @@ import {
|
|
|
522
522
|
subagentGenerator,
|
|
523
523
|
supportsHyperlinks,
|
|
524
524
|
wrapForMultiplexer
|
|
525
|
-
} from "./chunk-
|
|
525
|
+
} from "./chunk-VHFC6CDB.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
|
+
import "./chunk-SHADJNT6.js";
|
|
532
533
|
import {
|
|
533
534
|
clearWorktreeSession,
|
|
534
535
|
isSessionRuntimeActive,
|
|
535
536
|
readWorktreeSession,
|
|
536
537
|
restoreWorktreeContext
|
|
537
|
-
} from "./chunk-
|
|
538
|
+
} from "./chunk-Q6IDKPJW.js";
|
|
538
539
|
import "./chunk-4JDEAIW5.js";
|
|
539
540
|
import {
|
|
540
541
|
PEER_ADMISSION_LIMITS,
|
|
@@ -543,30 +544,30 @@ import {
|
|
|
543
544
|
describeHoldCause,
|
|
544
545
|
parseHeldExpiry
|
|
545
546
|
} from "./chunk-AEGEUWVC.js";
|
|
546
|
-
import "./chunk-
|
|
547
|
-
import "./chunk-VT3TJFQR.js";
|
|
548
|
-
import "./chunk-S3ERVFHU.js";
|
|
549
|
-
import "./chunk-WK44MSGW.js";
|
|
550
|
-
import "./chunk-LZPTOCB6.js";
|
|
551
|
-
import "./chunk-FIXBGZLC.js";
|
|
552
|
-
import "./chunk-ZMZRVR62.js";
|
|
547
|
+
import "./chunk-OJAGNSHH.js";
|
|
553
548
|
import "./chunk-NWCDFCWK.js";
|
|
549
|
+
import "./chunk-7HCWHQSP.js";
|
|
550
|
+
import "./chunk-32722SNN.js";
|
|
551
|
+
import "./chunk-AGTM6524.js";
|
|
552
|
+
import "./chunk-AIU3JWUX.js";
|
|
553
|
+
import "./chunk-ASWPB74Q.js";
|
|
554
|
+
import "./chunk-ZMZRVR62.js";
|
|
554
555
|
import {
|
|
555
556
|
WORKFLOW_AUTHORING_SKILL_NAME,
|
|
556
557
|
isToolHiddenBehindToolSearch,
|
|
557
558
|
resolveWorkflowAuthoringSurface,
|
|
558
559
|
toolSearchBridgeSentence
|
|
559
|
-
} from "./chunk-
|
|
560
|
-
import "./chunk-
|
|
561
|
-
import "./chunk-
|
|
562
|
-
import "./chunk-
|
|
563
|
-
import "./chunk-ZPCVRY42.js";
|
|
560
|
+
} from "./chunk-BZRPH7VF.js";
|
|
561
|
+
import "./chunk-WRHVLLKJ.js";
|
|
562
|
+
import "./chunk-UW4Q5E5P.js";
|
|
563
|
+
import "./chunk-P2JIFC4O.js";
|
|
564
564
|
import "./chunk-F3FKDGHN.js";
|
|
565
|
-
import "./chunk-
|
|
565
|
+
import "./chunk-QSFWRJQF.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-2QYMJSSC.js";
|
|
570
|
+
import "./chunk-HVQQIKDI.js";
|
|
570
571
|
import {
|
|
571
572
|
ConditionalRulesRegistry,
|
|
572
573
|
CoreToolScheduler,
|
|
@@ -628,13 +629,13 @@ import {
|
|
|
628
629
|
saveWorkflowScript,
|
|
629
630
|
updateSetting,
|
|
630
631
|
validateWorkflowName
|
|
631
|
-
} from "./chunk-
|
|
632
|
-
import "./chunk-
|
|
632
|
+
} from "./chunk-T4WPMWU4.js";
|
|
633
|
+
import "./chunk-WXTAP6NR.js";
|
|
633
634
|
import "./chunk-BZOAEOYF.js";
|
|
634
635
|
import "./chunk-BIDB75DA.js";
|
|
635
636
|
import "./chunk-GYGA6V6B.js";
|
|
636
637
|
import "./chunk-EYWIFUPJ.js";
|
|
637
|
-
import "./chunk-
|
|
638
|
+
import "./chunk-THO5UG52.js";
|
|
638
639
|
import "./chunk-7H3GWNGJ.js";
|
|
639
640
|
import "./chunk-X427DWFD.js";
|
|
640
641
|
import {
|
|
@@ -646,7 +647,7 @@ import {
|
|
|
646
647
|
resolveBranchName,
|
|
647
648
|
watchRepoBranch,
|
|
648
649
|
writeRuntimeStatus
|
|
649
|
-
} from "./chunk-
|
|
650
|
+
} from "./chunk-JHRVJBV5.js";
|
|
650
651
|
import "./chunk-DJOP5LOE.js";
|
|
651
652
|
import {
|
|
652
653
|
openBrowserSecurely,
|
|
@@ -670,79 +671,83 @@ import {
|
|
|
670
671
|
elapsedActiveTime,
|
|
671
672
|
goalPauseReasonForFailure,
|
|
672
673
|
goalRequiresExactPermit
|
|
673
|
-
} from "./chunk-
|
|
674
|
-
import "./chunk-
|
|
674
|
+
} from "./chunk-DNFPKNWM.js";
|
|
675
|
+
import "./chunk-LO6VR36F.js";
|
|
676
|
+
import {
|
|
677
|
+
glob
|
|
678
|
+
} from "./chunk-4ESI3MQ5.js";
|
|
679
|
+
import "./chunk-CDYMT4OZ.js";
|
|
675
680
|
import "./chunk-TC7UXK4M.js";
|
|
676
681
|
import "./chunk-DS3COGEF.js";
|
|
677
682
|
import {
|
|
678
683
|
resolveModelId
|
|
679
|
-
} from "./chunk-
|
|
680
|
-
import {
|
|
681
|
-
glob
|
|
682
|
-
} from "./chunk-4ESI3MQ5.js";
|
|
684
|
+
} from "./chunk-SKPIIDV3.js";
|
|
683
685
|
import "./chunk-SYMKXR42.js";
|
|
684
686
|
import "./chunk-JOBZWTVK.js";
|
|
685
|
-
import "./chunk-CDYMT4OZ.js";
|
|
686
687
|
import "./chunk-HPQNI3OQ.js";
|
|
687
|
-
import "./chunk-
|
|
688
|
-
import "./chunk-
|
|
688
|
+
import "./chunk-QECJHTGC.js";
|
|
689
|
+
import "./chunk-K3XD5ECD.js";
|
|
689
690
|
import "./chunk-CI2ZHR5C.js";
|
|
691
|
+
import {
|
|
692
|
+
BUILT_IN_OUTPUT_STYLES
|
|
693
|
+
} from "./chunk-M7ZHP7VU.js";
|
|
694
|
+
import {
|
|
695
|
+
NO_EXEC_CONFIG,
|
|
696
|
+
getGitBranch
|
|
697
|
+
} from "./chunk-IO32UWHY.js";
|
|
690
698
|
import {
|
|
691
699
|
ShellExecutionService,
|
|
692
700
|
isSignalTermination
|
|
693
|
-
} from "./chunk-
|
|
701
|
+
} from "./chunk-PHCY2DQ2.js";
|
|
694
702
|
import {
|
|
695
703
|
stripAnsi
|
|
696
704
|
} from "./chunk-WU3R2YUE.js";
|
|
697
705
|
import {
|
|
698
706
|
formatMemoryUsage
|
|
699
707
|
} from "./chunk-M7AWQAB7.js";
|
|
708
|
+
import {
|
|
709
|
+
escapeShellArg
|
|
710
|
+
} from "./chunk-SBM747MY.js";
|
|
700
711
|
import {
|
|
701
712
|
resolveBundleDir
|
|
702
713
|
} from "./chunk-Z2IHOXIK.js";
|
|
703
714
|
import {
|
|
704
715
|
promptIdContext
|
|
705
716
|
} from "./chunk-5JTXPGNQ.js";
|
|
706
|
-
import {
|
|
707
|
-
escapeShellArg
|
|
708
|
-
} from "./chunk-SBM747MY.js";
|
|
709
717
|
import "./chunk-5QSLFAMR.js";
|
|
710
|
-
import "./chunk-
|
|
718
|
+
import "./chunk-3K7BQWZY.js";
|
|
711
719
|
import "./chunk-4LCUE7BN.js";
|
|
712
720
|
import "./chunk-RIN7SNJN.js";
|
|
713
|
-
import "./chunk-
|
|
721
|
+
import "./chunk-VEGSKFFR.js";
|
|
714
722
|
import "./chunk-4J6KRUQB.js";
|
|
715
|
-
import "./chunk-
|
|
723
|
+
import "./chunk-JEUH2DSW.js";
|
|
716
724
|
import {
|
|
717
725
|
parseRule
|
|
718
|
-
} from "./chunk-
|
|
726
|
+
} from "./chunk-WXMXXBCC.js";
|
|
719
727
|
import {
|
|
720
728
|
APPROVAL_MODES
|
|
721
729
|
} from "./chunk-KQAVEXYD.js";
|
|
722
730
|
import "./chunk-WZCKDUBO.js";
|
|
723
|
-
import {
|
|
724
|
-
BUILT_IN_OUTPUT_STYLES
|
|
725
|
-
} from "./chunk-7S2AYA27.js";
|
|
726
|
-
import {
|
|
727
|
-
NO_EXEC_CONFIG,
|
|
728
|
-
getGitBranch
|
|
729
|
-
} from "./chunk-IO32UWHY.js";
|
|
730
731
|
import "./chunk-CZWW4DCB.js";
|
|
731
732
|
import "./chunk-5UXWOCCO.js";
|
|
732
733
|
import "./chunk-ETGSZYWP.js";
|
|
733
734
|
import "./chunk-RCZHQZJJ.js";
|
|
734
735
|
import "./chunk-6YS3YH6O.js";
|
|
735
|
-
import "./chunk-
|
|
736
|
+
import "./chunk-AVCUVYSA.js";
|
|
737
|
+
import "./chunk-6CW53FOJ.js";
|
|
736
738
|
import "./chunk-HX6AICAX.js";
|
|
737
|
-
import "./chunk-
|
|
739
|
+
import "./chunk-OMMOMHTD.js";
|
|
740
|
+
import "./chunk-65B6QBMP.js";
|
|
741
|
+
import "./chunk-O4IWNFDK.js";
|
|
742
|
+
import "./chunk-WMJL2XAM.js";
|
|
738
743
|
import {
|
|
739
744
|
runOutsideAgentContext
|
|
740
|
-
} from "./chunk-
|
|
745
|
+
} from "./chunk-QCE3SPTV.js";
|
|
741
746
|
import "./chunk-FOZEB37P.js";
|
|
742
747
|
import {
|
|
743
748
|
getStartupContextLength
|
|
744
|
-
} from "./chunk-
|
|
745
|
-
import "./chunk-
|
|
749
|
+
} from "./chunk-DNMM4RF7.js";
|
|
750
|
+
import "./chunk-2SMHE6PC.js";
|
|
746
751
|
import "./chunk-JSFADKTB.js";
|
|
747
752
|
import "./chunk-OHAUN3Q5.js";
|
|
748
753
|
import {
|
|
@@ -752,21 +757,16 @@ import {
|
|
|
752
757
|
HOOKS_CONFIG_FIELDS
|
|
753
758
|
} from "./chunk-SRFL3HFU.js";
|
|
754
759
|
import "./chunk-BQAZCJF7.js";
|
|
755
|
-
import "./chunk-2QYMJSSC.js";
|
|
756
|
-
import "./chunk-AVCUVYSA.js";
|
|
757
|
-
import "./chunk-65B6QBMP.js";
|
|
758
|
-
import "./chunk-O4IWNFDK.js";
|
|
759
|
-
import "./chunk-WMJL2XAM.js";
|
|
760
760
|
import {
|
|
761
761
|
fetchKeyInfo,
|
|
762
762
|
onLowRateLimit
|
|
763
|
-
} from "./chunk-
|
|
763
|
+
} from "./chunk-VYUHXV5Q.js";
|
|
764
764
|
import "./chunk-TC2TJAOF.js";
|
|
765
765
|
import "./chunk-CP63SY5N.js";
|
|
766
766
|
import {
|
|
767
767
|
resolveReasoningForModel
|
|
768
|
-
} from "./chunk-
|
|
769
|
-
import "./chunk-
|
|
768
|
+
} from "./chunk-T5Z45XLU.js";
|
|
769
|
+
import "./chunk-2F3GZ6WG.js";
|
|
770
770
|
import {
|
|
771
771
|
ApiCancelEvent,
|
|
772
772
|
AuthEvent,
|
|
@@ -805,15 +805,8 @@ import {
|
|
|
805
805
|
runVisionBridge,
|
|
806
806
|
shouldRunVisionBridge,
|
|
807
807
|
splitImageParts
|
|
808
|
-
} from "./chunk-
|
|
808
|
+
} from "./chunk-ASQLIG2L.js";
|
|
809
809
|
import "./chunk-242JUBPM.js";
|
|
810
|
-
import {
|
|
811
|
-
DEFAULT_CONTEXT_FILENAME,
|
|
812
|
-
getAllMemoryFilenames,
|
|
813
|
-
getUnsupportedImageFormatWarning,
|
|
814
|
-
isSupportedImageMimeType
|
|
815
|
-
} from "./chunk-ROO6F2BT.js";
|
|
816
|
-
import "./chunk-3CMX5LCG.js";
|
|
817
810
|
import {
|
|
818
811
|
AUTO_MEMORY_INDEX_FILENAME,
|
|
819
812
|
getAutoMemoryProjectStateDir,
|
|
@@ -822,39 +815,58 @@ import {
|
|
|
822
815
|
isAnyAutoMemPath
|
|
823
816
|
} from "./chunk-5P5ZJMW2.js";
|
|
824
817
|
import "./chunk-GADK6OTE.js";
|
|
818
|
+
import {
|
|
819
|
+
DEFAULT_CONTEXT_FILENAME,
|
|
820
|
+
getAllMemoryFilenames,
|
|
821
|
+
getUnsupportedImageFormatWarning,
|
|
822
|
+
isSupportedImageMimeType
|
|
823
|
+
} from "./chunk-ROO6F2BT.js";
|
|
824
|
+
import "./chunk-3CMX5LCG.js";
|
|
825
825
|
import {
|
|
826
826
|
runSideQuery
|
|
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-FFUKRRCR.js";
|
|
836
835
|
import "./chunk-23AFREUQ.js";
|
|
836
|
+
import "./chunk-IMLPJ76O.js";
|
|
837
|
+
import {
|
|
838
|
+
isShellProgressData
|
|
839
|
+
} from "./chunk-JOFGX5ZA.js";
|
|
840
|
+
import "./chunk-NO2WYQWE.js";
|
|
841
|
+
import "./chunk-V44Y3PCO.js";
|
|
842
|
+
import "./chunk-HAZNBQPI.js";
|
|
843
|
+
import {
|
|
844
|
+
ToolDisplayNames,
|
|
845
|
+
ToolNames
|
|
846
|
+
} from "./chunk-SYMYKLO4.js";
|
|
837
847
|
import "./chunk-IQEM74QW.js";
|
|
838
848
|
import {
|
|
839
849
|
endInteractionSpan,
|
|
840
850
|
getActiveInteractionSpan,
|
|
841
851
|
redactUrlCredentials
|
|
842
|
-
} from "./chunk-
|
|
852
|
+
} from "./chunk-TYYTQIEZ.js";
|
|
843
853
|
import {
|
|
844
854
|
isBinary,
|
|
845
855
|
stripAnsiAndControl
|
|
846
856
|
} from "./chunk-FKI7XUZK.js";
|
|
847
857
|
import "./chunk-EPSJPAHV.js";
|
|
848
|
-
import "./chunk-2MXORWOC.js";
|
|
849
858
|
import {
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
859
|
+
describeO1ConnectError,
|
|
860
|
+
forgetO1Connect,
|
|
861
|
+
isO1ConnectError,
|
|
862
|
+
o1ConnectBaseUrlFor,
|
|
863
|
+
openO1Connect,
|
|
864
|
+
setAsideUnreadableSecretStore,
|
|
865
|
+
setupO1Connect
|
|
866
|
+
} from "./chunk-JKXGHDQ2.js";
|
|
854
867
|
import {
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
} from "./chunk-IWYGXAQU.js";
|
|
868
|
+
atomicWriteFileSync
|
|
869
|
+
} from "./chunk-EPJAMNLS.js";
|
|
858
870
|
import {
|
|
859
871
|
LOCAL_API_KEY_PLACEHOLDER,
|
|
860
872
|
ORGANIZAONE_ENV_KEY,
|
|
@@ -883,7 +895,7 @@ import {
|
|
|
883
895
|
resolveSavedModelApiKey,
|
|
884
896
|
shouldShowStep,
|
|
885
897
|
withdrawExportedCredential
|
|
886
|
-
} from "./chunk-
|
|
898
|
+
} from "./chunk-D7DZAA5W.js";
|
|
887
899
|
import {
|
|
888
900
|
DEFAULT_TOKEN_LIMIT,
|
|
889
901
|
REASONING_EFFORT_TIERS,
|
|
@@ -891,19 +903,24 @@ import {
|
|
|
891
903
|
parseModelReasoningCapabilities,
|
|
892
904
|
reasoningEffortsForCapability
|
|
893
905
|
} from "./chunk-72EBG4FJ.js";
|
|
906
|
+
import {
|
|
907
|
+
MAINLINE_CODER_MODEL
|
|
908
|
+
} from "./chunk-7CDZR7TE.js";
|
|
909
|
+
import "./chunk-LEXKU5FI.js";
|
|
910
|
+
import "./chunk-HDGYCLNB.js";
|
|
894
911
|
import "./chunk-WPZM4XOT.js";
|
|
895
912
|
import {
|
|
896
913
|
FinishReason
|
|
897
914
|
} from "./chunk-VYRPAY75.js";
|
|
898
915
|
import "./chunk-S7GOFMLU.js";
|
|
899
916
|
import "./chunk-RC67CA5Z.js";
|
|
900
|
-
import "./chunk-
|
|
917
|
+
import "./chunk-G7JBBQVU.js";
|
|
901
918
|
import "./chunk-HHIX6THS.js";
|
|
902
919
|
import "./chunk-O6GD6SFV.js";
|
|
903
920
|
import {
|
|
904
921
|
registerCleanup,
|
|
905
922
|
runExitCleanup
|
|
906
|
-
} from "./chunk-
|
|
923
|
+
} from "./chunk-3I7PGVYC.js";
|
|
907
924
|
import {
|
|
908
925
|
finalizeStartupProfile,
|
|
909
926
|
profileCheckpoint
|
|
@@ -915,26 +932,12 @@ import {
|
|
|
915
932
|
writeStderrLineSafe,
|
|
916
933
|
writeStdoutLine
|
|
917
934
|
} from "./chunk-RANA4SOY.js";
|
|
935
|
+
import {
|
|
936
|
+
getWindowsClipboardText
|
|
937
|
+
} from "./chunk-3UJ6A45H.js";
|
|
918
938
|
import "./chunk-AK6T4SJC.js";
|
|
919
939
|
import "./chunk-KMWAEX43.js";
|
|
920
940
|
import "./chunk-EVC2HZ5T.js";
|
|
921
|
-
import {
|
|
922
|
-
describeO1ConnectError,
|
|
923
|
-
forgetO1Connect,
|
|
924
|
-
isO1ConnectError,
|
|
925
|
-
o1ConnectBaseUrlFor,
|
|
926
|
-
openO1Connect,
|
|
927
|
-
setAsideUnreadableSecretStore,
|
|
928
|
-
setupO1Connect
|
|
929
|
-
} from "./chunk-JKXGHDQ2.js";
|
|
930
|
-
import {
|
|
931
|
-
atomicWriteFileSync
|
|
932
|
-
} from "./chunk-EPJAMNLS.js";
|
|
933
|
-
import {
|
|
934
|
-
MAINLINE_CODER_MODEL
|
|
935
|
-
} from "./chunk-GJFAQ4TA.js";
|
|
936
|
-
import "./chunk-LEXKU5FI.js";
|
|
937
|
-
import "./chunk-HDGYCLNB.js";
|
|
938
941
|
import "./chunk-7TK6OY2J.js";
|
|
939
942
|
import {
|
|
940
943
|
createDebugLogger,
|
|
@@ -26609,8 +26612,593 @@ var WorkflowSaveOverlay = /* @__PURE__ */ __name(({
|
|
|
26609
26612
|
] });
|
|
26610
26613
|
}, "WorkflowSaveOverlay");
|
|
26611
26614
|
|
|
26612
|
-
// packages/cli/src/ui/components/background-view/
|
|
26615
|
+
// packages/cli/src/ui/components/background-view/AgentDashboard.tsx
|
|
26616
|
+
init_esbuild_shims();
|
|
26617
|
+
|
|
26618
|
+
// packages/cli/src/ui/components/background-view/agent-dashboard-model.ts
|
|
26619
|
+
init_esbuild_shims();
|
|
26620
|
+
var AGENT_DASHBOARD_TABS = [
|
|
26621
|
+
"summary",
|
|
26622
|
+
"plan",
|
|
26623
|
+
"activity",
|
|
26624
|
+
"details"
|
|
26625
|
+
];
|
|
26626
|
+
var MAX_FIELD_CHARS = 16384;
|
|
26627
|
+
var MAX_PLAN_ITEMS = 500;
|
|
26628
|
+
var MAX_PREPARED_ROWS = 2e3;
|
|
26629
|
+
function dashboardText(text) {
|
|
26630
|
+
const safe = sanitizeMultilineForDisplay(text).replace(/\t/g, " ");
|
|
26631
|
+
return safe.length > MAX_FIELD_CHARS ? safe.slice(0, MAX_FIELD_CHARS) + "\u2026" : safe;
|
|
26632
|
+
}
|
|
26633
|
+
__name(dashboardText, "dashboardText");
|
|
26634
|
+
function dashboardSingleLine(text, width) {
|
|
26635
|
+
return truncateToWidth(dashboardText(text).replace(/\s*\n\s*/g, " "), width);
|
|
26636
|
+
}
|
|
26637
|
+
__name(dashboardSingleLine, "dashboardSingleLine");
|
|
26638
|
+
function nextAgentDashboardTab(tab, direction) {
|
|
26639
|
+
const index = AGENT_DASHBOARD_TABS.indexOf(tab);
|
|
26640
|
+
return AGENT_DASHBOARD_TABS[(index + direction + AGENT_DASHBOARD_TABS.length) % AGENT_DASHBOARD_TABS.length];
|
|
26641
|
+
}
|
|
26642
|
+
__name(nextAgentDashboardTab, "nextAgentDashboardTab");
|
|
26643
|
+
function getAgentDashboardLayout(width, height) {
|
|
26644
|
+
const frameHeight = Math.max(3, height - 2);
|
|
26645
|
+
const bodyHeight = Math.max(1, frameHeight - 4);
|
|
26646
|
+
const split = width >= 116;
|
|
26647
|
+
const rosterWidth = split ? 30 : Math.max(1, width - 4);
|
|
26648
|
+
const detailWidth = Math.max(1, width - 4 - (split ? rosterWidth + 3 : 0));
|
|
26649
|
+
const headerRows = bodyHeight < 12 ? 4 : 6;
|
|
26650
|
+
const pageSize = Math.max(1, bodyHeight - headerRows);
|
|
26651
|
+
return {
|
|
26652
|
+
frameHeight,
|
|
26653
|
+
bodyHeight,
|
|
26654
|
+
split,
|
|
26655
|
+
rosterWidth,
|
|
26656
|
+
detailWidth,
|
|
26657
|
+
headerRows,
|
|
26658
|
+
pageSize
|
|
26659
|
+
};
|
|
26660
|
+
}
|
|
26661
|
+
__name(getAgentDashboardLayout, "getAgentDashboardLayout");
|
|
26662
|
+
function dashboardElapsed(entry, now = Date.now()) {
|
|
26663
|
+
return formatDuration(
|
|
26664
|
+
Math.floor(Math.max(0, (entry.endTime ?? now) - entry.startTime) / 1e3) * 1e3,
|
|
26665
|
+
{ hideTrailingZeros: true }
|
|
26666
|
+
);
|
|
26667
|
+
}
|
|
26668
|
+
__name(dashboardElapsed, "dashboardElapsed");
|
|
26669
|
+
function dashboardStatus(entry) {
|
|
26670
|
+
if ((entry.kind === "agent" || entry.kind === "workflow") && entry.pendingApprovals?.length) {
|
|
26671
|
+
return { label: t("Awaiting approval"), icon: "!", tone: "warning" };
|
|
26672
|
+
}
|
|
26673
|
+
switch (entry.status) {
|
|
26674
|
+
case "running":
|
|
26675
|
+
return { label: t("Running"), icon: glyphs().dot, tone: "running" };
|
|
26676
|
+
case "pausing":
|
|
26677
|
+
return { label: t("Pausing"), icon: "\u2026", tone: "warning" };
|
|
26678
|
+
case "paused":
|
|
26679
|
+
return { label: t("Paused"), icon: "||", tone: "warning" };
|
|
26680
|
+
case "completed":
|
|
26681
|
+
return { label: t("Completed"), icon: glyphs().done, tone: "success" };
|
|
26682
|
+
case "failed":
|
|
26683
|
+
return { label: t("Failed"), icon: glyphs().failed, tone: "error" };
|
|
26684
|
+
case "cancelled":
|
|
26685
|
+
return { label: t("Stopped"), icon: glyphs().hollow, tone: "muted" };
|
|
26686
|
+
default:
|
|
26687
|
+
throw new Error("Unsupported background task status");
|
|
26688
|
+
}
|
|
26689
|
+
}
|
|
26690
|
+
__name(dashboardStatus, "dashboardStatus");
|
|
26691
|
+
function dashboardTaskLabel(entry) {
|
|
26692
|
+
if (entry.kind === "dream") return t("[dream] memory consolidation");
|
|
26693
|
+
if (entry.kind === "workflow")
|
|
26694
|
+
return "[workflow] " + (entry.meta?.name ?? entry.description ?? entry.runId);
|
|
26695
|
+
if (entry.kind === "agent")
|
|
26696
|
+
return entry.description || entry.subagentType || t("Agent");
|
|
26697
|
+
return "[" + entry.kind + "] " + (entry.description || entry.command);
|
|
26698
|
+
}
|
|
26699
|
+
__name(dashboardTaskLabel, "dashboardTaskLabel");
|
|
26700
|
+
function dashboardStats(entry) {
|
|
26701
|
+
const parts = [dashboardElapsed(entry)];
|
|
26702
|
+
if (entry.stats?.outputTokens !== void 0)
|
|
26703
|
+
parts.push(
|
|
26704
|
+
t("{{count}} tokens", {
|
|
26705
|
+
count: formatTokenCount(entry.stats.outputTokens)
|
|
26706
|
+
})
|
|
26707
|
+
);
|
|
26708
|
+
if (entry.stats?.toolUses !== void 0)
|
|
26709
|
+
parts.push(
|
|
26710
|
+
t(
|
|
26711
|
+
entry.stats.toolUses === 1 ? "{{count}} tool call" : "{{count}} tool calls",
|
|
26712
|
+
{ count: String(entry.stats.toolUses) }
|
|
26713
|
+
)
|
|
26714
|
+
);
|
|
26715
|
+
return parts.join(" \xB7 ");
|
|
26716
|
+
}
|
|
26717
|
+
__name(dashboardStats, "dashboardStats");
|
|
26718
|
+
function dashboardActivity(name, description) {
|
|
26719
|
+
const display = localizeToolDisplayName(TOOL_DISPLAY_BY_NAME[name] ?? name);
|
|
26720
|
+
return description ? display + " \xB7 " + description : display;
|
|
26721
|
+
}
|
|
26722
|
+
__name(dashboardActivity, "dashboardActivity");
|
|
26723
|
+
function getAgentDashboardLines(entry, tab, width, entries = []) {
|
|
26724
|
+
const rows = [];
|
|
26725
|
+
let omitted = false;
|
|
26726
|
+
const add = /* @__PURE__ */ __name((text, tone = "secondary", bold = false) => {
|
|
26727
|
+
if (rows.length >= MAX_PREPARED_ROWS - 1) {
|
|
26728
|
+
omitted = true;
|
|
26729
|
+
return;
|
|
26730
|
+
}
|
|
26731
|
+
for (const part of wrapAnsi(dashboardText(text), Math.max(1, width), {
|
|
26732
|
+
hard: true,
|
|
26733
|
+
trim: false
|
|
26734
|
+
}).split("\n")) {
|
|
26735
|
+
if (rows.length >= MAX_PREPARED_ROWS - 1) {
|
|
26736
|
+
omitted = true;
|
|
26737
|
+
break;
|
|
26738
|
+
}
|
|
26739
|
+
rows.push({ text: part, tone, bold });
|
|
26740
|
+
}
|
|
26741
|
+
}, "add");
|
|
26742
|
+
const title = /* @__PURE__ */ __name((text) => {
|
|
26743
|
+
if (rows.length) add("");
|
|
26744
|
+
add(text, "title", true);
|
|
26745
|
+
}, "title");
|
|
26746
|
+
const activities = (entry.recentActivities ?? []).slice(-10);
|
|
26747
|
+
const current = activities.at(-1);
|
|
26748
|
+
const allTodos = entry.todoItems ?? [];
|
|
26749
|
+
const todos = allTodos.slice(0, MAX_PLAN_ITEMS);
|
|
26750
|
+
const completed = allTodos.filter(
|
|
26751
|
+
(todo) => todo.status === "completed"
|
|
26752
|
+
).length;
|
|
26753
|
+
const showPlan = /* @__PURE__ */ __name(() => {
|
|
26754
|
+
if (!todos.length) {
|
|
26755
|
+
add(t("No plan recorded"), "muted");
|
|
26756
|
+
return;
|
|
26757
|
+
}
|
|
26758
|
+
for (const todo of todos) {
|
|
26759
|
+
if (rows.length >= MAX_PREPARED_ROWS - 1) {
|
|
26760
|
+
omitted = true;
|
|
26761
|
+
break;
|
|
26762
|
+
}
|
|
26763
|
+
const done = todo.status === "completed";
|
|
26764
|
+
const active = todo.status === "in_progress";
|
|
26765
|
+
add(
|
|
26766
|
+
(done ? glyphs().done : active ? ">" : glyphs().hollow) + " " + todo.content,
|
|
26767
|
+
done ? "success" : active ? "running" : "muted"
|
|
26768
|
+
);
|
|
26769
|
+
if (todo.blockedBy?.length)
|
|
26770
|
+
add(
|
|
26771
|
+
t("Depends on: {{ids}}", { ids: todo.blockedBy.join(", ") }),
|
|
26772
|
+
"muted"
|
|
26773
|
+
);
|
|
26774
|
+
}
|
|
26775
|
+
if (allTodos.length > todos.length)
|
|
26776
|
+
add(
|
|
26777
|
+
t("{{count}} more plan items", {
|
|
26778
|
+
count: String(allTodos.length - todos.length)
|
|
26779
|
+
}),
|
|
26780
|
+
"muted"
|
|
26781
|
+
);
|
|
26782
|
+
}, "showPlan");
|
|
26783
|
+
const alerts = /* @__PURE__ */ __name(() => {
|
|
26784
|
+
if (entry.pendingApprovals?.length) {
|
|
26785
|
+
title(t("Your action is required"));
|
|
26786
|
+
add(t("Press a to review the pending approval."), "warning");
|
|
26787
|
+
}
|
|
26788
|
+
if (entry.resumeBlockedReason) {
|
|
26789
|
+
title(t("Resume blocked"));
|
|
26790
|
+
add(entry.resumeBlockedReason, "error");
|
|
26791
|
+
}
|
|
26792
|
+
if (entry.error) {
|
|
26793
|
+
title(t("Error"));
|
|
26794
|
+
add(entry.error, "error");
|
|
26795
|
+
}
|
|
26796
|
+
}, "alerts");
|
|
26797
|
+
const planTitle = /* @__PURE__ */ __name(() => t("Declared plan") + (allTodos.length ? " \xB7 " + completed + "/" + allTodos.length : ""), "planTitle");
|
|
26798
|
+
if (tab === "summary") {
|
|
26799
|
+
alerts();
|
|
26800
|
+
title(entry.status === "completed" ? t("Result") : t("Now"));
|
|
26801
|
+
if (entry.status === "completed" && entry.result)
|
|
26802
|
+
add(entry.result, "primary");
|
|
26803
|
+
else if (current)
|
|
26804
|
+
add(dashboardActivity(current.name, current.description), "code");
|
|
26805
|
+
else add(t("No activity recorded"), "muted");
|
|
26806
|
+
title(planTitle());
|
|
26807
|
+
showPlan();
|
|
26808
|
+
title(t("Recent activity"));
|
|
26809
|
+
for (const activity of activities.slice(-4, -1).reverse()) {
|
|
26810
|
+
add(
|
|
26811
|
+
dashboardSingleLine(
|
|
26812
|
+
dashboardActivity(activity.name, activity.description),
|
|
26813
|
+
width
|
|
26814
|
+
),
|
|
26815
|
+
"secondary"
|
|
26816
|
+
);
|
|
26817
|
+
}
|
|
26818
|
+
if (activities.length <= 1) add(t("No earlier activity recorded"), "muted");
|
|
26819
|
+
} else if (tab === "plan") {
|
|
26820
|
+
title(planTitle());
|
|
26821
|
+
showPlan();
|
|
26822
|
+
alerts();
|
|
26823
|
+
title(t("About progress"));
|
|
26824
|
+
add(
|
|
26825
|
+
t("Plan items describe declared work, not estimated time remaining."),
|
|
26826
|
+
"muted"
|
|
26827
|
+
);
|
|
26828
|
+
} else if (tab === "activity") {
|
|
26829
|
+
title(t("Current event"));
|
|
26830
|
+
if (current)
|
|
26831
|
+
add(dashboardActivity(current.name, current.description), "code");
|
|
26832
|
+
else add(t("No activity recorded"), "muted");
|
|
26833
|
+
title(t("Progress"));
|
|
26834
|
+
for (const activity of activities.slice(0, -1)) {
|
|
26835
|
+
add(
|
|
26836
|
+
dashboardSingleLine(
|
|
26837
|
+
dashboardActivity(activity.name, activity.description),
|
|
26838
|
+
width
|
|
26839
|
+
)
|
|
26840
|
+
);
|
|
26841
|
+
}
|
|
26842
|
+
alerts();
|
|
26843
|
+
} else {
|
|
26844
|
+
title(t("Prompt"));
|
|
26845
|
+
add(entry.prompt || t("No instruction recorded"));
|
|
26846
|
+
title(t("Parent"));
|
|
26847
|
+
const lookup = /* @__PURE__ */ __name((id) => entries.find(
|
|
26848
|
+
(item) => item.kind === "agent" && item.agentId === id
|
|
26849
|
+
), "lookup");
|
|
26850
|
+
const { chain } = ancestorChain(entry, lookup);
|
|
26851
|
+
if (chain.length)
|
|
26852
|
+
add(
|
|
26853
|
+
[...chain].reverse().map((item) => {
|
|
26854
|
+
const parent = lookup(item.agentId ?? "");
|
|
26855
|
+
return parent ? (parent.subagentType ?? t("Agent")) + " \u2014 " + parent.description : item.agentId ?? "";
|
|
26856
|
+
}).join(" \u203A ")
|
|
26857
|
+
);
|
|
26858
|
+
else
|
|
26859
|
+
add(
|
|
26860
|
+
entry.parentName ? entry.parentName + " \xB7 " + t("no longer running") : t("Main session")
|
|
26861
|
+
);
|
|
26862
|
+
if ((entry.depth ?? 0) > 0)
|
|
26863
|
+
add(
|
|
26864
|
+
t("nested \xB7 level {{level}}", {
|
|
26865
|
+
level: String((entry.depth ?? 0) + 1)
|
|
26866
|
+
}),
|
|
26867
|
+
"muted"
|
|
26868
|
+
);
|
|
26869
|
+
if (entry.model) {
|
|
26870
|
+
title(t("Model"));
|
|
26871
|
+
add(entry.model);
|
|
26872
|
+
}
|
|
26873
|
+
const children = entries.filter(
|
|
26874
|
+
(child) => child.kind === "agent" && child.parentAgentId === entry.agentId
|
|
26875
|
+
).sort(compareActiveThenTerminal);
|
|
26876
|
+
if (children.length) {
|
|
26877
|
+
title(t("Sub-agents"));
|
|
26878
|
+
for (const child of children.slice(0, 5))
|
|
26879
|
+
add(
|
|
26880
|
+
dashboardStatus(child).icon + " " + (child.kind === "agent" ? (child.subagentType ?? t("Agent")) + " \u2014 " : "") + dashboardTaskLabel(child)
|
|
26881
|
+
);
|
|
26882
|
+
if (children.length > 5)
|
|
26883
|
+
add(
|
|
26884
|
+
t("{{count}} more", { count: String(children.length - 5) }),
|
|
26885
|
+
"muted"
|
|
26886
|
+
);
|
|
26887
|
+
}
|
|
26888
|
+
if (entry.outputFile) {
|
|
26889
|
+
title(t("Transcript"));
|
|
26890
|
+
add(entry.outputFile, "code");
|
|
26891
|
+
}
|
|
26892
|
+
alerts();
|
|
26893
|
+
}
|
|
26894
|
+
if (omitted)
|
|
26895
|
+
rows.push({
|
|
26896
|
+
text: dashboardSingleLine(
|
|
26897
|
+
t("Additional content omitted; inspect the transcript."),
|
|
26898
|
+
width
|
|
26899
|
+
),
|
|
26900
|
+
tone: "muted"
|
|
26901
|
+
});
|
|
26902
|
+
return rows;
|
|
26903
|
+
}
|
|
26904
|
+
__name(getAgentDashboardLines, "getAgentDashboardLines");
|
|
26905
|
+
|
|
26906
|
+
// packages/cli/src/ui/components/background-view/AgentDashboard.tsx
|
|
26613
26907
|
var import_jsx_runtime109 = __toESM(require_jsx_runtime(), 1);
|
|
26908
|
+
function toneColor(tone) {
|
|
26909
|
+
return {
|
|
26910
|
+
title: theme.text.accent,
|
|
26911
|
+
primary: theme.text.primary,
|
|
26912
|
+
secondary: theme.text.secondary,
|
|
26913
|
+
muted: extendedTheme.text.muted,
|
|
26914
|
+
code: theme.text.code,
|
|
26915
|
+
success: theme.status.success,
|
|
26916
|
+
warning: theme.status.warning,
|
|
26917
|
+
error: theme.status.error,
|
|
26918
|
+
running: extendedTheme.ui.brand
|
|
26919
|
+
}[tone];
|
|
26920
|
+
}
|
|
26921
|
+
__name(toneColor, "toneColor");
|
|
26922
|
+
function DashboardLine({
|
|
26923
|
+
value,
|
|
26924
|
+
width
|
|
26925
|
+
}) {
|
|
26926
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: toneColor(value.tone), bold: value.bold, wrap: "truncate-end", children: dashboardSingleLine(value.text || " ", width) });
|
|
26927
|
+
}
|
|
26928
|
+
__name(DashboardLine, "DashboardLine");
|
|
26929
|
+
var tabLabels = {
|
|
26930
|
+
summary: "Agent summary",
|
|
26931
|
+
plan: "Agent plan",
|
|
26932
|
+
activity: "Agent activity",
|
|
26933
|
+
details: "Agent details"
|
|
26934
|
+
};
|
|
26935
|
+
function DashboardTabs({
|
|
26936
|
+
tab,
|
|
26937
|
+
width
|
|
26938
|
+
}) {
|
|
26939
|
+
const names = AGENT_DASHBOARD_TABS.map((key) => t(tabLabels[key]));
|
|
26940
|
+
const naturalWidth = names.reduce(
|
|
26941
|
+
(sum, name) => sum + getCachedStringWidth(name) + 2,
|
|
26942
|
+
0
|
|
26943
|
+
);
|
|
26944
|
+
const slot = Math.max(1, Math.floor(width / names.length));
|
|
26945
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { wrap: "truncate-end", children: AGENT_DASHBOARD_TABS.map((key, index) => {
|
|
26946
|
+
const padding = naturalWidth <= width || slot >= 3 ? " " : "";
|
|
26947
|
+
const name = dashboardSingleLine(
|
|
26948
|
+
names[index],
|
|
26949
|
+
naturalWidth <= width ? width : Math.max(1, slot - padding.length * 2)
|
|
26950
|
+
);
|
|
26951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
26952
|
+
Text,
|
|
26953
|
+
{
|
|
26954
|
+
bold: tab === key,
|
|
26955
|
+
color: tab === key ? theme.background.primary : theme.text.secondary,
|
|
26956
|
+
backgroundColor: tab === key ? theme.text.accent : void 0,
|
|
26957
|
+
children: padding + name + padding
|
|
26958
|
+
},
|
|
26959
|
+
key
|
|
26960
|
+
);
|
|
26961
|
+
}) });
|
|
26962
|
+
}
|
|
26963
|
+
__name(DashboardTabs, "DashboardTabs");
|
|
26964
|
+
function AgentDashboard({
|
|
26965
|
+
entries,
|
|
26966
|
+
selectedEntry,
|
|
26967
|
+
selectedIndex,
|
|
26968
|
+
detailFocused,
|
|
26969
|
+
tab,
|
|
26970
|
+
scrollOffset,
|
|
26971
|
+
width,
|
|
26972
|
+
height,
|
|
26973
|
+
actionHints,
|
|
26974
|
+
footerMessage,
|
|
26975
|
+
renderOtherDetail
|
|
26976
|
+
}) {
|
|
26977
|
+
const layout = getAgentDashboardLayout(width, height);
|
|
26978
|
+
const { bodyHeight, rosterWidth, detailWidth, split, headerRows, pageSize } = layout;
|
|
26979
|
+
const agent = selectedEntry?.kind === "agent" ? selectedEntry : void 0;
|
|
26980
|
+
const lines = agent ? getAgentDashboardLines(agent, tab, detailWidth, entries) : [];
|
|
26981
|
+
const offset = Math.max(0, Math.min(scrollOffset, lines.length - pageSize));
|
|
26982
|
+
const visibleCount = Math.max(1, Math.floor((bodyHeight - 2) / 4));
|
|
26983
|
+
const start = Math.min(
|
|
26984
|
+
Math.max(0, selectedIndex - visibleCount + 1),
|
|
26985
|
+
Math.max(0, entries.length - visibleCount)
|
|
26986
|
+
);
|
|
26987
|
+
const tree = computeAgentTreeInfo(entries);
|
|
26988
|
+
const blocking = computeUserBlockingIds(entries);
|
|
26989
|
+
const count = /* @__PURE__ */ __name((status2) => entries.filter(
|
|
26990
|
+
(item) => item.status === status2 && (status2 !== "running" || item.kind !== "agent" && item.kind !== "workflow" || !item.pendingApprovals?.length)
|
|
26991
|
+
).length, "count");
|
|
26992
|
+
const approvals = entries.filter(
|
|
26993
|
+
(item) => (item.kind === "agent" || item.kind === "workflow") && item.pendingApprovals?.length
|
|
26994
|
+
).length;
|
|
26995
|
+
const title = entries.every((item) => item.kind === "agent") ? t("Agents") : t("Background tasks");
|
|
26996
|
+
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");
|
|
26997
|
+
const showDetail = split || detailFocused;
|
|
26998
|
+
const footerWidth = Math.max(1, width);
|
|
26999
|
+
const tabsHint = t("\u2190\u2192 tabs");
|
|
27000
|
+
const backHint = t(width < 60 ? "esc back" : "esc back to list");
|
|
27001
|
+
const listHint = t(
|
|
27002
|
+
width < 60 ? "\u2191\u2193 agents \xB7 enter view \xB7 esc close" : "\u2191\u2193 agents \xB7 enter view \xB7 \u2190\u2192 tabs \xB7 esc close"
|
|
27003
|
+
);
|
|
27004
|
+
const detailHintWidth = getCachedStringWidth(tabsHint + " \xB7 " + backHint);
|
|
27005
|
+
const beforeDetailHint = footerWidth >= detailHintWidth + 12 ? t("\u2191\u2193 scroll") + " \xB7 " : "";
|
|
27006
|
+
const status = selectedEntry ? dashboardStatus(selectedEntry) : void 0;
|
|
27007
|
+
if (width < 36 || height < 12)
|
|
27008
|
+
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(
|
|
27009
|
+
t("Enlarge the terminal to inspect agents. Esc closes."),
|
|
27010
|
+
width
|
|
27011
|
+
) }) });
|
|
27012
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { flexDirection: "column", width, height, flexShrink: 0, children: [
|
|
27013
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27014
|
+
Box_default,
|
|
27015
|
+
{
|
|
27016
|
+
flexDirection: "column",
|
|
27017
|
+
width,
|
|
27018
|
+
height: layout.frameHeight,
|
|
27019
|
+
borderStyle: glyphs().borderStyle,
|
|
27020
|
+
borderColor: extendedTheme.ui.rule,
|
|
27021
|
+
paddingX: 1,
|
|
27022
|
+
flexShrink: 0,
|
|
27023
|
+
children: [
|
|
27024
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, wrap: "truncate-end", children: dashboardSingleLine(summary, Math.max(1, width - 4)) }),
|
|
27025
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Box_default, { height: 1, flexShrink: 0 }),
|
|
27026
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27027
|
+
Box_default,
|
|
27028
|
+
{
|
|
27029
|
+
flexDirection: "row",
|
|
27030
|
+
height: bodyHeight,
|
|
27031
|
+
flexShrink: 0,
|
|
27032
|
+
overflow: "hidden",
|
|
27033
|
+
children: [
|
|
27034
|
+
(split || !detailFocused) && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27035
|
+
Box_default,
|
|
27036
|
+
{
|
|
27037
|
+
flexDirection: "column",
|
|
27038
|
+
width: rosterWidth,
|
|
27039
|
+
height: bodyHeight,
|
|
27040
|
+
flexShrink: 0,
|
|
27041
|
+
children: [
|
|
27042
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27043
|
+
Box_default,
|
|
27044
|
+
{
|
|
27045
|
+
flexDirection: "column",
|
|
27046
|
+
height: Math.max(0, bodyHeight - 1),
|
|
27047
|
+
overflow: "hidden",
|
|
27048
|
+
flexShrink: 0,
|
|
27049
|
+
children: [
|
|
27050
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, wrap: "truncate-end", children: dashboardSingleLine(t("Agents \xB7 main session"), rosterWidth) }),
|
|
27051
|
+
entries.slice(start, start + visibleCount).map((item, localIndex) => {
|
|
27052
|
+
const selected = localIndex + start === selectedIndex;
|
|
27053
|
+
const itemStatus = dashboardStatus(item);
|
|
27054
|
+
const prefix = item.kind === "agent" ? treeRowPrefix(item, tree.get(item.agentId)) : "";
|
|
27055
|
+
const blockLabel = item.kind === "agent" && blocking.has(item.agentId) ? "[blocking] " : "";
|
|
27056
|
+
const label = dashboardSingleLine(
|
|
27057
|
+
prefix + blockLabel + dashboardTaskLabel(item),
|
|
27058
|
+
Math.max(
|
|
27059
|
+
0,
|
|
27060
|
+
rosterWidth - getCachedStringWidth(
|
|
27061
|
+
glyphs().prompt + " " + itemStatus.icon + " "
|
|
27062
|
+
)
|
|
27063
|
+
)
|
|
27064
|
+
);
|
|
27065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
27066
|
+
Box_default,
|
|
27067
|
+
{
|
|
27068
|
+
flexDirection: "column",
|
|
27069
|
+
flexShrink: 0,
|
|
27070
|
+
children: [
|
|
27071
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Text, { wrap: "truncate-end", children: [
|
|
27072
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.ui.brand, children: selected ? glyphs().prompt + " " : " " }),
|
|
27073
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: toneColor(itemStatus.tone), children: itemStatus.icon + " " }),
|
|
27074
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27075
|
+
Text,
|
|
27076
|
+
{
|
|
27077
|
+
color: selected ? theme.text.primary : theme.text.secondary,
|
|
27078
|
+
bold: selected,
|
|
27079
|
+
children: label
|
|
27080
|
+
}
|
|
27081
|
+
)
|
|
27082
|
+
] }),
|
|
27083
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27084
|
+
Text,
|
|
27085
|
+
{
|
|
27086
|
+
color: toneColor(itemStatus.tone),
|
|
27087
|
+
wrap: "truncate-end",
|
|
27088
|
+
children: dashboardSingleLine(
|
|
27089
|
+
" " + itemStatus.label,
|
|
27090
|
+
rosterWidth
|
|
27091
|
+
)
|
|
27092
|
+
}
|
|
27093
|
+
),
|
|
27094
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27095
|
+
Text,
|
|
27096
|
+
{
|
|
27097
|
+
color: extendedTheme.text.muted,
|
|
27098
|
+
wrap: "truncate-end",
|
|
27099
|
+
children: dashboardSingleLine(
|
|
27100
|
+
" " + (item.kind === "agent" ? dashboardStats(item) : dashboardElapsed(item)),
|
|
27101
|
+
rosterWidth
|
|
27102
|
+
)
|
|
27103
|
+
}
|
|
27104
|
+
),
|
|
27105
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " })
|
|
27106
|
+
]
|
|
27107
|
+
},
|
|
27108
|
+
entryId(item)
|
|
27109
|
+
);
|
|
27110
|
+
})
|
|
27111
|
+
]
|
|
27112
|
+
}
|
|
27113
|
+
),
|
|
27114
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: dashboardSingleLine(
|
|
27115
|
+
t("{{count}} tasks \xB7 {{start}}\u2013{{end}} visible", {
|
|
27116
|
+
count: String(entries.length),
|
|
27117
|
+
start: String(start + 1),
|
|
27118
|
+
end: String(Math.min(start + visibleCount, entries.length))
|
|
27119
|
+
}),
|
|
27120
|
+
rosterWidth
|
|
27121
|
+
) })
|
|
27122
|
+
]
|
|
27123
|
+
}
|
|
27124
|
+
),
|
|
27125
|
+
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)) }),
|
|
27126
|
+
showDetail && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27127
|
+
Box_default,
|
|
27128
|
+
{
|
|
27129
|
+
flexDirection: "column",
|
|
27130
|
+
width: detailWidth,
|
|
27131
|
+
height: bodyHeight,
|
|
27132
|
+
flexShrink: 0,
|
|
27133
|
+
overflow: "hidden",
|
|
27134
|
+
children: agent ? /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_jsx_runtime109.Fragment, { children: [
|
|
27135
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, wrap: "truncate-end", children: dashboardSingleLine(
|
|
27136
|
+
dashboardTaskLabel(agent),
|
|
27137
|
+
detailWidth
|
|
27138
|
+
) }),
|
|
27139
|
+
headerRows === 6 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: dashboardSingleLine(
|
|
27140
|
+
(agent.subagentType ?? t("Agent")) + " \xB7 " + agent.agentId,
|
|
27141
|
+
detailWidth
|
|
27142
|
+
) }),
|
|
27143
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27144
|
+
Text,
|
|
27145
|
+
{
|
|
27146
|
+
color: status ? toneColor(status.tone) : void 0,
|
|
27147
|
+
wrap: "truncate-end",
|
|
27148
|
+
children: dashboardSingleLine(
|
|
27149
|
+
(status ? status.icon + " " + status.label + " \xB7 " : "") + dashboardStats(agent),
|
|
27150
|
+
detailWidth
|
|
27151
|
+
)
|
|
27152
|
+
}
|
|
27153
|
+
),
|
|
27154
|
+
headerRows === 6 && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " }),
|
|
27155
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(DashboardTabs, { tab, width: detailWidth }),
|
|
27156
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: " " }),
|
|
27157
|
+
lines.slice(offset, offset + pageSize).map((value, index) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
27158
|
+
DashboardLine,
|
|
27159
|
+
{
|
|
27160
|
+
value,
|
|
27161
|
+
width: detailWidth
|
|
27162
|
+
},
|
|
27163
|
+
index
|
|
27164
|
+
))
|
|
27165
|
+
] }) : selectedEntry ? renderOtherDetail(selectedEntry, bodyHeight, detailWidth) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { children: t("No entry to show.") })
|
|
27166
|
+
}
|
|
27167
|
+
)
|
|
27168
|
+
]
|
|
27169
|
+
}
|
|
27170
|
+
)
|
|
27171
|
+
]
|
|
27172
|
+
}
|
|
27173
|
+
),
|
|
27174
|
+
/* @__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: [
|
|
27175
|
+
/* @__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: [
|
|
27176
|
+
beforeDetailHint,
|
|
27177
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: tabsHint }),
|
|
27178
|
+
" \xB7 ",
|
|
27179
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { bold: true, color: theme.text.accent, children: backHint })
|
|
27180
|
+
] }) : dashboardSingleLine(listHint, footerWidth) }),
|
|
27181
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(Box_default, { justifyContent: "space-between", children: [
|
|
27182
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: dashboardSingleLine(
|
|
27183
|
+
actionHints.join(" \xB7 "),
|
|
27184
|
+
Math.max(1, footerWidth - 22)
|
|
27185
|
+
) }),
|
|
27186
|
+
agent && showDetail && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Text, { color: extendedTheme.text.muted, children: dashboardSingleLine(
|
|
27187
|
+
t("lines {{start}}\u2013{{end}}/{{total}}", {
|
|
27188
|
+
start: String(Math.min(offset + 1, lines.length)),
|
|
27189
|
+
end: String(Math.min(offset + pageSize, lines.length)),
|
|
27190
|
+
total: String(lines.length)
|
|
27191
|
+
}),
|
|
27192
|
+
21
|
|
27193
|
+
) })
|
|
27194
|
+
] })
|
|
27195
|
+
] }) })
|
|
27196
|
+
] });
|
|
27197
|
+
}
|
|
27198
|
+
__name(AgentDashboard, "AgentDashboard");
|
|
27199
|
+
|
|
27200
|
+
// packages/cli/src/ui/components/background-view/BackgroundTasksDialog.tsx
|
|
27201
|
+
var import_jsx_runtime110 = __toESM(require_jsx_runtime(), 1);
|
|
26614
27202
|
var MAX_LIVE_LABEL_CHARS = 4096;
|
|
26615
27203
|
function formatActivityLabel(name, description) {
|
|
26616
27204
|
const display = localizeToolDisplayName(TOOL_DISPLAY_BY_NAME[name] ?? name);
|
|
@@ -26794,12 +27382,12 @@ function truncateToWidth2(text, maxWidth) {
|
|
|
26794
27382
|
__name(truncateToWidth2, "truncateToWidth");
|
|
26795
27383
|
var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
26796
27384
|
if (entries.length === 0) {
|
|
26797
|
-
return /* @__PURE__ */ (0,
|
|
26798
|
-
/* @__PURE__ */ (0,
|
|
26799
|
-
/* @__PURE__ */ (0,
|
|
26800
|
-
/* @__PURE__ */ (0,
|
|
27385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
27386
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { paddingX: 1, children: [
|
|
27387
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, children: t("Background tasks") }),
|
|
27388
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: " (0)" })
|
|
26801
27389
|
] }),
|
|
26802
|
-
/* @__PURE__ */ (0,
|
|
27390
|
+
/* @__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
27391
|
] });
|
|
26804
27392
|
}
|
|
26805
27393
|
const fits = entries.length <= maxRows;
|
|
@@ -26817,27 +27405,27 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
26817
27405
|
const visible = entries.slice(windowStart, windowEnd);
|
|
26818
27406
|
const treeInfo = computeAgentTreeInfo(entries);
|
|
26819
27407
|
const blockingIds = computeUserBlockingIds(entries);
|
|
26820
|
-
return /* @__PURE__ */ (0,
|
|
26821
|
-
/* @__PURE__ */ (0,
|
|
26822
|
-
/* @__PURE__ */ (0,
|
|
26823
|
-
/* @__PURE__ */ (0,
|
|
27408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
27409
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { paddingX: 1, children: [
|
|
27410
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, children: t("Background tasks") }),
|
|
27411
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
26824
27412
|
" (",
|
|
26825
27413
|
entries.length,
|
|
26826
27414
|
")"
|
|
26827
27415
|
] })
|
|
26828
27416
|
] }),
|
|
26829
|
-
/* @__PURE__ */ (0,
|
|
26830
|
-
hiddenAbove > 0 && /* @__PURE__ */ (0,
|
|
27417
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
27418
|
+
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
27419
|
visible.map((entry, visibleIdx) => {
|
|
26832
27420
|
const idx = windowStart + visibleIdx;
|
|
26833
27421
|
const isSelected = idx === selectedIndex;
|
|
26834
27422
|
const presentation2 = statusPresentation(entry.status);
|
|
26835
27423
|
const labelColor = isSelected ? theme.text.accent : presentation2 ? presentation2.labelColor : theme.text.primary;
|
|
26836
27424
|
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,
|
|
27425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
|
|
27426
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: isSelected ? theme.text.accent : void 0, children: isSelected ? "> " : " " }),
|
|
27427
|
+
treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
|
|
27428
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: labelColor, children: escapeAnsiCtrlCodes(
|
|
26841
27429
|
rowLabel2(
|
|
26842
27430
|
entry,
|
|
26843
27431
|
entry.kind === "agent" && blockingIds.has(entry.agentId)
|
|
@@ -26845,14 +27433,14 @@ var ListBody = /* @__PURE__ */ __name(({ entries, selectedIndex, maxRows }) => {
|
|
|
26845
27433
|
) })
|
|
26846
27434
|
] }, entryId(entry));
|
|
26847
27435
|
}),
|
|
26848
|
-
hiddenBelow > 0 && /* @__PURE__ */ (0,
|
|
27436
|
+
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
27437
|
] })
|
|
26850
27438
|
] });
|
|
26851
27439
|
}, "ListBody");
|
|
26852
27440
|
var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
26853
27441
|
switch (entry.kind) {
|
|
26854
27442
|
case "agent":
|
|
26855
|
-
return /* @__PURE__ */ (0,
|
|
27443
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26856
27444
|
AgentDetailBody,
|
|
26857
27445
|
{
|
|
26858
27446
|
entry,
|
|
@@ -26861,7 +27449,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
26861
27449
|
}
|
|
26862
27450
|
);
|
|
26863
27451
|
case "shell":
|
|
26864
|
-
return /* @__PURE__ */ (0,
|
|
27452
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26865
27453
|
ShellDetailBody,
|
|
26866
27454
|
{
|
|
26867
27455
|
entry,
|
|
@@ -26870,7 +27458,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
26870
27458
|
}
|
|
26871
27459
|
);
|
|
26872
27460
|
case "monitor":
|
|
26873
|
-
return /* @__PURE__ */ (0,
|
|
27461
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26874
27462
|
MonitorDetailBody,
|
|
26875
27463
|
{
|
|
26876
27464
|
entry,
|
|
@@ -26879,7 +27467,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
26879
27467
|
}
|
|
26880
27468
|
);
|
|
26881
27469
|
case "workflow":
|
|
26882
|
-
return /* @__PURE__ */ (0,
|
|
27470
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26883
27471
|
WorkflowDetailBody,
|
|
26884
27472
|
{
|
|
26885
27473
|
entry,
|
|
@@ -26888,7 +27476,7 @@ var DetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) => {
|
|
|
26888
27476
|
}
|
|
26889
27477
|
);
|
|
26890
27478
|
case "dream":
|
|
26891
|
-
return /* @__PURE__ */ (0,
|
|
27479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26892
27480
|
DreamDetailBody,
|
|
26893
27481
|
{
|
|
26894
27482
|
entry,
|
|
@@ -26919,35 +27507,35 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
26919
27507
|
const visibleTopics = topics.slice(0, MAX_TOPICS);
|
|
26920
27508
|
const hiddenTopicCount = Math.max(0, topics.length - visibleTopics.length);
|
|
26921
27509
|
const hasError = Boolean(entry.error);
|
|
26922
|
-
return /* @__PURE__ */ (0,
|
|
27510
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
26923
27511
|
MaxSizedBox,
|
|
26924
27512
|
{
|
|
26925
27513
|
maxHeight,
|
|
26926
27514
|
maxWidth,
|
|
26927
27515
|
overflowDirection: "bottom",
|
|
26928
27516
|
children: [
|
|
26929
|
-
/* @__PURE__ */ (0,
|
|
26930
|
-
/* @__PURE__ */ (0,
|
|
26931
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
26932
|
-
/* @__PURE__ */ (0,
|
|
27517
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27518
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27519
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27520
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
26933
27521
|
] }),
|
|
26934
|
-
entry.sessionCount !== void 0 && /* @__PURE__ */ (0,
|
|
26935
|
-
/* @__PURE__ */ (0,
|
|
26936
|
-
/* @__PURE__ */ (0,
|
|
26937
|
-
/* @__PURE__ */ (0,
|
|
27522
|
+
entry.sessionCount !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27523
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27524
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Sessions reviewing") }) }),
|
|
27525
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { children: String(entry.sessionCount) }) })
|
|
26938
27526
|
] }),
|
|
26939
|
-
entry.progressText && /* @__PURE__ */ (0,
|
|
26940
|
-
/* @__PURE__ */ (0,
|
|
26941
|
-
/* @__PURE__ */ (0,
|
|
26942
|
-
/* @__PURE__ */ (0,
|
|
27527
|
+
entry.progressText && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27528
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27529
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
|
|
27530
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "wrap", children: entry.progressText }) })
|
|
26943
27531
|
] }),
|
|
26944
|
-
topics.length > 0 && /* @__PURE__ */ (0,
|
|
26945
|
-
/* @__PURE__ */ (0,
|
|
26946
|
-
/* @__PURE__ */ (0,
|
|
27532
|
+
topics.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27533
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27534
|
+
/* @__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
27535
|
count: String(topics.length)
|
|
26948
27536
|
}) }) }),
|
|
26949
|
-
visibleTopics.map((topic) => /* @__PURE__ */ (0,
|
|
26950
|
-
hiddenTopicCount > 0 && /* @__PURE__ */ (0,
|
|
27537
|
+
visibleTopics.map((topic) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { children: ` \xB7 ${topic}` }) }, topic)),
|
|
27538
|
+
hiddenTopicCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
26951
27539
|
Text,
|
|
26952
27540
|
{
|
|
26953
27541
|
color: theme.text.secondary,
|
|
@@ -26955,24 +27543,24 @@ var DreamDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
26955
27543
|
}
|
|
26956
27544
|
) })
|
|
26957
27545
|
] }),
|
|
26958
|
-
hasError && /* @__PURE__ */ (0,
|
|
26959
|
-
/* @__PURE__ */ (0,
|
|
26960
|
-
/* @__PURE__ */ (0,
|
|
26961
|
-
/* @__PURE__ */ (0,
|
|
27546
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27547
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27548
|
+
/* @__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") }) }),
|
|
27549
|
+
/* @__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
27550
|
] }),
|
|
26963
|
-
entry.lockReleaseError && /* @__PURE__ */ (0,
|
|
26964
|
-
/* @__PURE__ */ (0,
|
|
26965
|
-
/* @__PURE__ */ (0,
|
|
26966
|
-
/* @__PURE__ */ (0,
|
|
26967
|
-
/* @__PURE__ */ (0,
|
|
27551
|
+
entry.lockReleaseError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27552
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27553
|
+
/* @__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") }) }),
|
|
27554
|
+
/* @__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 }) }),
|
|
27555
|
+
/* @__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
27556
|
"Subsequent dreams may be skipped as locked until the next session's staleness sweep cleans the file."
|
|
26969
27557
|
) }) })
|
|
26970
27558
|
] }),
|
|
26971
|
-
entry.metadataWriteError && /* @__PURE__ */ (0,
|
|
26972
|
-
/* @__PURE__ */ (0,
|
|
26973
|
-
/* @__PURE__ */ (0,
|
|
26974
|
-
/* @__PURE__ */ (0,
|
|
26975
|
-
/* @__PURE__ */ (0,
|
|
27559
|
+
entry.metadataWriteError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27560
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27561
|
+
/* @__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") }) }),
|
|
27562
|
+
/* @__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 }) }),
|
|
27563
|
+
/* @__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
27564
|
"The scheduler gate did not see this dream's timestamp; the next dream cycle may re-fire sooner than usual."
|
|
26977
27565
|
) }) })
|
|
26978
27566
|
] })
|
|
@@ -27048,28 +27636,28 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27048
27636
|
const shownHistory = historyActivities.slice(
|
|
27049
27637
|
Math.max(0, historyActivities.length - historyBudget)
|
|
27050
27638
|
);
|
|
27051
|
-
return /* @__PURE__ */ (0,
|
|
27639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27052
27640
|
MaxSizedBox,
|
|
27053
27641
|
{
|
|
27054
27642
|
maxHeight,
|
|
27055
27643
|
maxWidth,
|
|
27056
27644
|
overflowDirection: "bottom",
|
|
27057
27645
|
children: [
|
|
27058
|
-
/* @__PURE__ */ (0,
|
|
27059
|
-
/* @__PURE__ */ (0,
|
|
27060
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
27061
|
-
/* @__PURE__ */ (0,
|
|
27646
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27647
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27648
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27649
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27062
27650
|
] }),
|
|
27063
|
-
parentLine !== void 0 && /* @__PURE__ */ (0,
|
|
27064
|
-
/* @__PURE__ */ (0,
|
|
27065
|
-
/* @__PURE__ */ (0,
|
|
27066
|
-
/* @__PURE__ */ (0,
|
|
27651
|
+
parentLine !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27652
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27653
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Parent") }) }),
|
|
27654
|
+
/* @__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
27655
|
] }),
|
|
27068
|
-
visibleChildAgents.length > 0 && /* @__PURE__ */ (0,
|
|
27069
|
-
/* @__PURE__ */ (0,
|
|
27070
|
-
/* @__PURE__ */ (0,
|
|
27656
|
+
visibleChildAgents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27657
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27658
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { bold: true, dimColor: true, children: [
|
|
27071
27659
|
t("Sub-agents"),
|
|
27072
|
-
/* @__PURE__ */ (0,
|
|
27660
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27073
27661
|
Text,
|
|
27074
27662
|
{
|
|
27075
27663
|
color: theme.text.secondary,
|
|
@@ -27077,14 +27665,14 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27077
27665
|
}
|
|
27078
27666
|
)
|
|
27079
27667
|
] }) }),
|
|
27080
|
-
visibleChildAgents.map((child) => /* @__PURE__ */ (0,
|
|
27668
|
+
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
27669
|
`${child.subagentType ?? "agent"} \u2014 ${child.description}`
|
|
27082
27670
|
)} \xB7 ${elapsedFor(child)}` }) }, child.agentId)),
|
|
27083
|
-
hiddenChildCount > 0 && /* @__PURE__ */ (0,
|
|
27671
|
+
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
27672
|
] }),
|
|
27085
|
-
activities.length > 0 && /* @__PURE__ */ (0,
|
|
27086
|
-
/* @__PURE__ */ (0,
|
|
27087
|
-
/* @__PURE__ */ (0,
|
|
27673
|
+
activities.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27674
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27675
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Progress") }) }),
|
|
27088
27676
|
shownHistory.map((a, i) => {
|
|
27089
27677
|
const prefix = " ";
|
|
27090
27678
|
const fullLabel = sanitizeMultilineForDisplay(
|
|
@@ -27094,7 +27682,7 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27094
27682
|
fullLabel,
|
|
27095
27683
|
Math.max(0, maxWidth - getCachedStringWidth(prefix))
|
|
27096
27684
|
);
|
|
27097
|
-
return /* @__PURE__ */ (0,
|
|
27685
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
27098
27686
|
prefix,
|
|
27099
27687
|
label
|
|
27100
27688
|
] }) }, `${a.at}-${i}`);
|
|
@@ -27106,27 +27694,27 @@ var AgentDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27106
27694
|
// Prefix and label must be ONE string child: MaxSizedBox's wrap
|
|
27107
27695
|
// layout drops the prefix's trailing space when they arrive as
|
|
27108
27696
|
// separate segments (`> Shell` → `>Shell`).
|
|
27109
|
-
/* @__PURE__ */ (0,
|
|
27697
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.primary, children: `> ${liveLabel}` }) }, "live")
|
|
27110
27698
|
] }),
|
|
27111
|
-
entry.outputFile && /* @__PURE__ */ (0,
|
|
27112
|
-
/* @__PURE__ */ (0,
|
|
27113
|
-
/* @__PURE__ */ (0,
|
|
27114
|
-
/* @__PURE__ */ (0,
|
|
27699
|
+
entry.outputFile && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27700
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27701
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Transcript") }) }),
|
|
27702
|
+
/* @__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
27703
|
] }),
|
|
27116
|
-
visiblePromptLines.length > 0 && /* @__PURE__ */ (0,
|
|
27117
|
-
/* @__PURE__ */ (0,
|
|
27118
|
-
/* @__PURE__ */ (0,
|
|
27119
|
-
visiblePromptLines.map((line, i) => /* @__PURE__ */ (0,
|
|
27704
|
+
visiblePromptLines.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27705
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27706
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Prompt") }) }),
|
|
27707
|
+
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
27708
|
] }),
|
|
27121
|
-
hasBlockedReason && /* @__PURE__ */ (0,
|
|
27122
|
-
/* @__PURE__ */ (0,
|
|
27123
|
-
/* @__PURE__ */ (0,
|
|
27124
|
-
/* @__PURE__ */ (0,
|
|
27709
|
+
hasBlockedReason && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27710
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27711
|
+
/* @__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") }) }),
|
|
27712
|
+
/* @__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
27713
|
] }),
|
|
27126
|
-
hasError && /* @__PURE__ */ (0,
|
|
27127
|
-
/* @__PURE__ */ (0,
|
|
27128
|
-
/* @__PURE__ */ (0,
|
|
27129
|
-
/* @__PURE__ */ (0,
|
|
27714
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27715
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27716
|
+
/* @__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") }) }),
|
|
27717
|
+
/* @__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
27718
|
] })
|
|
27131
27719
|
]
|
|
27132
27720
|
}
|
|
@@ -27145,28 +27733,28 @@ var ShellDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth }) =>
|
|
|
27145
27733
|
);
|
|
27146
27734
|
}
|
|
27147
27735
|
const hasError = entry.status === "failed" && Boolean(entry.error);
|
|
27148
|
-
return /* @__PURE__ */ (0,
|
|
27736
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27149
27737
|
MaxSizedBox,
|
|
27150
27738
|
{
|
|
27151
27739
|
maxHeight,
|
|
27152
27740
|
maxWidth,
|
|
27153
27741
|
overflowDirection: "bottom",
|
|
27154
27742
|
children: [
|
|
27155
|
-
/* @__PURE__ */ (0,
|
|
27156
|
-
/* @__PURE__ */ (0,
|
|
27157
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
27158
|
-
/* @__PURE__ */ (0,
|
|
27743
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27744
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27745
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27746
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27159
27747
|
] }),
|
|
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,
|
|
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("Working dir") }) }),
|
|
27750
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.cwd }) }),
|
|
27751
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27752
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Output file") }) }),
|
|
27753
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.outputFile }) }),
|
|
27754
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27755
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27756
|
+
/* @__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") }) }),
|
|
27757
|
+
/* @__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
27758
|
] })
|
|
27171
27759
|
]
|
|
27172
27760
|
}
|
|
@@ -27193,25 +27781,25 @@ var MonitorDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
27193
27781
|
const hasError = Boolean(entry.error);
|
|
27194
27782
|
const errorIsFailure = entry.status === "failed";
|
|
27195
27783
|
const errorColor = errorIsFailure ? theme.status.error : theme.status.warning;
|
|
27196
|
-
return /* @__PURE__ */ (0,
|
|
27784
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27197
27785
|
MaxSizedBox,
|
|
27198
27786
|
{
|
|
27199
27787
|
maxHeight,
|
|
27200
27788
|
maxWidth,
|
|
27201
27789
|
overflowDirection: "bottom",
|
|
27202
27790
|
children: [
|
|
27203
|
-
/* @__PURE__ */ (0,
|
|
27204
|
-
/* @__PURE__ */ (0,
|
|
27205
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
27206
|
-
/* @__PURE__ */ (0,
|
|
27791
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27792
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27793
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27794
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27207
27795
|
] }),
|
|
27208
|
-
/* @__PURE__ */ (0,
|
|
27209
|
-
/* @__PURE__ */ (0,
|
|
27210
|
-
/* @__PURE__ */ (0,
|
|
27211
|
-
hasError && /* @__PURE__ */ (0,
|
|
27212
|
-
/* @__PURE__ */ (0,
|
|
27213
|
-
/* @__PURE__ */ (0,
|
|
27214
|
-
/* @__PURE__ */ (0,
|
|
27796
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27797
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Command") }) }),
|
|
27798
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: entry.command }) }),
|
|
27799
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27800
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27801
|
+
/* @__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") }) }),
|
|
27802
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: errorColor, wrap: "wrap", children: entry.error }) })
|
|
27215
27803
|
] })
|
|
27216
27804
|
]
|
|
27217
27805
|
}
|
|
@@ -27244,33 +27832,33 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
27244
27832
|
);
|
|
27245
27833
|
const visibleLogs = entry.recentLogs.slice(-MAX_VISIBLE_LOG_LINES);
|
|
27246
27834
|
const hasError = Boolean(entry.error);
|
|
27247
|
-
return /* @__PURE__ */ (0,
|
|
27835
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27248
27836
|
MaxSizedBox,
|
|
27249
27837
|
{
|
|
27250
27838
|
maxHeight,
|
|
27251
27839
|
maxWidth,
|
|
27252
27840
|
overflowDirection: "bottom",
|
|
27253
27841
|
children: [
|
|
27254
|
-
/* @__PURE__ */ (0,
|
|
27255
|
-
/* @__PURE__ */ (0,
|
|
27256
|
-
presentation2 && /* @__PURE__ */ (0,
|
|
27257
|
-
/* @__PURE__ */ (0,
|
|
27842
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.text.accent, children: title }) }),
|
|
27843
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { children: [
|
|
27844
|
+
presentation2 && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: presentation2.color, children: `${presentation2.icon} ${statusVerb(entry.status)} \xB7 ` }),
|
|
27845
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: dimSubtitleParts.join(" \xB7 ") })
|
|
27258
27846
|
] }),
|
|
27259
|
-
entry.meta?.description && /* @__PURE__ */ (0,
|
|
27260
|
-
/* @__PURE__ */ (0,
|
|
27261
|
-
/* @__PURE__ */ (0,
|
|
27847
|
+
entry.meta?.description && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27848
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27849
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "wrap", children: entry.meta.description }) })
|
|
27262
27850
|
] }),
|
|
27263
|
-
(entry.status === "pausing" || entry.status === "paused") && /* @__PURE__ */ (0,
|
|
27264
|
-
/* @__PURE__ */ (0,
|
|
27265
|
-
/* @__PURE__ */ (0,
|
|
27851
|
+
(entry.status === "pausing" || entry.status === "paused") && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27852
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27853
|
+
/* @__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
27854
|
"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
27855
|
) : t(
|
|
27268
27856
|
"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
27857
|
) }) })
|
|
27270
27858
|
] }),
|
|
27271
|
-
entry.sizeWarning && /* @__PURE__ */ (0,
|
|
27272
|
-
/* @__PURE__ */ (0,
|
|
27273
|
-
/* @__PURE__ */ (0,
|
|
27859
|
+
entry.sizeWarning && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27860
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27861
|
+
/* @__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
27862
|
"Large workflow: {{agents}} agents scheduled (warning threshold {{cap}}).",
|
|
27275
27863
|
{
|
|
27276
27864
|
agents: String(entry.sizeWarning.scheduledAgents),
|
|
@@ -27286,31 +27874,31 @@ var WorkflowDetailBody = /* @__PURE__ */ __name(({ entry, maxHeight, maxWidth })
|
|
|
27286
27874
|
}
|
|
27287
27875
|
)}` }) })
|
|
27288
27876
|
] }),
|
|
27289
|
-
/* @__PURE__ */ (0,
|
|
27290
|
-
/* @__PURE__ */ (0,
|
|
27291
|
-
entry.phases.length === 0 ? /* @__PURE__ */ (0,
|
|
27292
|
-
phaseOverflow > 0 && /* @__PURE__ */ (0,
|
|
27877
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27878
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Phases") }) }),
|
|
27879
|
+
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: [
|
|
27880
|
+
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
27881
|
visiblePhases.map((phaseTitle, i) => {
|
|
27294
27882
|
const isCurrent = isActiveWorkflowStatus(entry.status) && i === visiblePhases.length - 1 && entry.currentPhase === phaseTitle;
|
|
27295
27883
|
const marker = isCurrent ? "\u25B8" : "\xB7";
|
|
27296
27884
|
const phaseTokens = entry.perPhaseTokens.get(phaseTitle) ?? 0;
|
|
27297
27885
|
const tokenChip = phaseTokens > 0 ? ` \xB7 ${formatTokenCount(phaseTokens)}t` : "";
|
|
27298
|
-
return /* @__PURE__ */ (0,
|
|
27886
|
+
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
27887
|
}),
|
|
27300
|
-
(entry.perPhaseTokens.get(null) ?? 0) > 0 && /* @__PURE__ */ (0,
|
|
27888
|
+
(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
27889
|
entry.perPhaseTokens.get(null) ?? 0
|
|
27302
27890
|
)}t` }) })
|
|
27303
27891
|
] }),
|
|
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,
|
|
27892
|
+
entry.recentLogs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27893
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27894
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, dimColor: true, children: t("Logs") }) }),
|
|
27895
|
+
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")}` }) }),
|
|
27896
|
+
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
27897
|
] }),
|
|
27310
|
-
hasError && /* @__PURE__ */ (0,
|
|
27311
|
-
/* @__PURE__ */ (0,
|
|
27312
|
-
/* @__PURE__ */ (0,
|
|
27313
|
-
/* @__PURE__ */ (0,
|
|
27898
|
+
hasError && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(import_react87.Fragment, { children: [
|
|
27899
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Box_default, {}),
|
|
27900
|
+
/* @__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") }) }),
|
|
27901
|
+
/* @__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
27902
|
] })
|
|
27315
27903
|
]
|
|
27316
27904
|
}
|
|
@@ -27326,6 +27914,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27326
27914
|
moveSelectionUp,
|
|
27327
27915
|
moveSelectionDown,
|
|
27328
27916
|
closeDialog,
|
|
27917
|
+
openDialog,
|
|
27329
27918
|
enterDetail,
|
|
27330
27919
|
exitDetail,
|
|
27331
27920
|
cancelSelected,
|
|
@@ -27334,6 +27923,16 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27334
27923
|
setSelectedIndex
|
|
27335
27924
|
} = useBackgroundTaskViewActions();
|
|
27336
27925
|
const config = useConfig();
|
|
27926
|
+
const hasAgents = entries.some((entry) => entry.kind === "agent");
|
|
27927
|
+
const [agentTab, setAgentTab] = (0, import_react87.useState)("summary");
|
|
27928
|
+
const [agentScrollOffset, setAgentScrollOffset] = (0, import_react87.useState)(0);
|
|
27929
|
+
const [reviewingApproval, setReviewingApproval] = (0, import_react87.useState)(
|
|
27930
|
+
null
|
|
27931
|
+
);
|
|
27932
|
+
const agentLayout = getAgentDashboardLayout(
|
|
27933
|
+
terminalWidth,
|
|
27934
|
+
availableTerminalHeight
|
|
27935
|
+
);
|
|
27337
27936
|
const detailContentHeight = Math.max(10, availableTerminalHeight - 6);
|
|
27338
27937
|
const detailContentWidth = Math.max(10, terminalWidth - 4);
|
|
27339
27938
|
const listMaxRows = Math.max(3, availableTerminalHeight - 10);
|
|
@@ -27372,6 +27971,12 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27372
27971
|
return fromSnapshot;
|
|
27373
27972
|
}, [entries, selectedIndex, config, activityTick]);
|
|
27374
27973
|
const selectedEntryId = selectedEntry ? entryId(selectedEntry) : void 0;
|
|
27974
|
+
(0, import_react87.useEffect)(() => {
|
|
27975
|
+
setAgentScrollOffset(0);
|
|
27976
|
+
}, [selectedEntryId, agentTab, dialogOpen]);
|
|
27977
|
+
(0, import_react87.useEffect)(() => {
|
|
27978
|
+
setReviewingApproval(null);
|
|
27979
|
+
}, [selectedEntryId, dialogOpen]);
|
|
27375
27980
|
const selectedAgentIdForActivity = selectedEntry?.kind === "agent" ? selectedEntry.agentId : void 0;
|
|
27376
27981
|
const selectedApproval = selectedEntry?.kind === "agent" && selectedEntry.pendingApprovals?.[0] ? {
|
|
27377
27982
|
kind: "agent",
|
|
@@ -27382,7 +27987,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27382
27987
|
approval: selectedEntry.pendingApprovals[0],
|
|
27383
27988
|
ownerId: selectedEntry.runId
|
|
27384
27989
|
} : void 0;
|
|
27385
|
-
const
|
|
27990
|
+
const agentApprovalKey = selectedApproval?.kind === "agent" ? JSON.stringify([
|
|
27991
|
+
selectedApproval.ownerId,
|
|
27992
|
+
selectedApproval.approval.callId,
|
|
27993
|
+
selectedApproval.approval.subagentId,
|
|
27994
|
+
selectedApproval.approval.at
|
|
27995
|
+
]) : void 0;
|
|
27996
|
+
const approvalActive = Boolean(selectedApproval) && (selectedApproval?.kind === "agent" ? reviewingApproval === agentApprovalKey : isDetailMode);
|
|
27386
27997
|
const approvalUsesQuestionDialog = selectedApproval?.approval.confirmationDetails.type === "ask_user_question";
|
|
27387
27998
|
const approvalConfirmationDetails = selectedApproval ? (
|
|
27388
27999
|
// The spread restores every field except `onConfirm`; the cast is
|
|
@@ -27412,7 +28023,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27412
28023
|
}
|
|
27413
28024
|
) : void 0;
|
|
27414
28025
|
(0, import_react87.useEffect)(() => {
|
|
27415
|
-
if (!dialogOpen || !isDetailMode || !selectedAgentIdForActivity)
|
|
28026
|
+
if (!dialogOpen || !isDetailMode && !agentLayout.split || !selectedAgentIdForActivity)
|
|
28027
|
+
return;
|
|
27416
28028
|
const registry = config.getBackgroundTaskRegistry();
|
|
27417
28029
|
const onActivity = /* @__PURE__ */ __name((entry) => {
|
|
27418
28030
|
if (entry.agentId !== selectedAgentIdForActivity) return;
|
|
@@ -27425,12 +28037,13 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27425
28037
|
dialogMode,
|
|
27426
28038
|
isDetailMode,
|
|
27427
28039
|
config,
|
|
27428
|
-
selectedAgentIdForActivity
|
|
28040
|
+
selectedAgentIdForActivity,
|
|
28041
|
+
agentLayout.split
|
|
27429
28042
|
]);
|
|
27430
28043
|
const selectedStatus = selectedEntry?.status;
|
|
27431
28044
|
const selectedShouldTick = selectedEntry?.kind === "workflow" ? isActiveWorkflowStatus(selectedEntry.status) : selectedStatus === "running";
|
|
27432
28045
|
(0, import_react87.useEffect)(() => {
|
|
27433
|
-
if (!dialogOpen || !isDetailMode || !selectedEntryId || !selectedShouldTick)
|
|
28046
|
+
if (!dialogOpen || !isDetailMode && !agentLayout.split || !selectedEntryId || !selectedShouldTick)
|
|
27434
28047
|
return;
|
|
27435
28048
|
const id = setInterval(() => setActivityTick((n) => n + 1), 1e3);
|
|
27436
28049
|
return () => clearInterval(id);
|
|
@@ -27439,7 +28052,8 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27439
28052
|
dialogMode,
|
|
27440
28053
|
isDetailMode,
|
|
27441
28054
|
selectedEntryId,
|
|
27442
|
-
selectedShouldTick
|
|
28055
|
+
selectedShouldTick,
|
|
28056
|
+
agentLayout.split
|
|
27443
28057
|
]);
|
|
27444
28058
|
const initialDetailStatusRef = (0, import_react87.useRef)(null);
|
|
27445
28059
|
(0, import_react87.useEffect)(() => {
|
|
@@ -27512,6 +28126,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27512
28126
|
if (saveActive) return;
|
|
27513
28127
|
if (approvalActive && !approvalUsesQuestionDialog) {
|
|
27514
28128
|
if (key.name === "left") {
|
|
28129
|
+
setReviewingApproval(null);
|
|
27515
28130
|
exitDetail();
|
|
27516
28131
|
return;
|
|
27517
28132
|
}
|
|
@@ -27524,6 +28139,57 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27524
28139
|
if (approvalActive && approvalUsesQuestionDialog) {
|
|
27525
28140
|
return;
|
|
27526
28141
|
}
|
|
28142
|
+
if (hasAgents && (dialogMode === "list" || selectedEntry?.kind === "agent")) {
|
|
28143
|
+
if ((key.name === "left" || key.name === "right" || key.name === "tab") && !key.ctrl && !key.meta) {
|
|
28144
|
+
if (selectedEntry?.kind === "agent") {
|
|
28145
|
+
setAgentTab(
|
|
28146
|
+
(tab) => nextAgentDashboardTab(
|
|
28147
|
+
tab,
|
|
28148
|
+
key.name === "left" || key.shift ? -1 : 1
|
|
28149
|
+
)
|
|
28150
|
+
);
|
|
28151
|
+
}
|
|
28152
|
+
return;
|
|
28153
|
+
}
|
|
28154
|
+
if (key.sequence === "a" && !key.ctrl && !key.meta && selectedApproval?.kind === "agent") {
|
|
28155
|
+
if (isDetailMode || agentLayout.split)
|
|
28156
|
+
setReviewingApproval(agentApprovalKey ?? null);
|
|
28157
|
+
return;
|
|
28158
|
+
}
|
|
28159
|
+
if (isDetailMode && selectedEntry?.kind === "agent") {
|
|
28160
|
+
if (key.name === "escape") {
|
|
28161
|
+
if (pendingCancelEntryId) setPendingCancelEntryId(null);
|
|
28162
|
+
else {
|
|
28163
|
+
setReviewingApproval(null);
|
|
28164
|
+
if (dialogMode === "detail-from-panel") openDialog();
|
|
28165
|
+
else exitDetail();
|
|
28166
|
+
}
|
|
28167
|
+
return;
|
|
28168
|
+
}
|
|
28169
|
+
if (key.name === "return" || key.name === "space") return;
|
|
28170
|
+
const up = keyMatchers["selectionUp" /* SELECTION_UP */](key);
|
|
28171
|
+
const down = keyMatchers["selectionDown" /* SELECTION_DOWN */](key);
|
|
28172
|
+
const pageUp = key.name === "pageup";
|
|
28173
|
+
const pageDown = key.name === "pagedown";
|
|
28174
|
+
if (up || down || pageUp || pageDown) {
|
|
28175
|
+
const maxOffset = Math.max(
|
|
28176
|
+
0,
|
|
28177
|
+
getAgentDashboardLines(
|
|
28178
|
+
selectedEntry,
|
|
28179
|
+
agentTab,
|
|
28180
|
+
agentLayout.detailWidth,
|
|
28181
|
+
entries
|
|
28182
|
+
).length - agentLayout.pageSize
|
|
28183
|
+
);
|
|
28184
|
+
const direction = up || pageUp ? -1 : 1;
|
|
28185
|
+
const step = pageUp || pageDown ? agentLayout.pageSize : 1;
|
|
28186
|
+
setAgentScrollOffset(
|
|
28187
|
+
(offset) => Math.max(0, Math.min(maxOffset, offset + direction * step))
|
|
28188
|
+
);
|
|
28189
|
+
return;
|
|
28190
|
+
}
|
|
28191
|
+
}
|
|
28192
|
+
}
|
|
27527
28193
|
if (dialogMode === "list") {
|
|
27528
28194
|
if (keyMatchers["selectionUp" /* SELECTION_UP */](key)) {
|
|
27529
28195
|
moveSelectionUp();
|
|
@@ -27633,7 +28299,95 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27633
28299
|
}
|
|
27634
28300
|
if (workflowSaveTarget) hints.push("s save");
|
|
27635
28301
|
}
|
|
27636
|
-
|
|
28302
|
+
if (approvalActive && selectedApproval?.kind === "agent" && approvalConfirmationDetails && selectedEntry?.kind === "agent") {
|
|
28303
|
+
const nestedOwner = selectedApproval.approval.subagentId;
|
|
28304
|
+
const headingRows = nestedOwner ? 3 : 2;
|
|
28305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
28306
|
+
Box_default,
|
|
28307
|
+
{
|
|
28308
|
+
flexDirection: "column",
|
|
28309
|
+
width: terminalWidth,
|
|
28310
|
+
height: availableTerminalHeight,
|
|
28311
|
+
flexShrink: 0,
|
|
28312
|
+
children: [
|
|
28313
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
28314
|
+
Box_default,
|
|
28315
|
+
{
|
|
28316
|
+
flexDirection: "column",
|
|
28317
|
+
width: terminalWidth,
|
|
28318
|
+
height: Math.max(1, availableTerminalHeight - 1),
|
|
28319
|
+
borderStyle: glyphs().borderStyle,
|
|
28320
|
+
borderColor: theme.status.warning,
|
|
28321
|
+
paddingX: 1,
|
|
28322
|
+
flexShrink: 0,
|
|
28323
|
+
children: [
|
|
28324
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { bold: true, color: theme.status.warning, wrap: "truncate-end", children: t("Background agent needs approval") }),
|
|
28325
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { wrap: "truncate-end", children: dashboardSingleLine(
|
|
28326
|
+
selectedEntry.description,
|
|
28327
|
+
Math.max(1, terminalWidth - 4)
|
|
28328
|
+
) }),
|
|
28329
|
+
nestedOwner && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
|
|
28330
|
+
t("from nested agent"),
|
|
28331
|
+
":",
|
|
28332
|
+
" ",
|
|
28333
|
+
dashboardSingleLine(nestedOwner, Math.max(1, terminalWidth - 4))
|
|
28334
|
+
] }),
|
|
28335
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
28336
|
+
ToolConfirmationMessage,
|
|
28337
|
+
{
|
|
28338
|
+
confirmationDetails: approvalConfirmationDetails,
|
|
28339
|
+
config,
|
|
28340
|
+
isFocused: true,
|
|
28341
|
+
contentWidth: Math.max(1, terminalWidth - 4),
|
|
28342
|
+
availableTerminalHeight: Math.max(
|
|
28343
|
+
1,
|
|
28344
|
+
availableTerminalHeight - headingRows - 3
|
|
28345
|
+
),
|
|
28346
|
+
compactMode: true
|
|
28347
|
+
}
|
|
28348
|
+
)
|
|
28349
|
+
]
|
|
28350
|
+
}
|
|
28351
|
+
),
|
|
28352
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: showCancelConfirmHint ? t(
|
|
28353
|
+
"Press x again to stop; this ends the blocking turn. Esc cancels."
|
|
28354
|
+
) : approvalUsesQuestionDialog ? t("Approve or deny the request above") : t("\u2190 back \xB7 x stop") })
|
|
28355
|
+
]
|
|
28356
|
+
}
|
|
28357
|
+
);
|
|
28358
|
+
}
|
|
28359
|
+
if (hasAgents && (dialogMode === "list" || selectedEntry?.kind === "agent") && !approvalActive && !saveActive) {
|
|
28360
|
+
const actionHints = [];
|
|
28361
|
+
if (selectedEntry?.kind === "agent" && selectedEntry.pendingApprovals?.length)
|
|
28362
|
+
actionHints.push(t("a review approval"));
|
|
28363
|
+
if (selectedEntry && isStoppableEntry(selectedEntry))
|
|
28364
|
+
actionHints.push(t("x stop"));
|
|
28365
|
+
if (selectedEntryAllowsResume) actionHints.push(t("r resume"));
|
|
28366
|
+
if (selectedEntry?.kind === "agent" && selectedEntry.status === "paused")
|
|
28367
|
+
actionHints.push(t("x abandon"));
|
|
28368
|
+
if (selectedWorkflowPauseHint) actionHints.push(selectedWorkflowPauseHint);
|
|
28369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
28370
|
+
AgentDashboard,
|
|
28371
|
+
{
|
|
28372
|
+
entries,
|
|
28373
|
+
selectedEntry,
|
|
28374
|
+
selectedIndex,
|
|
28375
|
+
detailFocused: isDetailMode,
|
|
28376
|
+
tab: agentTab,
|
|
28377
|
+
scrollOffset: agentScrollOffset,
|
|
28378
|
+
width: terminalWidth,
|
|
28379
|
+
height: availableTerminalHeight,
|
|
28380
|
+
actionHints,
|
|
28381
|
+
footerMessage: showCancelConfirmHint ? t(
|
|
28382
|
+
"Press x again to stop; this ends the blocking turn. Esc cancels."
|
|
28383
|
+
) : pauseRejected?.entryKey === selectedEntryKey ? t(
|
|
28384
|
+
"Pause/resume was rejected; the workflow state changed. Try again."
|
|
28385
|
+
) : void 0,
|
|
28386
|
+
renderOtherDetail: (entry, height, width) => /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(DetailBody, { entry, maxHeight: height, maxWidth: width })
|
|
28387
|
+
}
|
|
28388
|
+
);
|
|
28389
|
+
}
|
|
28390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
|
|
27637
28391
|
Box_default,
|
|
27638
28392
|
{
|
|
27639
28393
|
flexDirection: "column",
|
|
@@ -27642,32 +28396,32 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27642
28396
|
marginTop: 1,
|
|
27643
28397
|
paddingX: 1,
|
|
27644
28398
|
children: [
|
|
27645
|
-
dialogMode === "list" && /* @__PURE__ */ (0,
|
|
27646
|
-
/* @__PURE__ */ (0,
|
|
27647
|
-
dialogMode === "list" ? /* @__PURE__ */ (0,
|
|
28399
|
+
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") }) }),
|
|
28400
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { marginTop: dialogMode === "list" ? 1 : 0, flexDirection: "column", children: [
|
|
28401
|
+
dialogMode === "list" ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27648
28402
|
ListBody,
|
|
27649
28403
|
{
|
|
27650
28404
|
entries,
|
|
27651
28405
|
selectedIndex,
|
|
27652
28406
|
maxRows: listMaxRows
|
|
27653
28407
|
}
|
|
27654
|
-
) : selectedEntry ? /* @__PURE__ */ (0,
|
|
28408
|
+
) : selectedEntry ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27655
28409
|
DetailBody,
|
|
27656
28410
|
{
|
|
27657
28411
|
entry: selectedEntry,
|
|
27658
28412
|
maxHeight: approvalActive ? Math.max(6, Math.floor(detailContentHeight / 2)) : detailContentHeight,
|
|
27659
28413
|
maxWidth: detailContentWidth
|
|
27660
28414
|
}
|
|
27661
|
-
) : /* @__PURE__ */ (0,
|
|
27662
|
-
approvalActive && approvalConfirmationDetails && /* @__PURE__ */ (0,
|
|
27663
|
-
/* @__PURE__ */ (0,
|
|
27664
|
-
selectedApproval?.kind === "agent" && selectedApproval.approval.subagentId !== void 0 && /* @__PURE__ */ (0,
|
|
28415
|
+
) : /* @__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.") }) }),
|
|
28416
|
+
approvalActive && approvalConfirmationDetails && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, paddingX: 1, children: [
|
|
28417
|
+
/* @__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") }),
|
|
28418
|
+
selectedApproval?.kind === "agent" && selectedApproval.approval.subagentId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
27665
28419
|
t("from nested agent"),
|
|
27666
28420
|
":",
|
|
27667
28421
|
" ",
|
|
27668
28422
|
selectedApproval.approval.subagentId
|
|
27669
28423
|
] }),
|
|
27670
|
-
/* @__PURE__ */ (0,
|
|
28424
|
+
/* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27671
28425
|
ToolConfirmationMessage,
|
|
27672
28426
|
{
|
|
27673
28427
|
confirmationDetails: approvalConfirmationDetails,
|
|
@@ -27683,7 +28437,7 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27683
28437
|
)
|
|
27684
28438
|
] })
|
|
27685
28439
|
] }),
|
|
27686
|
-
saveActive && workflowSaveTarget && config ? /* @__PURE__ */ (0,
|
|
28440
|
+
saveActive && workflowSaveTarget && config ? /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
27687
28441
|
WorkflowSaveOverlay,
|
|
27688
28442
|
{
|
|
27689
28443
|
script: workflowSaveTarget.script,
|
|
@@ -27692,16 +28446,16 @@ var BackgroundTasksDialog = /* @__PURE__ */ __name(({
|
|
|
27692
28446
|
isActive: saveActive,
|
|
27693
28447
|
onClose: () => setSaveActive(false)
|
|
27694
28448
|
}
|
|
27695
|
-
) : /* @__PURE__ */ (0,
|
|
28449
|
+
) : /* @__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
28450
|
"Pause/resume was rejected; the workflow state changed. Try again."
|
|
27697
|
-
) }) : /* @__PURE__ */ (0,
|
|
28451
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(Text, { color: theme.text.secondary, children: hints.join(" \xB7 ") }) })
|
|
27698
28452
|
]
|
|
27699
28453
|
}
|
|
27700
28454
|
);
|
|
27701
28455
|
}, "BackgroundTasksDialog");
|
|
27702
28456
|
|
|
27703
28457
|
// packages/cli/src/ui/components/DialogManager.tsx
|
|
27704
|
-
var
|
|
28458
|
+
var import_jsx_runtime111 = __toESM(require_jsx_runtime(), 1);
|
|
27705
28459
|
var DialogManager = /* @__PURE__ */ __name(({
|
|
27706
28460
|
addItem,
|
|
27707
28461
|
terminalWidth
|
|
@@ -27720,7 +28474,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27720
28474
|
const constrainedDialogHeight = constrainHeight ? dialogMaxHeight : void 0;
|
|
27721
28475
|
const listDialogHeight = dialogMaxHeight;
|
|
27722
28476
|
if (uiState.showWelcomeBackDialog && uiState.welcomeBackInfo?.hasHistory) {
|
|
27723
|
-
return /* @__PURE__ */ (0,
|
|
28477
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27724
28478
|
WelcomeBackDialog,
|
|
27725
28479
|
{
|
|
27726
28480
|
welcomeBackInfo: uiState.welcomeBackInfo,
|
|
@@ -27730,7 +28484,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27730
28484
|
);
|
|
27731
28485
|
}
|
|
27732
28486
|
if (uiState.showWorktreeExitDialog && uiState.activeWorktree) {
|
|
27733
|
-
return /* @__PURE__ */ (0,
|
|
28487
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27734
28488
|
WorktreeExitDialog,
|
|
27735
28489
|
{
|
|
27736
28490
|
slug: uiState.activeWorktree.slug,
|
|
@@ -27744,10 +28498,10 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27744
28498
|
);
|
|
27745
28499
|
}
|
|
27746
28500
|
if (uiState.showIdeRestartPrompt) {
|
|
27747
|
-
return /* @__PURE__ */ (0,
|
|
28501
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(IdeTrustChangeDialog, { reason: uiState.ideTrustRestartReason });
|
|
27748
28502
|
}
|
|
27749
28503
|
if (uiState.shouldShowIdePrompt) {
|
|
27750
|
-
return /* @__PURE__ */ (0,
|
|
28504
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27751
28505
|
IdeIntegrationNudge,
|
|
27752
28506
|
{
|
|
27753
28507
|
ide: uiState.currentIDE,
|
|
@@ -27756,7 +28510,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27756
28510
|
);
|
|
27757
28511
|
}
|
|
27758
28512
|
if (uiState.shouldShowCommandMigrationNudge) {
|
|
27759
|
-
return /* @__PURE__ */ (0,
|
|
28513
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27760
28514
|
CommandFormatMigrationNudge,
|
|
27761
28515
|
{
|
|
27762
28516
|
tomlFiles: uiState.commandMigrationTomlFiles,
|
|
@@ -27765,7 +28519,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27765
28519
|
);
|
|
27766
28520
|
}
|
|
27767
28521
|
if (uiState.isFolderTrustDialogOpen) {
|
|
27768
|
-
return /* @__PURE__ */ (0,
|
|
28522
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27769
28523
|
FolderTrustDialog,
|
|
27770
28524
|
{
|
|
27771
28525
|
onSelect: uiActions.handleFolderTrustSelect,
|
|
@@ -27774,7 +28528,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27774
28528
|
);
|
|
27775
28529
|
}
|
|
27776
28530
|
if (uiState.isMcpApprovalDialogOpen && uiState.currentMcpApproval) {
|
|
27777
|
-
return /* @__PURE__ */ (0,
|
|
28531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27778
28532
|
MCPServerApprovalDialog,
|
|
27779
28533
|
{
|
|
27780
28534
|
serverName: uiState.currentMcpApproval.name,
|
|
@@ -27787,7 +28541,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27787
28541
|
);
|
|
27788
28542
|
}
|
|
27789
28543
|
if (uiState.shellConfirmationRequest) {
|
|
27790
|
-
return /* @__PURE__ */ (0,
|
|
28544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27791
28545
|
ShellConfirmationDialog,
|
|
27792
28546
|
{
|
|
27793
28547
|
request: uiState.shellConfirmationRequest,
|
|
@@ -27797,7 +28551,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27797
28551
|
);
|
|
27798
28552
|
}
|
|
27799
28553
|
if (uiState.loopDetectionConfirmationRequest) {
|
|
27800
|
-
return /* @__PURE__ */ (0,
|
|
28554
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27801
28555
|
LoopDetectionConfirmation,
|
|
27802
28556
|
{
|
|
27803
28557
|
onComplete: uiState.loopDetectionConfirmationRequest.onComplete
|
|
@@ -27805,7 +28559,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27805
28559
|
);
|
|
27806
28560
|
}
|
|
27807
28561
|
if (uiState.confirmationRequest) {
|
|
27808
|
-
return /* @__PURE__ */ (0,
|
|
28562
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27809
28563
|
ConsentPrompt,
|
|
27810
28564
|
{
|
|
27811
28565
|
prompt: uiState.confirmationRequest.prompt,
|
|
@@ -27817,7 +28571,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27817
28571
|
}
|
|
27818
28572
|
if (uiState.confirmUpdateExtensionRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
|
|
27819
28573
|
const request = uiState.confirmUpdateExtensionRequests[0];
|
|
27820
|
-
return /* @__PURE__ */ (0,
|
|
28574
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27821
28575
|
ConsentPrompt,
|
|
27822
28576
|
{
|
|
27823
28577
|
prompt: request.prompt,
|
|
@@ -27828,7 +28582,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27828
28582
|
);
|
|
27829
28583
|
}
|
|
27830
28584
|
if (uiState.providerUpdateRequest) {
|
|
27831
|
-
return /* @__PURE__ */ (0,
|
|
28585
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27832
28586
|
ProviderUpdatePrompt,
|
|
27833
28587
|
{
|
|
27834
28588
|
entries: uiState.providerUpdateRequest.entries,
|
|
@@ -27838,7 +28592,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27838
28592
|
}
|
|
27839
28593
|
if (uiState.settingInputRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
|
|
27840
28594
|
const request = uiState.settingInputRequests[0];
|
|
27841
|
-
return /* @__PURE__ */ (0,
|
|
28595
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27842
28596
|
SettingInputPrompt,
|
|
27843
28597
|
{
|
|
27844
28598
|
settingName: request.settingName,
|
|
@@ -27853,7 +28607,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27853
28607
|
}
|
|
27854
28608
|
if (uiState.pluginChoiceRequests.length > 0 && !uiState.isExtensionsManagerDialogOpen) {
|
|
27855
28609
|
const request = uiState.pluginChoiceRequests[0];
|
|
27856
|
-
return /* @__PURE__ */ (0,
|
|
28610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27857
28611
|
PluginChoicePrompt,
|
|
27858
28612
|
{
|
|
27859
28613
|
marketplaceName: request.marketplaceName,
|
|
@@ -27867,9 +28621,9 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27867
28621
|
);
|
|
27868
28622
|
}
|
|
27869
28623
|
if (uiState.isThemeDialogOpen) {
|
|
27870
|
-
return /* @__PURE__ */ (0,
|
|
27871
|
-
uiState.themeError && /* @__PURE__ */ (0,
|
|
27872
|
-
/* @__PURE__ */ (0,
|
|
28624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
28625
|
+
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 }) }),
|
|
28626
|
+
/* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27873
28627
|
ThemeDialog,
|
|
27874
28628
|
{
|
|
27875
28629
|
onSelect: uiActions.handleThemeSelect,
|
|
@@ -27882,9 +28636,9 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27882
28636
|
] });
|
|
27883
28637
|
}
|
|
27884
28638
|
if (uiState.isEditorDialogOpen) {
|
|
27885
|
-
return /* @__PURE__ */ (0,
|
|
27886
|
-
uiState.editorError && /* @__PURE__ */ (0,
|
|
27887
|
-
/* @__PURE__ */ (0,
|
|
28639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
28640
|
+
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 }) }),
|
|
28641
|
+
/* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27888
28642
|
EditorSettingsDialog,
|
|
27889
28643
|
{
|
|
27890
28644
|
onSelect: uiActions.handleEditorSelect,
|
|
@@ -27895,7 +28649,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27895
28649
|
] });
|
|
27896
28650
|
}
|
|
27897
28651
|
if (uiState.isModelDialogOpen) {
|
|
27898
|
-
return /* @__PURE__ */ (0,
|
|
28652
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27899
28653
|
ModelDialog,
|
|
27900
28654
|
{
|
|
27901
28655
|
onClose: uiActions.closeModelDialog,
|
|
@@ -27910,7 +28664,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27910
28664
|
);
|
|
27911
28665
|
}
|
|
27912
28666
|
if (uiState.isSettingsDialogOpen) {
|
|
27913
|
-
return /* @__PURE__ */ (0,
|
|
28667
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27914
28668
|
SettingsDialog,
|
|
27915
28669
|
{
|
|
27916
28670
|
settings,
|
|
@@ -27941,7 +28695,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27941
28695
|
) });
|
|
27942
28696
|
}
|
|
27943
28697
|
if (uiState.isStatusLineDialogOpen) {
|
|
27944
|
-
return /* @__PURE__ */ (0,
|
|
28698
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27945
28699
|
StatusLineDialog,
|
|
27946
28700
|
{
|
|
27947
28701
|
settings,
|
|
@@ -27955,10 +28709,10 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27955
28709
|
);
|
|
27956
28710
|
}
|
|
27957
28711
|
if (uiState.isMemoryDialogOpen) {
|
|
27958
|
-
return /* @__PURE__ */ (0,
|
|
28712
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(MemoryDialog, { onClose: uiActions.closeMemoryDialog });
|
|
27959
28713
|
}
|
|
27960
28714
|
if (uiState.isHelpDialogOpen) {
|
|
27961
|
-
return /* @__PURE__ */ (0,
|
|
28715
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27962
28716
|
Help,
|
|
27963
28717
|
{
|
|
27964
28718
|
commands: uiState.slashCommands,
|
|
@@ -27972,7 +28726,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27972
28726
|
}
|
|
27973
28727
|
if (uiState.isApprovalModeDialogOpen) {
|
|
27974
28728
|
const currentMode = config.getApprovalMode();
|
|
27975
|
-
return /* @__PURE__ */ (0,
|
|
28729
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27976
28730
|
ApprovalModeDialog,
|
|
27977
28731
|
{
|
|
27978
28732
|
settings,
|
|
@@ -27983,7 +28737,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27983
28737
|
) });
|
|
27984
28738
|
}
|
|
27985
28739
|
if (uiState.isEffortDialogOpen) {
|
|
27986
|
-
return /* @__PURE__ */ (0,
|
|
28740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27987
28741
|
EffortDialog,
|
|
27988
28742
|
{
|
|
27989
28743
|
currentEffort: config.getReasoningEffort(),
|
|
@@ -27993,7 +28747,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
27993
28747
|
) });
|
|
27994
28748
|
}
|
|
27995
28749
|
if (uiState.isOutputStyleDialogOpen) {
|
|
27996
|
-
return /* @__PURE__ */ (0,
|
|
28750
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
27997
28751
|
OutputStyleDialog,
|
|
27998
28752
|
{
|
|
27999
28753
|
currentStyleName: config.getOutputStyle()?.name,
|
|
@@ -28003,7 +28757,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28003
28757
|
) });
|
|
28004
28758
|
}
|
|
28005
28759
|
if (uiState.activeArenaDialog === "start") {
|
|
28006
|
-
return /* @__PURE__ */ (0,
|
|
28760
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28007
28761
|
ArenaStartDialog,
|
|
28008
28762
|
{
|
|
28009
28763
|
onClose: () => uiActions.closeArenaDialog(),
|
|
@@ -28014,7 +28768,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28014
28768
|
if (uiState.activeArenaDialog === "status") {
|
|
28015
28769
|
const arenaManager = config.getArenaManager();
|
|
28016
28770
|
if (arenaManager) {
|
|
28017
|
-
return /* @__PURE__ */ (0,
|
|
28771
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28018
28772
|
ArenaStatusDialog,
|
|
28019
28773
|
{
|
|
28020
28774
|
manager: arenaManager,
|
|
@@ -28025,7 +28779,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28025
28779
|
}
|
|
28026
28780
|
}
|
|
28027
28781
|
if (uiState.activeArenaDialog === "stop") {
|
|
28028
|
-
return /* @__PURE__ */ (0,
|
|
28782
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28029
28783
|
ArenaStopDialog,
|
|
28030
28784
|
{
|
|
28031
28785
|
config,
|
|
@@ -28037,7 +28791,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28037
28791
|
if (uiState.activeArenaDialog === "select") {
|
|
28038
28792
|
const arenaManager = config.getArenaManager();
|
|
28039
28793
|
if (arenaManager) {
|
|
28040
|
-
return /* @__PURE__ */ (0,
|
|
28794
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28041
28795
|
ArenaSelectDialog,
|
|
28042
28796
|
{
|
|
28043
28797
|
manager: arenaManager,
|
|
@@ -28049,11 +28803,11 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28049
28803
|
}
|
|
28050
28804
|
}
|
|
28051
28805
|
if (uiState.auth.isAuthDialogOpen || uiState.auth.authError) {
|
|
28052
|
-
return /* @__PURE__ */ (0,
|
|
28806
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(Box_default, { flexDirection: "column", children: /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(AuthDialog, {}) });
|
|
28053
28807
|
}
|
|
28054
28808
|
if (uiState.auth.isAuthenticating) {
|
|
28055
28809
|
if (uiState.auth.pendingAuthType === "openai" /* USE_OPENAI */ && uiState.auth.externalAuthState) {
|
|
28056
|
-
return /* @__PURE__ */ (0,
|
|
28810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28057
28811
|
ExternalAuthProgress,
|
|
28058
28812
|
{
|
|
28059
28813
|
title: uiState.auth.externalAuthState.title,
|
|
@@ -28068,13 +28822,13 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28068
28822
|
}
|
|
28069
28823
|
}
|
|
28070
28824
|
if (uiState.isTrustDialogOpen) {
|
|
28071
|
-
return /* @__PURE__ */ (0,
|
|
28825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(TrustDialog, { onExit: uiActions.closeTrustDialog, addItem });
|
|
28072
28826
|
}
|
|
28073
28827
|
if (uiState.isPermissionsDialogOpen) {
|
|
28074
|
-
return /* @__PURE__ */ (0,
|
|
28828
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(PermissionsDialog, { onExit: uiActions.closePermissionsDialog });
|
|
28075
28829
|
}
|
|
28076
28830
|
if (uiState.isSubagentCreateDialogOpen) {
|
|
28077
|
-
return /* @__PURE__ */ (0,
|
|
28831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28078
28832
|
AgentCreationWizard,
|
|
28079
28833
|
{
|
|
28080
28834
|
onClose: uiActions.closeSubagentCreateDialog,
|
|
@@ -28083,7 +28837,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28083
28837
|
);
|
|
28084
28838
|
}
|
|
28085
28839
|
if (uiState.isAgentsManagerDialogOpen) {
|
|
28086
|
-
return /* @__PURE__ */ (0,
|
|
28840
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28087
28841
|
AgentsManagerDialog,
|
|
28088
28842
|
{
|
|
28089
28843
|
onClose: uiActions.closeAgentsManagerDialog,
|
|
@@ -28092,7 +28846,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28092
28846
|
);
|
|
28093
28847
|
}
|
|
28094
28848
|
if (uiState.isSkillsManagerDialogOpen) {
|
|
28095
|
-
return /* @__PURE__ */ (0,
|
|
28849
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28096
28850
|
SkillsManagerDialog,
|
|
28097
28851
|
{
|
|
28098
28852
|
settings,
|
|
@@ -28106,7 +28860,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28106
28860
|
);
|
|
28107
28861
|
}
|
|
28108
28862
|
if (uiState.isExtensionsManagerDialogOpen) {
|
|
28109
|
-
return /* @__PURE__ */ (0,
|
|
28863
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28110
28864
|
ExtensionsManagerDialog,
|
|
28111
28865
|
{
|
|
28112
28866
|
onClose: uiActions.closeExtensionsManagerDialog,
|
|
@@ -28115,19 +28869,19 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28115
28869
|
);
|
|
28116
28870
|
}
|
|
28117
28871
|
if (uiState.isHooksDialogOpen) {
|
|
28118
|
-
return /* @__PURE__ */ (0,
|
|
28872
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(HooksManagementDialog, { onClose: uiActions.closeHooksDialog });
|
|
28119
28873
|
}
|
|
28120
28874
|
if (uiState.isStatsDialogOpen) {
|
|
28121
|
-
return /* @__PURE__ */ (0,
|
|
28875
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(StatsDialog, { onClose: uiActions.closeStatsDialog, width: mainAreaWidth });
|
|
28122
28876
|
}
|
|
28123
28877
|
if (uiState.isRemoteDialogOpen) {
|
|
28124
|
-
return /* @__PURE__ */ (0,
|
|
28878
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(RemoteControlDialog, { onClose: uiActions.closeRemoteDialog });
|
|
28125
28879
|
}
|
|
28126
28880
|
if (uiState.isMcpDialogOpen) {
|
|
28127
|
-
return /* @__PURE__ */ (0,
|
|
28881
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(MCPManagementDialog, { onClose: uiActions.closeMcpDialog });
|
|
28128
28882
|
}
|
|
28129
28883
|
if (uiState.isResumeDialogOpen) {
|
|
28130
|
-
return /* @__PURE__ */ (0,
|
|
28884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28131
28885
|
SessionPicker,
|
|
28132
28886
|
{
|
|
28133
28887
|
sessionService: config.getSessionService(),
|
|
@@ -28141,7 +28895,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28141
28895
|
}
|
|
28142
28896
|
if (uiState.isDeleteDialogOpen) {
|
|
28143
28897
|
const currentSessionId = config.getSessionId();
|
|
28144
|
-
return /* @__PURE__ */ (0,
|
|
28898
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28145
28899
|
SessionPicker,
|
|
28146
28900
|
{
|
|
28147
28901
|
sessionService: config.getSessionService(),
|
|
@@ -28156,7 +28910,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28156
28910
|
);
|
|
28157
28911
|
}
|
|
28158
28912
|
if (uiState.isRewindSelectorOpen) {
|
|
28159
|
-
return /* @__PURE__ */ (0,
|
|
28913
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28160
28914
|
RewindSelector,
|
|
28161
28915
|
{
|
|
28162
28916
|
history: uiState.history,
|
|
@@ -28168,7 +28922,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28168
28922
|
);
|
|
28169
28923
|
}
|
|
28170
28924
|
if (uiState.isDiffDialogOpen) {
|
|
28171
|
-
return /* @__PURE__ */ (0,
|
|
28925
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28172
28926
|
DiffDialog,
|
|
28173
28927
|
{
|
|
28174
28928
|
history: uiState.history,
|
|
@@ -28180,7 +28934,7 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28180
28934
|
);
|
|
28181
28935
|
}
|
|
28182
28936
|
if (uiState.isSkillReviewDialogOpen && uiState.skillReviewPending) {
|
|
28183
|
-
return /* @__PURE__ */ (0,
|
|
28937
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28184
28938
|
SkillReviewDialog,
|
|
28185
28939
|
{
|
|
28186
28940
|
skills: uiState.skillReviewPending.skills,
|
|
@@ -28193,11 +28947,14 @@ var DialogManager = /* @__PURE__ */ __name(({
|
|
|
28193
28947
|
);
|
|
28194
28948
|
}
|
|
28195
28949
|
if (bgTasksDialogOpen) {
|
|
28196
|
-
return /* @__PURE__ */ (0,
|
|
28950
|
+
return /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
|
|
28197
28951
|
BackgroundTasksDialog,
|
|
28198
28952
|
{
|
|
28199
28953
|
availableTerminalHeight: listDialogHeight,
|
|
28200
|
-
terminalWidth:
|
|
28954
|
+
terminalWidth: Math.max(
|
|
28955
|
+
1,
|
|
28956
|
+
terminalWidth - sideMargin(getLayoutTier(terminalWidth)) * 2
|
|
28957
|
+
)
|
|
28201
28958
|
}
|
|
28202
28959
|
);
|
|
28203
28960
|
}
|
|
@@ -28270,7 +29027,7 @@ function isNarrowWidth(width) {
|
|
|
28270
29027
|
__name(isNarrowWidth, "isNarrowWidth");
|
|
28271
29028
|
|
|
28272
29029
|
// packages/cli/src/ui/components/LoadingIndicator.tsx
|
|
28273
|
-
var
|
|
29030
|
+
var import_jsx_runtime112 = __toESM(require_jsx_runtime(), 1);
|
|
28274
29031
|
var LoadingIndicator = /* @__PURE__ */ __name(({
|
|
28275
29032
|
currentLoadingPhrase,
|
|
28276
29033
|
elapsedTime,
|
|
@@ -28311,34 +29068,34 @@ var LoadingIndicator = /* @__PURE__ */ __name(({
|
|
|
28311
29068
|
time: timeStr,
|
|
28312
29069
|
tokens: `${tokenStr}${tokenRateStr}`
|
|
28313
29070
|
}) : null;
|
|
28314
|
-
return /* @__PURE__ */ (0,
|
|
28315
|
-
/* @__PURE__ */ (0,
|
|
29071
|
+
return /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Box_default, { paddingLeft: 2, flexDirection: "column", children: [
|
|
29072
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(
|
|
28316
29073
|
Box_default,
|
|
28317
29074
|
{
|
|
28318
29075
|
width: "100%",
|
|
28319
29076
|
flexDirection: isNarrow ? "column" : "row",
|
|
28320
29077
|
alignItems: isNarrow ? "flex-start" : "center",
|
|
28321
29078
|
children: [
|
|
28322
|
-
/* @__PURE__ */ (0,
|
|
28323
|
-
/* @__PURE__ */ (0,
|
|
29079
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Box_default, { children: [
|
|
29080
|
+
/* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(
|
|
28324
29081
|
RespondingSpinner,
|
|
28325
29082
|
{
|
|
28326
29083
|
nonRespondingDisplay: streamingState === "waiting_for_confirmation" /* WaitingForConfirmation */ ? WAITING_SPINNER_FRAME : ""
|
|
28327
29084
|
}
|
|
28328
29085
|
) }),
|
|
28329
|
-
primaryText && /* @__PURE__ */ (0,
|
|
28330
|
-
!isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0,
|
|
29086
|
+
primaryText && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.accent, wrap: "truncate-end", children: primaryText }),
|
|
29087
|
+
!isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
28331
29088
|
" ",
|
|
28332
29089
|
cancelAndTimerContent
|
|
28333
29090
|
] })
|
|
28334
29091
|
] }),
|
|
28335
|
-
!isNarrow && /* @__PURE__ */ (0,
|
|
28336
|
-
!isNarrow && rightContent && /* @__PURE__ */ (0,
|
|
29092
|
+
!isNarrow && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { flexGrow: 1 }),
|
|
29093
|
+
!isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: rightContent })
|
|
28337
29094
|
]
|
|
28338
29095
|
}
|
|
28339
29096
|
),
|
|
28340
|
-
isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0,
|
|
28341
|
-
isNarrow && rightContent && /* @__PURE__ */ (0,
|
|
29097
|
+
isNarrow && cancelAndTimerContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Text, { color: theme.text.secondary, children: cancelAndTimerContent }) }),
|
|
29098
|
+
isNarrow && rightContent && /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(Box_default, { children: rightContent })
|
|
28342
29099
|
] });
|
|
28343
29100
|
}, "LoadingIndicator");
|
|
28344
29101
|
function formatTokensPerSecond(tokensPerSecond) {
|
|
@@ -28349,7 +29106,7 @@ function formatTokensPerSecond(tokensPerSecond) {
|
|
|
28349
29106
|
return `${rounded} t/s`;
|
|
28350
29107
|
}
|
|
28351
29108
|
__name(formatTokensPerSecond, "formatTokensPerSecond");
|
|
28352
|
-
var LiveLoadingIndicator = /* @__PURE__ */ __name(({ elapsedClock, ...props }) => /* @__PURE__ */ (0,
|
|
29109
|
+
var LiveLoadingIndicator = /* @__PURE__ */ __name(({ elapsedClock, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime112.jsx)(LoadingIndicator, { ...props, elapsedTime: useElapsedSeconds(elapsedClock) }), "LiveLoadingIndicator");
|
|
28353
29110
|
|
|
28354
29111
|
// packages/cli/src/ui/components/InputPrompt.tsx
|
|
28355
29112
|
init_esbuild_shims();
|
|
@@ -28393,7 +29150,7 @@ __name(CompletionCategoryMouseController, "CompletionCategoryMouseController");
|
|
|
28393
29150
|
// packages/cli/src/ui/components/PrepareLabel.tsx
|
|
28394
29151
|
init_esbuild_shims();
|
|
28395
29152
|
var import_react91 = __toESM(require_react(), 1);
|
|
28396
|
-
var
|
|
29153
|
+
var import_jsx_runtime113 = __toESM(require_jsx_runtime(), 1);
|
|
28397
29154
|
var MAX_WIDTH = 150;
|
|
28398
29155
|
var _PrepareLabel = /* @__PURE__ */ __name(({
|
|
28399
29156
|
label,
|
|
@@ -28405,7 +29162,7 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
|
|
|
28405
29162
|
const hasMatch = matchedIndex !== void 0 && matchedIndex >= 0 && matchedIndex < label.length && userInput.length > 0;
|
|
28406
29163
|
if (!hasMatch) {
|
|
28407
29164
|
const display = isExpanded ? label : label.length > MAX_WIDTH ? label.slice(0, MAX_WIDTH) + "..." : label;
|
|
28408
|
-
return /* @__PURE__ */ (0,
|
|
29165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(Text, { wrap: "wrap", color: textColor, children: display });
|
|
28409
29166
|
}
|
|
28410
29167
|
const matchLength = userInput.length;
|
|
28411
29168
|
let before = "";
|
|
@@ -28444,9 +29201,9 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
|
|
|
28444
29201
|
after = after.length >= 3 ? after.slice(0, -3) + "..." : "...";
|
|
28445
29202
|
}
|
|
28446
29203
|
}
|
|
28447
|
-
return /* @__PURE__ */ (0,
|
|
29204
|
+
return /* @__PURE__ */ (0, import_jsx_runtime113.jsxs)(Text, { color: textColor, wrap: "wrap", children: [
|
|
28448
29205
|
before,
|
|
28449
|
-
match ? match.split(/(\s+)/).map((part, index) => /* @__PURE__ */ (0,
|
|
29206
|
+
match ? match.split(/(\s+)/).map((part, index) => /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(
|
|
28450
29207
|
Text,
|
|
28451
29208
|
{
|
|
28452
29209
|
color: theme.background.primary,
|
|
@@ -28461,7 +29218,7 @@ var _PrepareLabel = /* @__PURE__ */ __name(({
|
|
|
28461
29218
|
var PrepareLabel = import_react91.default.memo(_PrepareLabel);
|
|
28462
29219
|
|
|
28463
29220
|
// packages/cli/src/ui/components/SuggestionsDisplay.tsx
|
|
28464
|
-
var
|
|
29221
|
+
var import_jsx_runtime114 = __toESM(require_jsx_runtime(), 1);
|
|
28465
29222
|
function categoryLabel(cat) {
|
|
28466
29223
|
switch (cat) {
|
|
28467
29224
|
case "all":
|
|
@@ -28503,7 +29260,7 @@ function SuggestionsDisplay({
|
|
|
28503
29260
|
const itemRefs = (0, import_react92.useRef)([]);
|
|
28504
29261
|
const categoryRefs = (0, import_react92.useRef)([]);
|
|
28505
29262
|
if (isLoading) {
|
|
28506
|
-
return /* @__PURE__ */ (0,
|
|
29263
|
+
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
29264
|
}
|
|
28508
29265
|
const filteredSuggestions = activeCategory === "all" ? suggestions : suggestions.filter((s) => (s.category ?? "file") === activeCategory);
|
|
28509
29266
|
const showTabBar = (availableCategories?.length ?? 0) > 2;
|
|
@@ -28533,7 +29290,7 @@ function SuggestionsDisplay({
|
|
|
28533
29290
|
Math.max(...describedLabelLengths),
|
|
28534
29291
|
Math.max(contentWidth - MIN_DESCRIPTION_WIDTH - 2, 1)
|
|
28535
29292
|
) : 0;
|
|
28536
|
-
return /* @__PURE__ */ (0,
|
|
29293
|
+
return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
|
|
28537
29294
|
Box_default,
|
|
28538
29295
|
{
|
|
28539
29296
|
flexDirection: "column",
|
|
@@ -28543,7 +29300,7 @@ function SuggestionsDisplay({
|
|
|
28543
29300
|
borderColor: extendedTheme.ui.rule,
|
|
28544
29301
|
paddingX: 1,
|
|
28545
29302
|
children: [
|
|
28546
|
-
mouseEnabled && onHoverIndex && onSelectIndex && /* @__PURE__ */ (0,
|
|
29303
|
+
mouseEnabled && onHoverIndex && onSelectIndex && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28547
29304
|
RowMouseController,
|
|
28548
29305
|
{
|
|
28549
29306
|
containerRef,
|
|
@@ -28553,7 +29310,7 @@ function SuggestionsDisplay({
|
|
|
28553
29310
|
onSelectIndex
|
|
28554
29311
|
}
|
|
28555
29312
|
),
|
|
28556
|
-
mouseEnabled && showTabBar && availableCategories && onSelectCategory && /* @__PURE__ */ (0,
|
|
29313
|
+
mouseEnabled && showTabBar && availableCategories && onSelectCategory && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28557
29314
|
CompletionCategoryMouseController,
|
|
28558
29315
|
{
|
|
28559
29316
|
containerRef,
|
|
@@ -28562,17 +29319,17 @@ function SuggestionsDisplay({
|
|
|
28562
29319
|
onSelectCategory
|
|
28563
29320
|
}
|
|
28564
29321
|
),
|
|
28565
|
-
showTabBar && availableCategories && /* @__PURE__ */ (0,
|
|
29322
|
+
showTabBar && availableCategories && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Box_default, { flexDirection: "row", marginBottom: 1, children: [
|
|
28566
29323
|
availableCategories.map((cat, i) => {
|
|
28567
29324
|
const active = cat === activeCategory;
|
|
28568
|
-
return /* @__PURE__ */ (0,
|
|
29325
|
+
return /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28569
29326
|
Box_default,
|
|
28570
29327
|
{
|
|
28571
29328
|
marginLeft: i === 0 ? 0 : 1,
|
|
28572
29329
|
ref: (node) => {
|
|
28573
29330
|
categoryRefs.current[i] = node;
|
|
28574
29331
|
},
|
|
28575
|
-
children: /* @__PURE__ */ (0,
|
|
29332
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28576
29333
|
Text,
|
|
28577
29334
|
{
|
|
28578
29335
|
color: active ? theme.background.primary : theme.text.secondary,
|
|
@@ -28584,9 +29341,9 @@ function SuggestionsDisplay({
|
|
|
28584
29341
|
cat
|
|
28585
29342
|
);
|
|
28586
29343
|
}),
|
|
28587
|
-
/* @__PURE__ */ (0,
|
|
29344
|
+
/* @__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
29345
|
] }),
|
|
28589
|
-
scrollOffset > 0 && /* @__PURE__ */ (0,
|
|
29346
|
+
scrollOffset > 0 && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: theme.text.primary, children: "\u25B2" }),
|
|
28590
29347
|
visibleSuggestions.map((suggestion, index) => {
|
|
28591
29348
|
const originalIndex = startIndex + index;
|
|
28592
29349
|
const isActive = originalIndex === activeIndex;
|
|
@@ -28599,7 +29356,7 @@ function SuggestionsDisplay({
|
|
|
28599
29356
|
contentWidth - labelColumnWidth - 2 - expansionIndicatorWidth,
|
|
28600
29357
|
1
|
|
28601
29358
|
);
|
|
28602
|
-
const labelElement = /* @__PURE__ */ (0,
|
|
29359
|
+
const labelElement = /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28603
29360
|
PrepareLabel,
|
|
28604
29361
|
{
|
|
28605
29362
|
label: displayLabel,
|
|
@@ -28609,7 +29366,7 @@ function SuggestionsDisplay({
|
|
|
28609
29366
|
isExpanded
|
|
28610
29367
|
}
|
|
28611
29368
|
);
|
|
28612
|
-
return /* @__PURE__ */ (0,
|
|
29369
|
+
return /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(
|
|
28613
29370
|
Box_default,
|
|
28614
29371
|
{
|
|
28615
29372
|
flexDirection: "row",
|
|
@@ -28617,49 +29374,49 @@ function SuggestionsDisplay({
|
|
|
28617
29374
|
itemRefs.current[index] = node;
|
|
28618
29375
|
},
|
|
28619
29376
|
children: [
|
|
28620
|
-
/* @__PURE__ */ (0,
|
|
28621
|
-
/* @__PURE__ */ (0,
|
|
29377
|
+
/* @__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} ` : " " }) }),
|
|
29378
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28622
29379
|
Box_default,
|
|
28623
29380
|
{
|
|
28624
29381
|
...mode === "slash" || suggestion.description ? { width: labelColumnWidth, flexShrink: 0 } : { flexShrink: 1 },
|
|
28625
|
-
children: /* @__PURE__ */ (0,
|
|
28626
|
-
/* @__PURE__ */ (0,
|
|
28627
|
-
suggestion.argumentHint && /* @__PURE__ */ (0,
|
|
29382
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Box_default, { children: [
|
|
29383
|
+
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Box_default, { flexShrink: 0, children: labelElement }),
|
|
29384
|
+
suggestion.argumentHint && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: theme.text.secondary, wrap: "truncate-end", children: [
|
|
28628
29385
|
" ",
|
|
28629
29386
|
suggestion.argumentHint
|
|
28630
29387
|
] }),
|
|
28631
|
-
suggestion.sourceBadge && /* @__PURE__ */ (0,
|
|
29388
|
+
suggestion.sourceBadge && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: textColor, wrap: "truncate-end", children: [
|
|
28632
29389
|
" ",
|
|
28633
29390
|
suggestion.sourceBadge
|
|
28634
29391
|
] })
|
|
28635
29392
|
] })
|
|
28636
29393
|
}
|
|
28637
29394
|
),
|
|
28638
|
-
suggestion.description && /* @__PURE__ */ (0,
|
|
29395
|
+
suggestion.description && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
|
|
28639
29396
|
Box_default,
|
|
28640
29397
|
{
|
|
28641
29398
|
width: descriptionColumnWidth,
|
|
28642
29399
|
flexGrow: 1,
|
|
28643
29400
|
flexShrink: 1,
|
|
28644
29401
|
paddingLeft: 2,
|
|
28645
|
-
children: /* @__PURE__ */ (0,
|
|
29402
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: extendedTheme.text.muted, wrap: "truncate-end", children: normalizeDescription(suggestion.description) })
|
|
28646
29403
|
}
|
|
28647
29404
|
),
|
|
28648
|
-
isActive && isLong && /* @__PURE__ */ (0,
|
|
29405
|
+
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
29406
|
]
|
|
28650
29407
|
},
|
|
28651
29408
|
`${suggestion.value}-${originalIndex}`
|
|
28652
29409
|
);
|
|
28653
29410
|
}),
|
|
28654
|
-
endIndex < filteredSuggestions.length && /* @__PURE__ */ (0,
|
|
28655
|
-
filteredSuggestions.length > MAX_SUGGESTIONS_TO_SHOW && /* @__PURE__ */ (0,
|
|
29411
|
+
endIndex < filteredSuggestions.length && /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Text, { color: "gray", children: "\u25BC" }),
|
|
29412
|
+
filteredSuggestions.length > MAX_SUGGESTIONS_TO_SHOW && /* @__PURE__ */ (0, import_jsx_runtime114.jsxs)(Text, { color: "gray", children: [
|
|
28656
29413
|
"(",
|
|
28657
29414
|
activeIndex + 1,
|
|
28658
29415
|
"/",
|
|
28659
29416
|
filteredSuggestions.length,
|
|
28660
29417
|
")"
|
|
28661
29418
|
] }),
|
|
28662
|
-
/* @__PURE__ */ (0,
|
|
29419
|
+
/* @__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
29420
|
]
|
|
28664
29421
|
}
|
|
28665
29422
|
);
|
|
@@ -31032,7 +31789,7 @@ function useTeamInProcess(config, actions) {
|
|
|
31032
31789
|
__name(useTeamInProcess, "useTeamInProcess");
|
|
31033
31790
|
|
|
31034
31791
|
// packages/cli/src/ui/contexts/AgentViewContext.tsx
|
|
31035
|
-
var
|
|
31792
|
+
var import_jsx_runtime115 = __toESM(require_jsx_runtime(), 1);
|
|
31036
31793
|
var AgentViewStateContext = (0, import_react106.createContext)(null);
|
|
31037
31794
|
var AgentViewActionsContext = (0, import_react106.createContext)(null);
|
|
31038
31795
|
var DEFAULT_STATE2 = {
|
|
@@ -31290,8 +32047,8 @@ function AgentViewProvider({
|
|
|
31290
32047
|
);
|
|
31291
32048
|
useArenaInProcess(config ?? null, actions);
|
|
31292
32049
|
useTeamInProcess(config ?? null, actions);
|
|
31293
|
-
return /* @__PURE__ */ (0,
|
|
31294
|
-
[...agents.keys()].map((agentId) => /* @__PURE__ */ (0,
|
|
32050
|
+
return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AgentViewStateContext.Provider, { value: state, children: /* @__PURE__ */ (0, import_jsx_runtime115.jsxs)(AgentViewActionsContext.Provider, { value: actions, children: [
|
|
32051
|
+
[...agents.keys()].map((agentId) => /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(AgentQueueFlusher, { agentId }, agentId)),
|
|
31295
32052
|
children
|
|
31296
32053
|
] }) });
|
|
31297
32054
|
}
|
|
@@ -31336,7 +32093,7 @@ __name(getLiveAgentPanelLayoutKey, "getLiveAgentPanelLayoutKey");
|
|
|
31336
32093
|
|
|
31337
32094
|
// packages/cli/src/ui/FeedbackDialog.tsx
|
|
31338
32095
|
init_esbuild_shims();
|
|
31339
|
-
var
|
|
32096
|
+
var import_jsx_runtime116 = __toESM(require_jsx_runtime(), 1);
|
|
31340
32097
|
var FEEDBACK_OPTIONS = {
|
|
31341
32098
|
GOOD: 1,
|
|
31342
32099
|
BAD: 2,
|
|
@@ -31369,39 +32126,39 @@ var FeedbackDialog = /* @__PURE__ */ __name(() => {
|
|
|
31369
32126
|
},
|
|
31370
32127
|
{ isActive: uiState.isFeedbackDialogOpen }
|
|
31371
32128
|
);
|
|
31372
|
-
return /* @__PURE__ */ (0,
|
|
31373
|
-
/* @__PURE__ */ (0,
|
|
31374
|
-
/* @__PURE__ */ (0,
|
|
31375
|
-
/* @__PURE__ */ (0,
|
|
32129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { flexDirection: "column", marginY: 1, children: [
|
|
32130
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { children: [
|
|
32131
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { color: "cyan", children: ICON.CIRCLE_FILLED + " " }),
|
|
32132
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { bold: true, children: t("How is O1-Code doing this session? (optional)") })
|
|
31376
32133
|
] }),
|
|
31377
|
-
/* @__PURE__ */ (0,
|
|
31378
|
-
/* @__PURE__ */ (0,
|
|
32134
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Box_default, { marginTop: 1, children: [
|
|
32135
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
|
|
31379
32136
|
FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.GOOD],
|
|
31380
32137
|
":",
|
|
31381
32138
|
" "
|
|
31382
32139
|
] }),
|
|
31383
|
-
/* @__PURE__ */ (0,
|
|
31384
|
-
/* @__PURE__ */ (0,
|
|
31385
|
-
/* @__PURE__ */ (0,
|
|
32140
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Good") }),
|
|
32141
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
|
|
32142
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
|
|
31386
32143
|
FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.BAD],
|
|
31387
32144
|
": "
|
|
31388
32145
|
] }),
|
|
31389
|
-
/* @__PURE__ */ (0,
|
|
31390
|
-
/* @__PURE__ */ (0,
|
|
31391
|
-
/* @__PURE__ */ (0,
|
|
32146
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Bad") }),
|
|
32147
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
|
|
32148
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
|
|
31392
32149
|
FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.FINE],
|
|
31393
32150
|
":",
|
|
31394
32151
|
" "
|
|
31395
32152
|
] }),
|
|
31396
|
-
/* @__PURE__ */ (0,
|
|
31397
|
-
/* @__PURE__ */ (0,
|
|
31398
|
-
/* @__PURE__ */ (0,
|
|
32153
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Fine") }),
|
|
32154
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " }),
|
|
32155
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(Text, { color: "cyan", children: [
|
|
31399
32156
|
FEEDBACK_OPTION_KEYS[FEEDBACK_OPTIONS.DISMISS],
|
|
31400
32157
|
":",
|
|
31401
32158
|
" "
|
|
31402
32159
|
] }),
|
|
31403
|
-
/* @__PURE__ */ (0,
|
|
31404
|
-
/* @__PURE__ */ (0,
|
|
32160
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: t("Dismiss") }),
|
|
32161
|
+
/* @__PURE__ */ (0, import_jsx_runtime116.jsx)(Text, { children: " " })
|
|
31405
32162
|
] })
|
|
31406
32163
|
] });
|
|
31407
32164
|
}, "FeedbackDialog");
|
|
@@ -31524,7 +32281,7 @@ function TextInputMouseController({
|
|
|
31524
32281
|
__name(TextInputMouseController, "TextInputMouseController");
|
|
31525
32282
|
|
|
31526
32283
|
// packages/cli/src/ui/components/BaseTextInput.tsx
|
|
31527
|
-
var
|
|
32284
|
+
var import_jsx_runtime117 = __toESM(require_jsx_runtime(), 1);
|
|
31528
32285
|
var INPUT_MAX_VISIBLE_LINES = 6;
|
|
31529
32286
|
var LABEL_RESERVED_COLUMNS = 7;
|
|
31530
32287
|
function defaultRenderLine({
|
|
@@ -31534,11 +32291,11 @@ function defaultRenderLine({
|
|
|
31534
32291
|
showCursor
|
|
31535
32292
|
}) {
|
|
31536
32293
|
if (!isOnCursorLine || !showCursor || terminalShowsInputCursor()) {
|
|
31537
|
-
return /* @__PURE__ */ (0,
|
|
32294
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { children: lineText || " " });
|
|
31538
32295
|
}
|
|
31539
32296
|
const len = cpLen(lineText);
|
|
31540
32297
|
if (cursorCol >= len) {
|
|
31541
|
-
return /* @__PURE__ */ (0,
|
|
32298
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
|
|
31542
32299
|
lineText,
|
|
31543
32300
|
renderSoftwareCursor(" ")
|
|
31544
32301
|
] });
|
|
@@ -31546,7 +32303,7 @@ function defaultRenderLine({
|
|
|
31546
32303
|
const before = cpSlice(lineText, 0, cursorCol);
|
|
31547
32304
|
const cursorChar = cpSlice(lineText, cursorCol, cursorCol + 1);
|
|
31548
32305
|
const after = cpSlice(lineText, cursorCol + 1);
|
|
31549
|
-
return /* @__PURE__ */ (0,
|
|
32306
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Text, { children: [
|
|
31550
32307
|
before,
|
|
31551
32308
|
renderSoftwareCursor(cursorChar),
|
|
31552
32309
|
after
|
|
@@ -31719,13 +32476,13 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31719
32476
|
});
|
|
31720
32477
|
setCursorPosition(cursorPosition);
|
|
31721
32478
|
const resolvedBorderColor = borderColor ?? theme.border.focused;
|
|
31722
|
-
const resolvedPrefix = prefix ?? /* @__PURE__ */ (0,
|
|
32479
|
+
const resolvedPrefix = prefix ?? /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: theme.text.accent, children: "> " });
|
|
31723
32480
|
const columns = process.stdout.columns || 80;
|
|
31724
32481
|
const labelBudget = columns - LABEL_RESERVED_COLUMNS;
|
|
31725
32482
|
const renderedLabel = topRightLabel ? truncateToWidth(topRightLabel, labelBudget) : "";
|
|
31726
32483
|
const frame = TOP_FRAME[glyphs().borderStyle];
|
|
31727
|
-
return /* @__PURE__ */ (0,
|
|
31728
|
-
mouseEnabled && isActive && /* @__PURE__ */ (0,
|
|
32484
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { ref: boxRef, flexDirection: "column", children: [
|
|
32485
|
+
mouseEnabled && isActive && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
31729
32486
|
TextInputMouseController,
|
|
31730
32487
|
{
|
|
31731
32488
|
linesRef,
|
|
@@ -31738,9 +32495,9 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31738
32495
|
// The rule starts from zero width and takes only what the label leaves:
|
|
31739
32496
|
// sized from its content (the whole terminal width) it pushed the
|
|
31740
32497
|
// label and the corner past the input's right edge.
|
|
31741
|
-
/* @__PURE__ */ (0,
|
|
31742
|
-
/* @__PURE__ */ (0,
|
|
31743
|
-
/* @__PURE__ */ (0,
|
|
32498
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(Box_default, { children: [
|
|
32499
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: frame.topLeft }),
|
|
32500
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)(
|
|
31744
32501
|
Box_default,
|
|
31745
32502
|
{
|
|
31746
32503
|
flexGrow: 1,
|
|
@@ -31748,12 +32505,12 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31748
32505
|
flexBasis: 0,
|
|
31749
32506
|
height: 1,
|
|
31750
32507
|
overflow: "hidden",
|
|
31751
|
-
children: /* @__PURE__ */ (0,
|
|
32508
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: resolvedBorderColor, children: frame.top.repeat(columns) })
|
|
31752
32509
|
}
|
|
31753
32510
|
),
|
|
31754
|
-
/* @__PURE__ */ (0,
|
|
32511
|
+
/* @__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
32512
|
] }),
|
|
31756
|
-
/* @__PURE__ */ (0,
|
|
32513
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
|
|
31757
32514
|
Box_default,
|
|
31758
32515
|
{
|
|
31759
32516
|
borderStyle: glyphs().borderStyle,
|
|
@@ -31762,7 +32519,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31762
32519
|
paddingX: 1,
|
|
31763
32520
|
children: [
|
|
31764
32521
|
resolvedPrefix,
|
|
31765
|
-
/* @__PURE__ */ (0,
|
|
32522
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsxs)(
|
|
31766
32523
|
Box_default,
|
|
31767
32524
|
{
|
|
31768
32525
|
flexGrow: 1,
|
|
@@ -31771,16 +32528,16 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31771
32528
|
minWidth: 0,
|
|
31772
32529
|
flexDirection: "column",
|
|
31773
32530
|
children: [
|
|
31774
|
-
scrollVisualRow > 0 && /* @__PURE__ */ (0,
|
|
32531
|
+
scrollVisualRow > 0 && /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.muted, children: `${glyphs().up} ${t("{{count}} lines above", {
|
|
31775
32532
|
count: String(scrollVisualRow)
|
|
31776
32533
|
})}` }),
|
|
31777
|
-
/* @__PURE__ */ (0,
|
|
32534
|
+
/* @__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
32535
|
renderSoftwareCursor(placeholder.slice(0, 1)),
|
|
31779
|
-
/* @__PURE__ */ (0,
|
|
31780
|
-
] }) : /* @__PURE__ */ (0,
|
|
32536
|
+
/* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder.slice(1) })
|
|
32537
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Text, { color: extendedTheme.text.placeholder, children: placeholder }) : linesToRender.map((lineText, idx) => {
|
|
31781
32538
|
const absoluteVisualIndex = scrollVisualRow + idx;
|
|
31782
32539
|
const isOnCursorLine = absoluteVisualIndex === cursorVisualRow;
|
|
31783
|
-
return /* @__PURE__ */ (0,
|
|
32540
|
+
return /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(Box_default, { height: 1, children: renderLine({
|
|
31784
32541
|
lineText,
|
|
31785
32542
|
isOnCursorLine,
|
|
31786
32543
|
cursorCol: cursorVisualCol,
|
|
@@ -31791,7 +32548,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31791
32548
|
scrollVisualRow
|
|
31792
32549
|
}) }, idx);
|
|
31793
32550
|
}) }),
|
|
31794
|
-
(buffer.allVisualLines?.length ?? 0) > 1 && /* @__PURE__ */ (0,
|
|
32551
|
+
(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
32552
|
count: String(buffer.allVisualLines.length)
|
|
31796
32553
|
}) }) })
|
|
31797
32554
|
]
|
|
@@ -31806,7 +32563,7 @@ var BaseTextInput = /* @__PURE__ */ __name(({
|
|
|
31806
32563
|
// packages/cli/src/ui/components/SlashCommandMenu.tsx
|
|
31807
32564
|
init_esbuild_shims();
|
|
31808
32565
|
var import_react109 = __toESM(require_react(), 1);
|
|
31809
|
-
var
|
|
32566
|
+
var import_jsx_runtime118 = __toESM(require_jsx_runtime(), 1);
|
|
31810
32567
|
var GROUPS = [
|
|
31811
32568
|
{
|
|
31812
32569
|
id: "sessions",
|
|
@@ -32202,7 +32959,7 @@ function SlashCommandMenu({
|
|
|
32202
32959
|
);
|
|
32203
32960
|
if (group || query) {
|
|
32204
32961
|
const title = parent ? `/${parent.path}` : group?.label ?? t("Search");
|
|
32205
|
-
return /* @__PURE__ */ (0,
|
|
32962
|
+
return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { marginX: 2, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
32206
32963
|
SelectionDialog,
|
|
32207
32964
|
{
|
|
32208
32965
|
title: `${t("Commands")} \u203A ${title}`,
|
|
@@ -32238,7 +32995,7 @@ function SlashCommandMenu({
|
|
|
32238
32995
|
) });
|
|
32239
32996
|
}
|
|
32240
32997
|
const listRows = Math.max(1, height - 3);
|
|
32241
|
-
return /* @__PURE__ */ (0,
|
|
32998
|
+
return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
|
|
32242
32999
|
Box_default,
|
|
32243
33000
|
{
|
|
32244
33001
|
marginX: 2,
|
|
@@ -32250,7 +33007,7 @@ function SlashCommandMenu({
|
|
|
32250
33007
|
flexDirection: "column",
|
|
32251
33008
|
overflow: "hidden",
|
|
32252
33009
|
children: [
|
|
32253
|
-
/* @__PURE__ */ (0,
|
|
33010
|
+
/* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Box_default, { height: listRows, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
|
|
32254
33011
|
BaseSelectionList,
|
|
32255
33012
|
{
|
|
32256
33013
|
items: groups.map((group2) => ({
|
|
@@ -32269,17 +33026,17 @@ function SlashCommandMenu({
|
|
|
32269
33026
|
setGroupId(id);
|
|
32270
33027
|
setHighlighted(void 0);
|
|
32271
33028
|
},
|
|
32272
|
-
renderItem: (item, { titleColor, isSelected }) => /* @__PURE__ */ (0,
|
|
32273
|
-
/* @__PURE__ */ (0,
|
|
32274
|
-
/* @__PURE__ */ (0,
|
|
33029
|
+
renderItem: (item, { titleColor, isSelected }) => /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Box_default, { width: "100%", children: [
|
|
33030
|
+
/* @__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 }) }),
|
|
33031
|
+
/* @__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
33032
|
] })
|
|
32276
33033
|
}
|
|
32277
33034
|
) }),
|
|
32278
|
-
height >= 4 && /* @__PURE__ */ (0,
|
|
32279
|
-
/* @__PURE__ */ (0,
|
|
33035
|
+
height >= 4 && /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(Box_default, { height: 1, flexShrink: 0, children: [
|
|
33036
|
+
/* @__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
33037
|
"Type to search commands \xB7 \u2191\u2193 navigate \xB7 enter open \xB7 esc close"
|
|
32281
33038
|
) }) }),
|
|
32282
|
-
/* @__PURE__ */ (0,
|
|
33039
|
+
/* @__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
33040
|
Math.max(
|
|
32284
33041
|
0,
|
|
32285
33042
|
groups.findIndex((group2) => group2.id === highlightedGroup)
|
|
@@ -33379,7 +34136,7 @@ __name(refineVoiceTranscript, "refineVoiceTranscript");
|
|
|
33379
34136
|
|
|
33380
34137
|
// packages/cli/src/ui/components/VoiceIndicator.tsx
|
|
33381
34138
|
init_esbuild_shims();
|
|
33382
|
-
var
|
|
34139
|
+
var import_jsx_runtime119 = __toESM(require_jsx_runtime(), 1);
|
|
33383
34140
|
var METER_WIDTH = 16;
|
|
33384
34141
|
var LEVEL_GAIN = 12;
|
|
33385
34142
|
function meter(level) {
|
|
@@ -33397,13 +34154,13 @@ function VoiceIndicator({
|
|
|
33397
34154
|
if (status === "idle") {
|
|
33398
34155
|
return null;
|
|
33399
34156
|
}
|
|
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,
|
|
34157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(Box_default, { flexDirection: "column", paddingLeft: 1, children: [
|
|
34158
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Box_default, { children: status === "recording" ? /* @__PURE__ */ (0, import_jsx_runtime119.jsxs)(import_jsx_runtime119.Fragment, { children: [
|
|
34159
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "redBright", children: "\u25CF " }),
|
|
34160
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "cyan", children: meter(audioLevel) }),
|
|
34161
|
+
/* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { color: "gray", children: " " + t("listening\u2026") })
|
|
34162
|
+
] }) : 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") }) }),
|
|
34163
|
+
interimText ? /* @__PURE__ */ (0, import_jsx_runtime119.jsx)(Text, { dimColor: true, wrap: "truncate-end", children: escapeAnsiCtrlCodes(interimText) }) : null
|
|
33407
34164
|
] });
|
|
33408
34165
|
}
|
|
33409
34166
|
__name(VoiceIndicator, "VoiceIndicator");
|
|
@@ -33411,7 +34168,7 @@ __name(VoiceIndicator, "VoiceIndicator");
|
|
|
33411
34168
|
// packages/cli/src/ui/components/AttachmentPreparation.tsx
|
|
33412
34169
|
init_esbuild_shims();
|
|
33413
34170
|
var import_react111 = __toESM(require_react(), 1);
|
|
33414
|
-
var
|
|
34171
|
+
var import_jsx_runtime120 = __toESM(require_jsx_runtime(), 1);
|
|
33415
34172
|
var frames = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
|
|
33416
34173
|
function AttachmentPreparation({
|
|
33417
34174
|
state,
|
|
@@ -33429,13 +34186,13 @@ function AttachmentPreparation({
|
|
|
33429
34186
|
}, [busy, startedAt]);
|
|
33430
34187
|
if (!busy && state !== "error" && !notice) return null;
|
|
33431
34188
|
const elapsed = Math.max(0, now - startedAt) / 1e3;
|
|
33432
|
-
return /* @__PURE__ */ (0,
|
|
33433
|
-
busy && /* @__PURE__ */ (0,
|
|
34189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Box_default, { marginLeft: 2, marginRight: 2, flexDirection: "column", children: [
|
|
34190
|
+
busy && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: extendedTheme.ui.brandSoft, wrap: "truncate-end", children: [
|
|
33434
34191
|
frames[Math.floor(now / 100) % frames.length],
|
|
33435
34192
|
" ",
|
|
33436
34193
|
pasteBytes !== void 0 ? t("Pasting text\u2026 {{size}} KB", {
|
|
33437
34194
|
size: String(Math.ceil(pasteBytes / 1024))
|
|
33438
|
-
}) : /* @__PURE__ */ (0,
|
|
34195
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(import_jsx_runtime120.Fragment, { children: [
|
|
33439
34196
|
t(
|
|
33440
34197
|
state === "reading" ? "Reading image\u2026" : "Preparing attachment\u2026"
|
|
33441
34198
|
),
|
|
@@ -33446,15 +34203,15 @@ function AttachmentPreparation({
|
|
|
33446
34203
|
t("Esc to cancel")
|
|
33447
34204
|
] })
|
|
33448
34205
|
] }),
|
|
33449
|
-
state === "error" && /* @__PURE__ */ (0,
|
|
34206
|
+
state === "error" && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Text, { color: theme.status.error, children: [
|
|
33450
34207
|
"\u26A0",
|
|
33451
34208
|
" ",
|
|
33452
34209
|
t(
|
|
33453
34210
|
"Could not prepare the attachment. Paste it again to retry; Esc to dismiss."
|
|
33454
34211
|
)
|
|
33455
34212
|
] }),
|
|
33456
|
-
notice === "wait" && /* @__PURE__ */ (0,
|
|
33457
|
-
notice === "cancelled" && /* @__PURE__ */ (0,
|
|
34213
|
+
notice === "wait" && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.status.warning, children: t("Wait for the attachment to finish preparing before sending.") }),
|
|
34214
|
+
notice === "cancelled" && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Text, { color: theme.text.secondary, children: t("Attachment preparation cancelled. Your prompt was preserved.") })
|
|
33458
34215
|
] });
|
|
33459
34216
|
}
|
|
33460
34217
|
__name(AttachmentPreparation, "AttachmentPreparation");
|
|
@@ -33595,7 +34352,7 @@ function clearPromptStash(targetDir) {
|
|
|
33595
34352
|
__name(clearPromptStash, "clearPromptStash");
|
|
33596
34353
|
|
|
33597
34354
|
// packages/cli/src/ui/components/InputPrompt.tsx
|
|
33598
|
-
var
|
|
34355
|
+
var import_jsx_runtime121 = __toESM(require_jsx_runtime(), 1);
|
|
33599
34356
|
var PASTED_IMAGE_EXTENSIONS = /\.(png|jpe?g|gif|webp|bmp)$/i;
|
|
33600
34357
|
function classifyPastedImagePaths(pasted) {
|
|
33601
34358
|
const tokens = pasted.split(/ (?=@?\/|@?[A-Za-z]:\\)/).flatMap((part) => part.split("\n")).map((token) => token.trim()).filter(Boolean);
|
|
@@ -34086,7 +34843,7 @@ ${finalValue.trim()}`;
|
|
|
34086
34843
|
{
|
|
34087
34844
|
type: "error",
|
|
34088
34845
|
text: t(
|
|
34089
|
-
"Clipboard
|
|
34846
|
+
"Clipboard images are unavailable in this session. Attach the image file directly."
|
|
34090
34847
|
)
|
|
34091
34848
|
},
|
|
34092
34849
|
Date.now()
|
|
@@ -34961,7 +35718,7 @@ ${currentText}`);
|
|
|
34961
35718
|
}
|
|
34962
35719
|
const color2 = seg.type === "command" || seg.type === "file" ? theme.text.accent : theme.text.primary;
|
|
34963
35720
|
renderedLine.push(
|
|
34964
|
-
/* @__PURE__ */ (0,
|
|
35721
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: color2, children: display }, `token-${segIdx}`)
|
|
34965
35722
|
);
|
|
34966
35723
|
});
|
|
34967
35724
|
if (isOnCursorLine && cursorVisualColAbsolute === cpLen(lineText)) {
|
|
@@ -34969,34 +35726,34 @@ ${currentText}`);
|
|
|
34969
35726
|
if (ghostText && showCursorOpt && ghostText.text.length > 0) {
|
|
34970
35727
|
if (!drawCursor) {
|
|
34971
35728
|
renderedLine.push(
|
|
34972
|
-
/* @__PURE__ */ (0,
|
|
35729
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: ghostText.showCursorBeforeText ? ` ${ghostText.text}` : ghostText.text }, "ghost-rest")
|
|
34973
35730
|
);
|
|
34974
35731
|
} else if (ghostText.showCursorBeforeText) {
|
|
34975
35732
|
renderedLine.push(
|
|
34976
|
-
/* @__PURE__ */ (0,
|
|
35733
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderSoftwareCursor(" ") }, "ghost-cursor")
|
|
34977
35734
|
);
|
|
34978
35735
|
renderedLine.push(
|
|
34979
|
-
/* @__PURE__ */ (0,
|
|
35736
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: ghostText.text }, "ghost-rest")
|
|
34980
35737
|
);
|
|
34981
35738
|
} else {
|
|
34982
35739
|
const firstChar = ghostText.text[0];
|
|
34983
35740
|
const rest = ghostText.text.slice(firstChar.length);
|
|
34984
35741
|
renderedLine.push(
|
|
34985
|
-
/* @__PURE__ */ (0,
|
|
35742
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderSoftwareCursor(firstChar) }, "ghost-cursor")
|
|
34986
35743
|
);
|
|
34987
35744
|
if (rest.length > 0) {
|
|
34988
35745
|
renderedLine.push(
|
|
34989
|
-
/* @__PURE__ */ (0,
|
|
35746
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.secondary, children: rest }, "ghost-rest")
|
|
34990
35747
|
);
|
|
34991
35748
|
}
|
|
34992
35749
|
}
|
|
34993
35750
|
} else if (!terminalShowsInputCursor()) {
|
|
34994
35751
|
renderedLine.push(
|
|
34995
|
-
/* @__PURE__ */ (0,
|
|
35752
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: showCursorOpt ? renderSoftwareCursor(" ") : " " }, `cursor-end-${cursorVisualColAbsolute}`)
|
|
34996
35753
|
);
|
|
34997
35754
|
}
|
|
34998
35755
|
}
|
|
34999
|
-
return /* @__PURE__ */ (0,
|
|
35756
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { children: renderedLine });
|
|
35000
35757
|
},
|
|
35001
35758
|
[slashCommands]
|
|
35002
35759
|
);
|
|
@@ -35134,27 +35891,27 @@ ${currentText}`);
|
|
|
35134
35891
|
}
|
|
35135
35892
|
const borderColor = isShellFocused && !isEmbeddedShellFocused && !agentTabBarFocused ? shellModeActive ? statusColor ?? extendedTheme.ui.brand : extendedTheme.ui.brand : theme.border.default;
|
|
35136
35893
|
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,
|
|
35894
|
+
const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
|
|
35138
35895
|
Text,
|
|
35139
35896
|
{
|
|
35140
35897
|
color: shellModeActive ? statusColor : extendedTheme.ui.brand,
|
|
35141
35898
|
"aria-label": statusText || void 0,
|
|
35142
35899
|
children: [
|
|
35143
|
-
shellModeActive ? reverseSearchActive ? /* @__PURE__ */ (0,
|
|
35900
|
+
shellModeActive ? reverseSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Text, { color: theme.text.link, "aria-label": SCREEN_READER_USER_PREFIX, children: [
|
|
35144
35901
|
"(r:)",
|
|
35145
35902
|
" "
|
|
35146
|
-
] }) : "!" : commandSearchActive ? /* @__PURE__ */ (0,
|
|
35903
|
+
] }) : "!" : commandSearchActive ? /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Text, { color: theme.text.accent, children: "(r:) " }) : glyphs().prompt,
|
|
35147
35904
|
" "
|
|
35148
35905
|
]
|
|
35149
35906
|
}
|
|
35150
35907
|
);
|
|
35151
|
-
return /* @__PURE__ */ (0,
|
|
35152
|
-
attachments.length > 0 && /* @__PURE__ */ (0,
|
|
35908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_jsx_runtime121.Fragment, { children: [
|
|
35909
|
+
attachments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, flexDirection: "column", children: attachments.map((att, idx) => {
|
|
35153
35910
|
const selected = isAttachmentMode && idx === selectedAttachmentIndex;
|
|
35154
35911
|
const label = t("Attachments: ");
|
|
35155
|
-
return /* @__PURE__ */ (0,
|
|
35156
|
-
/* @__PURE__ */ (0,
|
|
35157
|
-
/* @__PURE__ */ (0,
|
|
35912
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(Box_default, { minWidth: 0, children: [
|
|
35913
|
+
/* @__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)) }) }),
|
|
35914
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
|
|
35158
35915
|
Text,
|
|
35159
35916
|
{
|
|
35160
35917
|
wrap: "truncate-end",
|
|
@@ -35172,7 +35929,7 @@ ${currentText}`);
|
|
|
35172
35929
|
)
|
|
35173
35930
|
] }, att.id);
|
|
35174
35931
|
}) }),
|
|
35175
|
-
/* @__PURE__ */ (0,
|
|
35932
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35176
35933
|
AttachmentPreparation,
|
|
35177
35934
|
{
|
|
35178
35935
|
state: attachmentPreparation.state,
|
|
@@ -35181,7 +35938,7 @@ ${currentText}`);
|
|
|
35181
35938
|
pasteBytes: pasteProgress?.active ? pasteProgress.receivedBytes : void 0
|
|
35182
35939
|
}
|
|
35183
35940
|
),
|
|
35184
|
-
/* @__PURE__ */ (0,
|
|
35941
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35185
35942
|
VoiceIndicator,
|
|
35186
35943
|
{
|
|
35187
35944
|
status: voiceInput.status,
|
|
@@ -35189,7 +35946,7 @@ ${currentText}`);
|
|
|
35189
35946
|
audioLevel: voiceInput.audioLevel
|
|
35190
35947
|
}
|
|
35191
35948
|
),
|
|
35192
|
-
!slashMenuPanelOpen && /* @__PURE__ */ (0,
|
|
35949
|
+
!slashMenuPanelOpen && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35193
35950
|
BaseTextInput,
|
|
35194
35951
|
{
|
|
35195
35952
|
buffer,
|
|
@@ -35209,7 +35966,7 @@ ${currentText}`);
|
|
|
35209
35966
|
mouseEnabled: mouseInteractionsEnabled
|
|
35210
35967
|
}
|
|
35211
35968
|
),
|
|
35212
|
-
showSlashMenu && /* @__PURE__ */ (0,
|
|
35969
|
+
showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35213
35970
|
SlashCommandMenu,
|
|
35214
35971
|
{
|
|
35215
35972
|
query: buffer.text.slice(1),
|
|
@@ -35238,7 +35995,7 @@ ${currentText}`);
|
|
|
35238
35995
|
}
|
|
35239
35996
|
}
|
|
35240
35997
|
),
|
|
35241
|
-
shouldShowSuggestions && !showSlashMenu && /* @__PURE__ */ (0,
|
|
35998
|
+
shouldShowSuggestions && !showSlashMenu && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Box_default, { marginLeft: 2, marginRight: 2, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
35242
35999
|
SuggestionsDisplay,
|
|
35243
36000
|
{
|
|
35244
36001
|
suggestions: suggestionDisplayProps.suggestions,
|
|
@@ -35257,7 +36014,7 @@ ${currentText}`);
|
|
|
35257
36014
|
onSelectCategory: suggestionsFromExport || commandSearchActive || reverseSearchActive ? void 0 : handleCategorySelect
|
|
35258
36015
|
}
|
|
35259
36016
|
) }),
|
|
35260
|
-
attachments.length > 0 && !shouldShowSuggestions && /* @__PURE__ */ (0,
|
|
36017
|
+
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
36018
|
] });
|
|
35262
36019
|
}, "InputPrompt");
|
|
35263
36020
|
|
|
@@ -35267,10 +36024,10 @@ var import_react117 = __toESM(require_react(), 1);
|
|
|
35267
36024
|
|
|
35268
36025
|
// packages/cli/src/ui/components/ShellModeIndicator.tsx
|
|
35269
36026
|
init_esbuild_shims();
|
|
35270
|
-
var
|
|
35271
|
-
var ShellModeIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0,
|
|
36027
|
+
var import_jsx_runtime122 = __toESM(require_jsx_runtime(), 1);
|
|
36028
|
+
var ShellModeIndicator = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Text, { color: theme.ui.symbol, children: [
|
|
35272
36029
|
"shell mode enabled",
|
|
35273
|
-
/* @__PURE__ */ (0,
|
|
36030
|
+
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Text, { color: theme.text.secondary, children: " (esc to disable)" })
|
|
35274
36031
|
] }), "ShellModeIndicator");
|
|
35275
36032
|
|
|
35276
36033
|
// packages/cli/src/ui/hooks/use-layout-tier.ts
|
|
@@ -35851,7 +36608,7 @@ function useConfigInitMessage(isConfigInitialized) {
|
|
|
35851
36608
|
__name(useConfigInitMessage, "useConfigInitMessage");
|
|
35852
36609
|
|
|
35853
36610
|
// packages/cli/src/ui/components/Footer.tsx
|
|
35854
|
-
var
|
|
36611
|
+
var import_jsx_runtime123 = __toESM(require_jsx_runtime(), 1);
|
|
35855
36612
|
function readReasoning(config) {
|
|
35856
36613
|
const generationConfig = config.getContentGeneratorConfig();
|
|
35857
36614
|
if (!generationConfig) return void 0;
|
|
@@ -35917,23 +36674,23 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35917
36674
|
const worktreeBranch = settings.merged.ui?.hideBuiltinWorktreeIndicator ? void 0 : uiState.activeWorktree?.branch;
|
|
35918
36675
|
const branch = worktreeBranch ?? uiState.branchName;
|
|
35919
36676
|
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,
|
|
36677
|
+
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;
|
|
36678
|
+
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: [
|
|
36679
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Spinner, {}),
|
|
35923
36680
|
" ",
|
|
35924
36681
|
configInitMessage
|
|
35925
|
-
] }) : uiState.startupIdeConnectionStatus.state === "connecting" ? /* @__PURE__ */ (0,
|
|
35926
|
-
/* @__PURE__ */ (0,
|
|
36682
|
+
] }) : uiState.startupIdeConnectionStatus.state === "connecting" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
36683
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Spinner, {}),
|
|
35927
36684
|
" ",
|
|
35928
36685
|
t("IDE connecting... context may be unavailable")
|
|
35929
|
-
] }) : uiState.startupIdeConnectionStatus.state === "failed" ? /* @__PURE__ */ (0,
|
|
36686
|
+
] }) : uiState.startupIdeConnectionStatus.state === "failed" ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Text, { color: theme.status.warning, children: t("IDE connection unavailable: {{message}}", {
|
|
35930
36687
|
message: uiState.startupIdeConnectionStatus.message
|
|
35931
36688
|
}) }) : null;
|
|
35932
36689
|
const showStatusLine = statusLineLines.length > 0 && !uiState.ctrlCPressedOnce && !uiState.ctrlDPressedOnce;
|
|
35933
36690
|
if (transientNotice) {
|
|
35934
|
-
return /* @__PURE__ */ (0,
|
|
36691
|
+
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
36692
|
}
|
|
35936
|
-
return /* @__PURE__ */ (0,
|
|
36693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
|
|
35937
36694
|
Box_default,
|
|
35938
36695
|
{
|
|
35939
36696
|
ref: containerRef,
|
|
@@ -35941,7 +36698,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35941
36698
|
paddingX: sideMargin(tier),
|
|
35942
36699
|
justifyContent: "space-between",
|
|
35943
36700
|
children: [
|
|
35944
|
-
/* @__PURE__ */ (0,
|
|
36701
|
+
/* @__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
36702
|
ModeZone,
|
|
35946
36703
|
{
|
|
35947
36704
|
tier,
|
|
@@ -35953,10 +36710,10 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35953
36710
|
summaryMode: displayMode === "summary"
|
|
35954
36711
|
}
|
|
35955
36712
|
) }),
|
|
35956
|
-
atLeast(tier, "medium") && /* @__PURE__ */ (0,
|
|
36713
|
+
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
36714
|
showStatusLine ? (
|
|
35958
36715
|
// A custom status line replaces the usage zone and takes the room left.
|
|
35959
|
-
/* @__PURE__ */ (0,
|
|
36716
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
35960
36717
|
Box_default,
|
|
35961
36718
|
{
|
|
35962
36719
|
ref: statusLineRef,
|
|
@@ -35967,7 +36724,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35967
36724
|
alignItems: "flex-end",
|
|
35968
36725
|
maxHeight: MAX_STATUS_LINES,
|
|
35969
36726
|
overflow: "hidden",
|
|
35970
|
-
children: /* @__PURE__ */ (0,
|
|
36727
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
35971
36728
|
Text,
|
|
35972
36729
|
{
|
|
35973
36730
|
color: respectUserColors ? void 0 : useThemeColors ? theme.text.accent : void 0,
|
|
@@ -35978,7 +36735,7 @@ var Footer = /* @__PURE__ */ __name(({ containerRef }) => {
|
|
|
35978
36735
|
)
|
|
35979
36736
|
}
|
|
35980
36737
|
)
|
|
35981
|
-
) : /* @__PURE__ */ (0,
|
|
36738
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Box_default, { flexShrink: 0, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
35982
36739
|
UsageZone,
|
|
35983
36740
|
{
|
|
35984
36741
|
tier,
|
|
@@ -36030,7 +36787,7 @@ __name(getActiveSkill, "getActiveSkill");
|
|
|
36030
36787
|
// packages/cli/src/ui/components/background-view/BackgroundTasksPill.tsx
|
|
36031
36788
|
init_esbuild_shims();
|
|
36032
36789
|
var import_react118 = __toESM(require_react(), 1);
|
|
36033
|
-
var
|
|
36790
|
+
var import_jsx_runtime124 = __toESM(require_jsx_runtime(), 1);
|
|
36034
36791
|
var KIND_NAMES = {
|
|
36035
36792
|
agent: { singular: "local agent", plural: "local agents" },
|
|
36036
36793
|
shell: { singular: "shell", plural: "shells" },
|
|
@@ -36111,21 +36868,21 @@ var BackgroundTasksPill = /* @__PURE__ */ __name(() => {
|
|
|
36111
36868
|
);
|
|
36112
36869
|
const needsApproval = hasPendingApproval(entries);
|
|
36113
36870
|
const largeWorkflow = hasLargeWorkflow(entries);
|
|
36114
|
-
return /* @__PURE__ */ (0,
|
|
36115
|
-
label && /* @__PURE__ */ (0,
|
|
36116
|
-
/* @__PURE__ */ (0,
|
|
36117
|
-
/* @__PURE__ */ (0,
|
|
36871
|
+
return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
|
|
36872
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
|
|
36873
|
+
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: " \xB7 " }),
|
|
36874
|
+
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { inverse: pillFocused && monitoring === 0, wrap: "truncate", children: label })
|
|
36118
36875
|
] }),
|
|
36119
|
-
pillFocused && /* @__PURE__ */ (0,
|
|
36120
|
-
needsApproval && /* @__PURE__ */ (0,
|
|
36121
|
-
largeWorkflow && /* @__PURE__ */ (0,
|
|
36876
|
+
pillFocused && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.text.secondary, wrap: "truncate", children: ` ${t("enter open \xB7 \u2191 history \xB7 esc back")}` }),
|
|
36877
|
+
needsApproval && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("needs approval")}` }),
|
|
36878
|
+
largeWorkflow && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Text, { color: theme.status.warning, wrap: "truncate", children: ` \u26A0 ${t("Large workflow")}` })
|
|
36122
36879
|
] });
|
|
36123
36880
|
}, "BackgroundTasksPill");
|
|
36124
36881
|
|
|
36125
36882
|
// packages/cli/src/ui/components/GoalPill.tsx
|
|
36126
36883
|
init_esbuild_shims();
|
|
36127
36884
|
var import_react119 = __toESM(require_react(), 1);
|
|
36128
|
-
var
|
|
36885
|
+
var import_jsx_runtime125 = __toESM(require_jsx_runtime(), 1);
|
|
36129
36886
|
var ELAPSED_REFRESH_MS = 1e3;
|
|
36130
36887
|
function formatSpend(goal) {
|
|
36131
36888
|
if (goal.tokensUsed <= 0) return "";
|
|
@@ -36229,19 +36986,19 @@ var GoalPill = /* @__PURE__ */ __name(({ snapshot }) => {
|
|
|
36229
36986
|
const spend = formatSpend(goal);
|
|
36230
36987
|
const detail = [elapsed, spend].filter(Boolean).join(" \xB7 ");
|
|
36231
36988
|
const suffix = detail ? ` (${detail})` : "";
|
|
36232
|
-
return /* @__PURE__ */ (0,
|
|
36989
|
+
return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(Text, { color: visible.color, children: [
|
|
36233
36990
|
visible.icon,
|
|
36234
36991
|
" /goal ",
|
|
36235
36992
|
visible.label,
|
|
36236
36993
|
suffix,
|
|
36237
|
-
goal.status === "blocked" && /* @__PURE__ */ (0,
|
|
36994
|
+
goal.status === "blocked" && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Text, { color: extendedTheme.text.muted, children: " \xB7 /goal clear" })
|
|
36238
36995
|
] });
|
|
36239
36996
|
}, "GoalPill");
|
|
36240
36997
|
|
|
36241
36998
|
// packages/cli/src/ui/components/CronPill.tsx
|
|
36242
36999
|
init_esbuild_shims();
|
|
36243
37000
|
var import_react120 = __toESM(require_react(), 1);
|
|
36244
|
-
var
|
|
37001
|
+
var import_jsx_runtime126 = __toESM(require_jsx_runtime(), 1);
|
|
36245
37002
|
var POLL_INTERVAL_MS = 1e3;
|
|
36246
37003
|
function getScheduledTaskCount(config) {
|
|
36247
37004
|
if (!config?.isCronEnabled?.()) return 0;
|
|
@@ -36266,7 +37023,7 @@ __name(useFooterCronTaskCount, "useFooterCronTaskCount");
|
|
|
36266
37023
|
var CronPill = /* @__PURE__ */ __name(({ count }) => {
|
|
36267
37024
|
if (count <= 0) return null;
|
|
36268
37025
|
const noun = count === 1 ? "scheduled task" : "scheduled tasks";
|
|
36269
|
-
return /* @__PURE__ */ (0,
|
|
37026
|
+
return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(Text, { color: theme.text.accent, children: [
|
|
36270
37027
|
ICON.BULLSEYE,
|
|
36271
37028
|
" ",
|
|
36272
37029
|
count,
|
|
@@ -36276,7 +37033,7 @@ var CronPill = /* @__PURE__ */ __name(({ count }) => {
|
|
|
36276
37033
|
}, "CronPill");
|
|
36277
37034
|
|
|
36278
37035
|
// packages/cli/src/ui/components/ActivityLine.tsx
|
|
36279
|
-
var
|
|
37036
|
+
var import_jsx_runtime127 = __toESM(require_jsx_runtime(), 1);
|
|
36280
37037
|
function remoteFooterSnapshot(status) {
|
|
36281
37038
|
if (!status) return null;
|
|
36282
37039
|
if (status.active) return status.snapshot;
|
|
@@ -36295,19 +37052,19 @@ function planProgress(todos) {
|
|
|
36295
37052
|
__name(planProgress, "planProgress");
|
|
36296
37053
|
var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, monitoringFocused = false }) => {
|
|
36297
37054
|
const wide = atLeast(tier, "compact");
|
|
36298
|
-
return /* @__PURE__ */ (0,
|
|
37055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { wrap: "truncate", children: [
|
|
36299
37056
|
CATEGORIES.map(([category, label], i) => {
|
|
36300
37057
|
const on = category === active;
|
|
36301
|
-
return /* @__PURE__ */ (0,
|
|
37058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { children: [
|
|
36302
37059
|
i > 0 && (wide ? " " : " "),
|
|
36303
|
-
/* @__PURE__ */ (0,
|
|
37060
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36304
37061
|
Text,
|
|
36305
37062
|
{
|
|
36306
37063
|
color: on ? extendedTheme.activity[category] : extendedTheme.ui.separator,
|
|
36307
37064
|
children: glyphs().dot
|
|
36308
37065
|
}
|
|
36309
37066
|
),
|
|
36310
|
-
(on || wide) && /* @__PURE__ */ (0,
|
|
37067
|
+
(on || wide) && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36311
37068
|
Text,
|
|
36312
37069
|
{
|
|
36313
37070
|
color: on ? theme.text.primary : extendedTheme.text.muted,
|
|
@@ -36317,10 +37074,10 @@ var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, moni
|
|
|
36317
37074
|
)
|
|
36318
37075
|
] }, category);
|
|
36319
37076
|
}),
|
|
36320
|
-
monitoring > 0 && /* @__PURE__ */ (0,
|
|
37077
|
+
monitoring > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Text, { children: [
|
|
36321
37078
|
wide ? " " : " ",
|
|
36322
|
-
/* @__PURE__ */ (0,
|
|
36323
|
-
/* @__PURE__ */ (0,
|
|
37079
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.brandSoft, children: glyphs().dot }),
|
|
37080
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36324
37081
|
Text,
|
|
36325
37082
|
{
|
|
36326
37083
|
color: extendedTheme.ui.brandSoft,
|
|
@@ -36332,7 +37089,7 @@ var ActivityChips = /* @__PURE__ */ __name(({ tier, active, monitoring = 0, moni
|
|
|
36332
37089
|
] })
|
|
36333
37090
|
] });
|
|
36334
37091
|
}, "ActivityChips");
|
|
36335
|
-
var Sep2 = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0,
|
|
37092
|
+
var Sep2 = /* @__PURE__ */ __name(() => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.separator, children: " \xB7 " }), "Sep");
|
|
36336
37093
|
var ActivityLine = /* @__PURE__ */ __name(() => {
|
|
36337
37094
|
const uiState = useUIState();
|
|
36338
37095
|
const remoteSnapshot = remoteFooterSnapshot(uiState.remoteStatus);
|
|
@@ -36353,14 +37110,14 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
|
|
|
36353
37110
|
uiState.turnStartHistoryIndex
|
|
36354
37111
|
) : null;
|
|
36355
37112
|
const reviewCount = uiState.isSkillReviewDialogOpen ? 0 : uiState.skillReviewPending?.skills.length ?? 0;
|
|
36356
|
-
return /* @__PURE__ */ (0,
|
|
37113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
|
|
36357
37114
|
Box_default,
|
|
36358
37115
|
{
|
|
36359
37116
|
width: "100%",
|
|
36360
37117
|
paddingX: sideMargin(tier),
|
|
36361
37118
|
justifyContent: "space-between",
|
|
36362
37119
|
children: [
|
|
36363
|
-
/* @__PURE__ */ (0,
|
|
37120
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Box_default, { flexShrink: 1, minWidth: 0, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36364
37121
|
ActivityChips,
|
|
36365
37122
|
{
|
|
36366
37123
|
tier,
|
|
@@ -36369,38 +37126,38 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
|
|
|
36369
37126
|
monitoringFocused: pillFocused && monitoring > 0
|
|
36370
37127
|
}
|
|
36371
37128
|
) }),
|
|
36372
|
-
/* @__PURE__ */ (0,
|
|
36373
|
-
/* @__PURE__ */ (0,
|
|
36374
|
-
plan && /* @__PURE__ */ (0,
|
|
36375
|
-
/* @__PURE__ */ (0,
|
|
37129
|
+
/* @__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: [
|
|
37130
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(BackgroundTasksPill, {}),
|
|
37131
|
+
plan && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37132
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
36376
37133
|
`${t("plan")} `,
|
|
36377
|
-
/* @__PURE__ */ (0,
|
|
37134
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.primary, bold: true, children: `${plan.done}/${plan.total}` })
|
|
36378
37135
|
] }),
|
|
36379
|
-
skill && /* @__PURE__ */ (0,
|
|
36380
|
-
/* @__PURE__ */ (0,
|
|
36381
|
-
/* @__PURE__ */ (0,
|
|
37136
|
+
skill && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37137
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37138
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: extendedTheme.ui.brandSoft, bold: true, children: `${glyphs().dot} ${skill}` })
|
|
36382
37139
|
] }),
|
|
36383
|
-
isLiveGoalSnapshot(goal) && /* @__PURE__ */ (0,
|
|
36384
|
-
/* @__PURE__ */ (0,
|
|
36385
|
-
/* @__PURE__ */ (0,
|
|
37140
|
+
isLiveGoalSnapshot(goal) && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37141
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37142
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(GoalPill, { snapshot: goal })
|
|
36386
37143
|
] }),
|
|
36387
|
-
cronCount > 0 && /* @__PURE__ */ (0,
|
|
36388
|
-
/* @__PURE__ */ (0,
|
|
36389
|
-
/* @__PURE__ */ (0,
|
|
37144
|
+
cronCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37145
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37146
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(CronPill, { count: cronCount })
|
|
36390
37147
|
] }),
|
|
36391
|
-
reviewCount > 0 && /* @__PURE__ */ (0,
|
|
36392
|
-
/* @__PURE__ */ (0,
|
|
36393
|
-
/* @__PURE__ */ (0,
|
|
37148
|
+
reviewCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37149
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37150
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.status.warning, children: t("{{count}} skill(s) pending review", {
|
|
36394
37151
|
count: String(reviewCount)
|
|
36395
37152
|
}) })
|
|
36396
37153
|
] }),
|
|
36397
|
-
uiState.workflowKeywordActive && /* @__PURE__ */ (0,
|
|
36398
|
-
/* @__PURE__ */ (0,
|
|
36399
|
-
/* @__PURE__ */ (0,
|
|
37154
|
+
uiState.workflowKeywordActive && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37155
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37156
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Text, { color: theme.text.accent, children: t("workflow active") })
|
|
36400
37157
|
] }),
|
|
36401
|
-
remoteSnapshot && /* @__PURE__ */ (0,
|
|
36402
|
-
/* @__PURE__ */ (0,
|
|
36403
|
-
/* @__PURE__ */ (0,
|
|
37158
|
+
remoteSnapshot && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
|
|
37159
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Sep2, {}),
|
|
37160
|
+
/* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
|
|
36404
37161
|
Text,
|
|
36405
37162
|
{
|
|
36406
37163
|
color: remoteSnapshot.state === "online" ? extendedTheme.ui.brandSoft : theme.status.warning,
|
|
@@ -36416,7 +37173,7 @@ var ActivityLine = /* @__PURE__ */ __name(() => {
|
|
|
36416
37173
|
|
|
36417
37174
|
// packages/cli/src/ui/components/KeyboardShortcuts.tsx
|
|
36418
37175
|
init_esbuild_shims();
|
|
36419
|
-
var
|
|
37176
|
+
var import_jsx_runtime128 = __toESM(require_jsx_runtime(), 1);
|
|
36420
37177
|
var getNewlineKey = /* @__PURE__ */ __name(() => process.platform === "win32" ? "ctrl+enter" : "ctrl+j", "getNewlineKey");
|
|
36421
37178
|
var getPasteKey = /* @__PURE__ */ __name(() => {
|
|
36422
37179
|
if (process.platform === "win32") return "alt+v";
|
|
@@ -36442,8 +37199,8 @@ var getShortcuts = /* @__PURE__ */ __name(() => [
|
|
|
36442
37199
|
{ key: getPasteKey(), description: t("to paste images") },
|
|
36443
37200
|
{ key: getExternalEditorKey(), description: t("for external editor") }
|
|
36444
37201
|
], "getShortcuts");
|
|
36445
|
-
var ShortcutItem = /* @__PURE__ */ __name(({ shortcut }) => /* @__PURE__ */ (0,
|
|
36446
|
-
/* @__PURE__ */ (0,
|
|
37202
|
+
var ShortcutItem = /* @__PURE__ */ __name(({ shortcut }) => /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
37203
|
+
/* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Text, { color: theme.text.accent, children: shortcut.key }),
|
|
36447
37204
|
" ",
|
|
36448
37205
|
shortcut.description
|
|
36449
37206
|
] }), "ShortcutItem");
|
|
@@ -36484,18 +37241,18 @@ var KeyboardShortcuts = /* @__PURE__ */ __name(() => {
|
|
|
36484
37241
|
columns.push(shortcuts.slice(startIndex, startIndex + count));
|
|
36485
37242
|
startIndex += count;
|
|
36486
37243
|
}
|
|
36487
|
-
return /* @__PURE__ */ (0,
|
|
37244
|
+
return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
36488
37245
|
Box_default,
|
|
36489
37246
|
{
|
|
36490
37247
|
flexDirection: "row",
|
|
36491
37248
|
marginLeft: MARGIN_LEFT,
|
|
36492
37249
|
marginRight: MARGIN_RIGHT,
|
|
36493
|
-
children: columns.map((column, colIndex) => /* @__PURE__ */ (0,
|
|
37250
|
+
children: columns.map((column, colIndex) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
|
|
36494
37251
|
Box_default,
|
|
36495
37252
|
{
|
|
36496
37253
|
flexDirection: "column",
|
|
36497
37254
|
marginRight: colIndex < numColumns - 1 ? COLUMN_GAP : 0,
|
|
36498
|
-
children: column.map((shortcut) => /* @__PURE__ */ (0,
|
|
37255
|
+
children: column.map((shortcut) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ShortcutItem, { shortcut }, shortcut.key))
|
|
36499
37256
|
},
|
|
36500
37257
|
colIndex
|
|
36501
37258
|
))
|
|
@@ -36504,7 +37261,7 @@ var KeyboardShortcuts = /* @__PURE__ */ __name(() => {
|
|
|
36504
37261
|
}, "KeyboardShortcuts");
|
|
36505
37262
|
|
|
36506
37263
|
// packages/cli/src/ui/components/Composer.tsx
|
|
36507
|
-
var
|
|
37264
|
+
var import_jsx_runtime129 = __toESM(require_jsx_runtime(), 1);
|
|
36508
37265
|
var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
|
|
36509
37266
|
const config = useConfig();
|
|
36510
37267
|
const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
|
|
@@ -36533,8 +37290,8 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
|
|
|
36533
37290
|
},
|
|
36534
37291
|
[uiActions]
|
|
36535
37292
|
);
|
|
36536
|
-
return /* @__PURE__ */ (0,
|
|
36537
|
-
!uiState.useTerminalBuffer && !uiState.embeddedShellFocused && !suppressBottomLoadingIndicator && /* @__PURE__ */ (0,
|
|
37293
|
+
return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, children: [
|
|
37294
|
+
!uiState.useTerminalBuffer && !uiState.embeddedShellFocused && !suppressBottomLoadingIndicator && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
36538
37295
|
LiveLoadingIndicator,
|
|
36539
37296
|
{
|
|
36540
37297
|
currentLoadingPhrase: config.getAccessibility()?.enableLoadingPhrases === false ? void 0 : uiState.currentLoadingPhrase,
|
|
@@ -36548,22 +37305,22 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
|
|
|
36548
37305
|
isReceivingContent
|
|
36549
37306
|
}
|
|
36550
37307
|
),
|
|
36551
|
-
!uiState.useTerminalBuffer && !uiState.embeddedShellFocused && suppressBottomLoadingIndicator && /* @__PURE__ */ (0,
|
|
37308
|
+
!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
37309
|
"(",
|
|
36553
37310
|
t("Esc to cancel"),
|
|
36554
37311
|
")"
|
|
36555
37312
|
] }) }),
|
|
36556
|
-
!uiState.useTerminalBuffer && /* @__PURE__ */ (0,
|
|
37313
|
+
!uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
36557
37314
|
Box_default,
|
|
36558
37315
|
{
|
|
36559
37316
|
marginTop: uiState.messageQueue.length > 0 ? 1 : 0,
|
|
36560
37317
|
paddingLeft: 2,
|
|
36561
|
-
children: /* @__PURE__ */ (0,
|
|
37318
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(QueuedMessageDisplay, { messageQueue: uiState.messageQueue })
|
|
36562
37319
|
}
|
|
36563
37320
|
),
|
|
36564
|
-
uiState.isFeedbackDialogOpen && /* @__PURE__ */ (0,
|
|
36565
|
-
uiState.isInputActive && !showSuggestions && /* @__PURE__ */ (0,
|
|
36566
|
-
uiState.isInputActive && /* @__PURE__ */ (0,
|
|
37321
|
+
uiState.isFeedbackDialogOpen && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(FeedbackDialog, {}),
|
|
37322
|
+
uiState.isInputActive && !showSuggestions && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(ActivityLine, {}),
|
|
37323
|
+
uiState.isInputActive && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
|
|
36567
37324
|
InputPrompt,
|
|
36568
37325
|
{
|
|
36569
37326
|
buffer: uiState.buffer,
|
|
@@ -36595,18 +37352,18 @@ var Composer = /* @__PURE__ */ __name(({ footerRef, inputLinesRef }) => {
|
|
|
36595
37352
|
voiceMicWarnedStatusRef: uiState.voiceMicWarnedStatusRef
|
|
36596
37353
|
}
|
|
36597
37354
|
),
|
|
36598
|
-
(uiState.isInputActive || !uiState.isConfigInitialized) && !showSuggestions && (showShortcuts ? /* @__PURE__ */ (0,
|
|
37355
|
+
(uiState.isInputActive || !uiState.isConfigInitialized) && !showSuggestions && (showShortcuts ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(KeyboardShortcuts, {}) : !isScreenReaderEnabled && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Footer, { containerRef: footerRef }))
|
|
36599
37356
|
] });
|
|
36600
37357
|
}, "Composer");
|
|
36601
37358
|
|
|
36602
37359
|
// packages/cli/src/ui/components/ExitWarning.tsx
|
|
36603
37360
|
init_esbuild_shims();
|
|
36604
|
-
var
|
|
37361
|
+
var import_jsx_runtime130 = __toESM(require_jsx_runtime(), 1);
|
|
36605
37362
|
var ExitWarning = /* @__PURE__ */ __name(() => {
|
|
36606
37363
|
const uiState = useUIState();
|
|
36607
|
-
return /* @__PURE__ */ (0,
|
|
36608
|
-
uiState.dialogsVisible && uiState.ctrlCPressedOnce && /* @__PURE__ */ (0,
|
|
36609
|
-
uiState.dialogsVisible && uiState.ctrlDPressedOnce && /* @__PURE__ */ (0,
|
|
37364
|
+
return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_jsx_runtime130.Fragment, { children: [
|
|
37365
|
+
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." }) }),
|
|
37366
|
+
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
37367
|
] });
|
|
36611
37368
|
}, "ExitWarning");
|
|
36612
37369
|
|
|
@@ -36784,7 +37541,7 @@ function getStickyTodoMaxVisibleItemsForMode(terminalHeight, useTerminalBuffer)
|
|
|
36784
37541
|
__name(getStickyTodoMaxVisibleItemsForMode, "getStickyTodoMaxVisibleItemsForMode");
|
|
36785
37542
|
|
|
36786
37543
|
// packages/cli/src/ui/components/StickyTodoList.tsx
|
|
36787
|
-
var
|
|
37544
|
+
var import_jsx_runtime131 = __toESM(require_jsx_runtime(), 1);
|
|
36788
37545
|
var STATUS_ICONS = {
|
|
36789
37546
|
pending: ICON.CIRCLE_EMPTY,
|
|
36790
37547
|
in_progress: ICON.CIRCLE_LEFT_HALF,
|
|
@@ -36827,7 +37584,7 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
|
|
|
36827
37584
|
)
|
|
36828
37585
|
) + 1;
|
|
36829
37586
|
const contentColumnWidth = Math.max(1, width - numberColumnWidth - 6);
|
|
36830
|
-
return /* @__PURE__ */ (0,
|
|
37587
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(
|
|
36831
37588
|
Box_default,
|
|
36832
37589
|
{
|
|
36833
37590
|
marginX: 2,
|
|
@@ -36837,14 +37594,14 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
|
|
|
36837
37594
|
borderColor: theme.border.default,
|
|
36838
37595
|
paddingX: 1,
|
|
36839
37596
|
children: [
|
|
36840
|
-
/* @__PURE__ */ (0,
|
|
37597
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, bold: true, children: t("Current tasks") }),
|
|
36841
37598
|
visibleTodos.map((todo, index) => {
|
|
36842
37599
|
const todoNumber = todoNumberById.get(todo.id) ?? `${index + 1}.`;
|
|
36843
37600
|
const itemColor = todo.status === "in_progress" ? Colors.AccentGreen : Colors.Foreground;
|
|
36844
|
-
return /* @__PURE__ */ (0,
|
|
36845
|
-
/* @__PURE__ */ (0,
|
|
36846
|
-
/* @__PURE__ */ (0,
|
|
36847
|
-
/* @__PURE__ */ (0,
|
|
37601
|
+
return /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
|
|
37602
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: numberColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Text, { color: theme.text.secondary, children: todoNumber }) }),
|
|
37603
|
+
/* @__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] }) }),
|
|
37604
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: contentColumnWidth, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
|
|
36848
37605
|
Text,
|
|
36849
37606
|
{
|
|
36850
37607
|
color: itemColor,
|
|
@@ -36855,10 +37612,10 @@ var StickyTodoListComponent = /* @__PURE__ */ __name(({
|
|
|
36855
37612
|
) })
|
|
36856
37613
|
] }, todo.id);
|
|
36857
37614
|
}),
|
|
36858
|
-
hiddenTodoCount > 0 && /* @__PURE__ */ (0,
|
|
36859
|
-
/* @__PURE__ */ (0,
|
|
36860
|
-
/* @__PURE__ */ (0,
|
|
36861
|
-
/* @__PURE__ */ (0,
|
|
37615
|
+
hiddenTodoCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Box_default, { flexDirection: "row", height: 1, children: [
|
|
37616
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: numberColumnWidth }),
|
|
37617
|
+
/* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Box_default, { width: 2 }),
|
|
37618
|
+
/* @__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
37619
|
count: String(hiddenTodoCount)
|
|
36863
37620
|
}) }) })
|
|
36864
37621
|
] })
|
|
@@ -36872,9 +37629,11 @@ var StickyTodoList = (0, import_react122.memo)(
|
|
|
36872
37629
|
);
|
|
36873
37630
|
|
|
36874
37631
|
// packages/cli/src/ui/layouts/ScreenReaderAppLayout.tsx
|
|
36875
|
-
var
|
|
37632
|
+
var import_jsx_runtime132 = __toESM(require_jsx_runtime(), 1);
|
|
36876
37633
|
var ScreenReaderAppLayout = /* @__PURE__ */ __name(() => {
|
|
36877
37634
|
const uiState = useUIState();
|
|
37635
|
+
const { dialogOpen: backgroundDialogOpen } = useBackgroundTaskViewState();
|
|
37636
|
+
const backgroundMargin = sideMargin(getLayoutTier(uiState.terminalWidth));
|
|
36878
37637
|
const stickyTodoWidth = Math.min(uiState.mainAreaWidth, 64);
|
|
36879
37638
|
const stickyTodoMaxVisibleItems = getStickyTodoMaxVisibleItemsForMode(
|
|
36880
37639
|
uiState.terminalHeight,
|
|
@@ -36886,47 +37645,55 @@ var ScreenReaderAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
36886
37645
|
);
|
|
36887
37646
|
const dialogHeight = uiState.constrainHeight ? dialogMaxHeight : void 0;
|
|
36888
37647
|
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,
|
|
37648
|
+
return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(
|
|
37649
|
+
Box_default,
|
|
37650
|
+
{
|
|
37651
|
+
flexDirection: "column",
|
|
37652
|
+
width: backgroundDialogOpen ? uiState.terminalWidth : "90%",
|
|
37653
|
+
height: "100%",
|
|
37654
|
+
children: [
|
|
37655
|
+
!uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
|
|
37656
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Notifications, {}),
|
|
37657
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Footer, {}),
|
|
37658
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { flexGrow: 1, overflow: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(MainContent, {}) }),
|
|
37659
|
+
uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37660
|
+
Box_default,
|
|
36904
37661
|
{
|
|
36905
|
-
|
|
36906
|
-
|
|
37662
|
+
marginX: backgroundDialogOpen ? backgroundMargin : 2,
|
|
37663
|
+
flexDirection: "column",
|
|
37664
|
+
width: backgroundDialogOpen ? Math.max(1, uiState.terminalWidth - backgroundMargin * 2) : uiState.mainAreaWidth,
|
|
37665
|
+
height: dialogHeight,
|
|
37666
|
+
overflow: uiState.constrainHeight ? "hidden" : void 0,
|
|
37667
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37668
|
+
DialogManager,
|
|
37669
|
+
{
|
|
37670
|
+
terminalWidth: uiState.terminalWidth,
|
|
37671
|
+
addItem: uiState.historyManager.addItem
|
|
37672
|
+
}
|
|
37673
|
+
)
|
|
36907
37674
|
}
|
|
36908
|
-
)
|
|
36909
|
-
|
|
36910
|
-
|
|
36911
|
-
|
|
36912
|
-
|
|
36913
|
-
|
|
36914
|
-
|
|
36915
|
-
|
|
36916
|
-
|
|
36917
|
-
|
|
36918
|
-
|
|
36919
|
-
|
|
36920
|
-
|
|
36921
|
-
|
|
36922
|
-
|
|
36923
|
-
|
|
36924
|
-
|
|
36925
|
-
|
|
36926
|
-
|
|
36927
|
-
|
|
36928
|
-
|
|
36929
|
-
|
|
37675
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_jsx_runtime132.Fragment, { children: [
|
|
37676
|
+
shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37677
|
+
StickyTodoList,
|
|
37678
|
+
{
|
|
37679
|
+
todos: uiState.stickyTodos,
|
|
37680
|
+
width: stickyTodoWidth,
|
|
37681
|
+
maxVisibleItems: stickyTodoMaxVisibleItems
|
|
37682
|
+
}
|
|
37683
|
+
),
|
|
37684
|
+
uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
|
|
37685
|
+
BtwMessage,
|
|
37686
|
+
{
|
|
37687
|
+
btw: uiState.btwItem.btw,
|
|
37688
|
+
containerWidth: uiState.mainAreaWidth
|
|
37689
|
+
}
|
|
37690
|
+
) }),
|
|
37691
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Composer, {})
|
|
37692
|
+
] }),
|
|
37693
|
+
/* @__PURE__ */ (0, import_jsx_runtime132.jsx)(ExitWarning, {})
|
|
37694
|
+
]
|
|
37695
|
+
}
|
|
37696
|
+
);
|
|
36930
37697
|
}, "ScreenReaderAppLayout");
|
|
36931
37698
|
|
|
36932
37699
|
// packages/cli/src/ui/layouts/DefaultAppLayout.tsx
|
|
@@ -36941,7 +37708,7 @@ var ScrollContext = (0, import_react123.createContext)(null);
|
|
|
36941
37708
|
// packages/cli/src/ui/components/agent-view/AgentTabBar.tsx
|
|
36942
37709
|
init_esbuild_shims();
|
|
36943
37710
|
var import_react124 = __toESM(require_react(), 1);
|
|
36944
|
-
var
|
|
37711
|
+
var import_jsx_runtime133 = __toESM(require_jsx_runtime(), 1);
|
|
36945
37712
|
function statusIndicator(agent) {
|
|
36946
37713
|
const status = agent.interactiveAgent.getStatus();
|
|
36947
37714
|
switch (status) {
|
|
@@ -37014,8 +37781,8 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
|
|
|
37014
37781
|
}, [agents, forceRender]);
|
|
37015
37782
|
const isFocused = agentTabBarFocused;
|
|
37016
37783
|
const hint = isFocused ? "\u2190/\u2192 switch \u2191 input" : "\u2193 tabs";
|
|
37017
|
-
return /* @__PURE__ */ (0,
|
|
37018
|
-
/* @__PURE__ */ (0,
|
|
37784
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Box_default, { flexDirection: "row", paddingX: 1, children: [
|
|
37785
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Box_default, { marginRight: 1, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
37019
37786
|
Text,
|
|
37020
37787
|
{
|
|
37021
37788
|
bold: activeView === "main",
|
|
@@ -37025,12 +37792,12 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
|
|
|
37025
37792
|
children: " Main "
|
|
37026
37793
|
}
|
|
37027
37794
|
) }),
|
|
37028
|
-
/* @__PURE__ */ (0,
|
|
37795
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { dimColor: !isFocused, color: theme.border.default, children: "\u2502" }),
|
|
37029
37796
|
[...agents.entries()].map(([agentId, agent]) => {
|
|
37030
37797
|
const isActive = activeView === agentId;
|
|
37031
37798
|
const { symbol, color: indicatorColor } = statusIndicator(agent);
|
|
37032
|
-
return /* @__PURE__ */ (0,
|
|
37033
|
-
/* @__PURE__ */ (0,
|
|
37799
|
+
return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(Box_default, { marginLeft: 1, children: [
|
|
37800
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
|
|
37034
37801
|
Text,
|
|
37035
37802
|
{
|
|
37036
37803
|
bold: isActive,
|
|
@@ -37040,10 +37807,10 @@ var AgentTabBar = /* @__PURE__ */ __name(() => {
|
|
|
37040
37807
|
children: ` ${agent.modelId} `
|
|
37041
37808
|
}
|
|
37042
37809
|
),
|
|
37043
|
-
/* @__PURE__ */ (0,
|
|
37810
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)(Text, { dimColor: !isFocused, color: indicatorColor, children: ` ${symbol}` })
|
|
37044
37811
|
] }, agentId);
|
|
37045
37812
|
}),
|
|
37046
|
-
/* @__PURE__ */ (0,
|
|
37813
|
+
/* @__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
37814
|
] });
|
|
37048
37815
|
}, "AgentTabBar");
|
|
37049
37816
|
|
|
@@ -37165,7 +37932,7 @@ __name(agentMessagesToHistoryItems, "agentMessagesToHistoryItems");
|
|
|
37165
37932
|
|
|
37166
37933
|
// packages/cli/src/ui/components/agent-view/AgentHeader.tsx
|
|
37167
37934
|
init_esbuild_shims();
|
|
37168
|
-
var
|
|
37935
|
+
var import_jsx_runtime134 = __toESM(require_jsx_runtime(), 1);
|
|
37169
37936
|
var AgentHeader = /* @__PURE__ */ __name(({
|
|
37170
37937
|
modelId,
|
|
37171
37938
|
modelName,
|
|
@@ -37176,7 +37943,7 @@ var AgentHeader = /* @__PURE__ */ __name(({
|
|
|
37176
37943
|
const maxPathLen = Math.max(20, terminalWidth - 12);
|
|
37177
37944
|
const displayPath = shortenPath(tildeifyPath(workingDirectory), maxPathLen);
|
|
37178
37945
|
const modelText = modelName && modelName !== modelId ? `${modelId} (${modelName})` : modelId;
|
|
37179
|
-
return /* @__PURE__ */ (0,
|
|
37946
|
+
return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(
|
|
37180
37947
|
Box_default,
|
|
37181
37948
|
{
|
|
37182
37949
|
flexDirection: "column",
|
|
@@ -37186,17 +37953,17 @@ var AgentHeader = /* @__PURE__ */ __name(({
|
|
|
37186
37953
|
borderColor: theme.border.default,
|
|
37187
37954
|
paddingX: 1,
|
|
37188
37955
|
children: [
|
|
37189
|
-
/* @__PURE__ */ (0,
|
|
37190
|
-
/* @__PURE__ */ (0,
|
|
37191
|
-
/* @__PURE__ */ (0,
|
|
37956
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
|
|
37957
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Model: " }),
|
|
37958
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: modelText })
|
|
37192
37959
|
] }),
|
|
37193
|
-
/* @__PURE__ */ (0,
|
|
37194
|
-
/* @__PURE__ */ (0,
|
|
37195
|
-
/* @__PURE__ */ (0,
|
|
37960
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
|
|
37961
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Path: " }),
|
|
37962
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: displayPath })
|
|
37196
37963
|
] }),
|
|
37197
|
-
gitBranch && /* @__PURE__ */ (0,
|
|
37198
|
-
/* @__PURE__ */ (0,
|
|
37199
|
-
/* @__PURE__ */ (0,
|
|
37964
|
+
gitBranch && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(Text, { children: [
|
|
37965
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.secondary, children: "Branch: " }),
|
|
37966
|
+
/* @__PURE__ */ (0, import_jsx_runtime134.jsx)(Text, { color: theme.text.primary, children: gitBranch })
|
|
37200
37967
|
] })
|
|
37201
37968
|
]
|
|
37202
37969
|
}
|
|
@@ -37204,7 +37971,7 @@ var AgentHeader = /* @__PURE__ */ __name(({
|
|
|
37204
37971
|
}, "AgentHeader");
|
|
37205
37972
|
|
|
37206
37973
|
// packages/cli/src/ui/components/agent-view/AgentChatContent.tsx
|
|
37207
|
-
var
|
|
37974
|
+
var import_jsx_runtime135 = __toESM(require_jsx_runtime(), 1);
|
|
37208
37975
|
var AgentChatContent = /* @__PURE__ */ __name(({
|
|
37209
37976
|
core,
|
|
37210
37977
|
interactiveAgent,
|
|
@@ -37320,12 +38087,12 @@ var AgentChatContent = /* @__PURE__ */ __name(({
|
|
|
37320
38087
|
[instanceKey]
|
|
37321
38088
|
);
|
|
37322
38089
|
const agentModelId = core.modelConfig.model ?? "";
|
|
37323
|
-
return /* @__PURE__ */ (0,
|
|
37324
|
-
/* @__PURE__ */ (0,
|
|
38090
|
+
return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(Box_default, { flexDirection: "column", children: [
|
|
38091
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
37325
38092
|
Static,
|
|
37326
38093
|
{
|
|
37327
38094
|
items: [
|
|
37328
|
-
/* @__PURE__ */ (0,
|
|
38095
|
+
/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
37329
38096
|
AgentHeader,
|
|
37330
38097
|
{
|
|
37331
38098
|
modelId: agentModelId,
|
|
@@ -37335,7 +38102,7 @@ var AgentChatContent = /* @__PURE__ */ __name(({
|
|
|
37335
38102
|
},
|
|
37336
38103
|
"agent-header"
|
|
37337
38104
|
),
|
|
37338
|
-
...committedItems.map((item) => /* @__PURE__ */ (0,
|
|
38105
|
+
...committedItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
37339
38106
|
HistoryItemDisplay,
|
|
37340
38107
|
{
|
|
37341
38108
|
item,
|
|
@@ -37352,7 +38119,7 @@ var AgentChatContent = /* @__PURE__ */ __name(({
|
|
|
37352
38119
|
},
|
|
37353
38120
|
`agent-${instanceKey}-${historyRemountKey}`
|
|
37354
38121
|
),
|
|
37355
|
-
pendingItems.map((item) => /* @__PURE__ */ (0,
|
|
38122
|
+
pendingItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
|
|
37356
38123
|
HistoryItemDisplay,
|
|
37357
38124
|
{
|
|
37358
38125
|
item,
|
|
@@ -37367,13 +38134,13 @@ var AgentChatContent = /* @__PURE__ */ __name(({
|
|
|
37367
38134
|
},
|
|
37368
38135
|
item.id
|
|
37369
38136
|
)),
|
|
37370
|
-
isRunning && /* @__PURE__ */ (0,
|
|
38137
|
+
isRunning && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Box_default, { marginX: 2, marginTop: 1, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(RespondingSpinner, {}) })
|
|
37371
38138
|
] });
|
|
37372
38139
|
}, "AgentChatContent");
|
|
37373
|
-
var AgentChatMissing = /* @__PURE__ */ __name(({ label }) => /* @__PURE__ */ (0,
|
|
38140
|
+
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
38141
|
|
|
37375
38142
|
// packages/cli/src/ui/components/agent-view/AgentChatView.tsx
|
|
37376
|
-
var
|
|
38143
|
+
var import_jsx_runtime136 = __toESM(require_jsx_runtime(), 1);
|
|
37377
38144
|
var debugLogger29 = createDebugLogger("AGENT_TAB_RENDER");
|
|
37378
38145
|
var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
|
|
37379
38146
|
const { agents } = useAgentViewState();
|
|
@@ -37382,7 +38149,7 @@ var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37382
38149
|
const interactiveAgent = agent?.interactiveAgent;
|
|
37383
38150
|
const core = interactiveAgent?.getCore();
|
|
37384
38151
|
if (!agent || !interactiveAgent || !core) {
|
|
37385
|
-
return /* @__PURE__ */ (0,
|
|
38152
|
+
return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(AgentChatMissing, { label: `Agent "${agentId}" not found.` });
|
|
37386
38153
|
}
|
|
37387
38154
|
return (
|
|
37388
38155
|
// Non-fatal per-tab containment: the app-level boundary is
|
|
@@ -37392,15 +38159,15 @@ var AgentChatView = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37392
38159
|
// keeping the session and the other tabs alive. Keyed by agentId so
|
|
37393
38160
|
// switching tabs starts from fresh boundary state: one crashed tab
|
|
37394
38161
|
// must not strand every later tab in its fallback.
|
|
37395
|
-
/* @__PURE__ */ (0,
|
|
38162
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
37396
38163
|
ErrorBoundary,
|
|
37397
38164
|
{
|
|
37398
|
-
fallback: (error) => /* @__PURE__ */ (0,
|
|
37399
|
-
/* @__PURE__ */ (0,
|
|
37400
|
-
/* @__PURE__ */ (0,
|
|
37401
|
-
/* @__PURE__ */ (0,
|
|
37402
|
-
/* @__PURE__ */ (0,
|
|
37403
|
-
/* @__PURE__ */ (0,
|
|
38165
|
+
fallback: (error) => /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(Box_default, { flexDirection: "column", paddingX: 1, children: [
|
|
38166
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.status.error, bold: true, children: "Something went wrong while rendering this agent tab." }),
|
|
38167
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, children: sanitizeTerminalText(error.message) }),
|
|
38168
|
+
/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Text, { color: theme.text.secondary, dimColor: true, children: "The session is still running; other tabs are unaffected." }),
|
|
38169
|
+
/* @__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." }),
|
|
38170
|
+
/* @__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
38171
|
] }),
|
|
37405
38172
|
onError: (error, info) => {
|
|
37406
38173
|
setAgentShellFocused(false);
|
|
@@ -37410,7 +38177,7 @@ ${info.componentStack ?? ""}
|
|
|
37410
38177
|
${error.stack ?? ""}`
|
|
37411
38178
|
);
|
|
37412
38179
|
},
|
|
37413
|
-
children: /* @__PURE__ */ (0,
|
|
38180
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
|
|
37414
38181
|
AgentChatContent,
|
|
37415
38182
|
{
|
|
37416
38183
|
core,
|
|
@@ -37434,7 +38201,7 @@ init_esbuild_shims();
|
|
|
37434
38201
|
|
|
37435
38202
|
// packages/cli/src/ui/components/AutoAcceptIndicator.tsx
|
|
37436
38203
|
init_esbuild_shims();
|
|
37437
|
-
var
|
|
38204
|
+
var import_jsx_runtime137 = __toESM(require_jsx_runtime(), 1);
|
|
37438
38205
|
var AutoAcceptIndicator = /* @__PURE__ */ __name(({
|
|
37439
38206
|
approvalMode
|
|
37440
38207
|
}) => {
|
|
@@ -37466,15 +38233,15 @@ var AutoAcceptIndicator = /* @__PURE__ */ __name(({
|
|
|
37466
38233
|
default:
|
|
37467
38234
|
break;
|
|
37468
38235
|
}
|
|
37469
|
-
return /* @__PURE__ */ (0,
|
|
38236
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(Text, { color: textColor, children: [
|
|
37470
38237
|
textContent,
|
|
37471
|
-
subText && /* @__PURE__ */ (0,
|
|
38238
|
+
subText && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Text, { color: theme.text.secondary, children: subText })
|
|
37472
38239
|
] });
|
|
37473
38240
|
}, "AutoAcceptIndicator");
|
|
37474
38241
|
|
|
37475
38242
|
// packages/cli/src/ui/components/ContextUsageDisplay.tsx
|
|
37476
38243
|
init_esbuild_shims();
|
|
37477
|
-
var
|
|
38244
|
+
var import_jsx_runtime138 = __toESM(require_jsx_runtime(), 1);
|
|
37478
38245
|
var ContextUsageDisplay = /* @__PURE__ */ __name(({
|
|
37479
38246
|
promptTokenCount,
|
|
37480
38247
|
terminalWidth,
|
|
@@ -37488,19 +38255,19 @@ var ContextUsageDisplay = /* @__PURE__ */ __name(({
|
|
|
37488
38255
|
const isOverLimit = percentage > 1;
|
|
37489
38256
|
const label = contextUsageLabel(terminalWidth);
|
|
37490
38257
|
if (isOverLimit) {
|
|
37491
|
-
return /* @__PURE__ */ (0,
|
|
38258
|
+
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
38259
|
percentageUsed,
|
|
37493
38260
|
label
|
|
37494
38261
|
] }) });
|
|
37495
38262
|
}
|
|
37496
|
-
return /* @__PURE__ */ (0,
|
|
38263
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(Text, { color: theme.text.secondary, children: [
|
|
37497
38264
|
percentageUsed,
|
|
37498
38265
|
label
|
|
37499
38266
|
] });
|
|
37500
38267
|
}, "ContextUsageDisplay");
|
|
37501
38268
|
|
|
37502
38269
|
// packages/cli/src/ui/components/agent-view/AgentFooter.tsx
|
|
37503
|
-
var
|
|
38270
|
+
var import_jsx_runtime139 = __toESM(require_jsx_runtime(), 1);
|
|
37504
38271
|
var AgentFooter = /* @__PURE__ */ __name(({
|
|
37505
38272
|
approvalMode,
|
|
37506
38273
|
promptTokenCount,
|
|
@@ -37512,7 +38279,7 @@ var AgentFooter = /* @__PURE__ */ __name(({
|
|
|
37512
38279
|
if (!showApproval && !showContext) {
|
|
37513
38280
|
return null;
|
|
37514
38281
|
}
|
|
37515
|
-
return /* @__PURE__ */ (0,
|
|
38282
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
|
|
37516
38283
|
Box_default,
|
|
37517
38284
|
{
|
|
37518
38285
|
justifyContent: "space-between",
|
|
@@ -37520,8 +38287,8 @@ var AgentFooter = /* @__PURE__ */ __name(({
|
|
|
37520
38287
|
flexDirection: "row",
|
|
37521
38288
|
alignItems: "center",
|
|
37522
38289
|
children: [
|
|
37523
|
-
/* @__PURE__ */ (0,
|
|
37524
|
-
/* @__PURE__ */ (0,
|
|
38290
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Box_default, { marginLeft: 2, children: showApproval ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(AutoAcceptIndicator, { approvalMode }) : null }),
|
|
38291
|
+
/* @__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
38292
|
ContextUsageDisplay,
|
|
37526
38293
|
{
|
|
37527
38294
|
promptTokenCount,
|
|
@@ -37535,7 +38302,7 @@ var AgentFooter = /* @__PURE__ */ __name(({
|
|
|
37535
38302
|
}, "AgentFooter");
|
|
37536
38303
|
|
|
37537
38304
|
// packages/cli/src/ui/components/agent-view/AgentComposer.tsx
|
|
37538
|
-
var
|
|
38305
|
+
var import_jsx_runtime140 = __toESM(require_jsx_runtime(), 1);
|
|
37539
38306
|
var EMPTY_MESSAGE_QUEUE2 = [];
|
|
37540
38307
|
var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
37541
38308
|
const {
|
|
@@ -37654,21 +38421,21 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37654
38421
|
}
|
|
37655
38422
|
}, [status, interactiveAgent]);
|
|
37656
38423
|
const inputBorderColor = !isInputActive || agentTabBarFocused ? theme.border.default : extendedTheme.ui.brand;
|
|
37657
|
-
const prefixNode = /* @__PURE__ */ (0,
|
|
38424
|
+
const prefixNode = /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(Text, { color: extendedTheme.ui.brand, children: [
|
|
37658
38425
|
glyphs().prompt,
|
|
37659
38426
|
" "
|
|
37660
38427
|
] });
|
|
37661
|
-
return /* @__PURE__ */ (0,
|
|
37662
|
-
/* @__PURE__ */ (0,
|
|
38428
|
+
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: [
|
|
38429
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
37663
38430
|
LoadingIndicator,
|
|
37664
38431
|
{
|
|
37665
38432
|
currentLoadingPhrase: streamingState === "responding" /* Responding */ ? t("Thinking\u2026") : void 0,
|
|
37666
38433
|
elapsedTime
|
|
37667
38434
|
}
|
|
37668
38435
|
),
|
|
37669
|
-
statusLabel && /* @__PURE__ */ (0,
|
|
37670
|
-
/* @__PURE__ */ (0,
|
|
37671
|
-
/* @__PURE__ */ (0,
|
|
38436
|
+
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 }) }),
|
|
38437
|
+
/* @__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 }) }),
|
|
38438
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
37672
38439
|
BaseTextInput,
|
|
37673
38440
|
{
|
|
37674
38441
|
buffer,
|
|
@@ -37681,7 +38448,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37681
38448
|
isActive: isInputActive && !agentShellFocused
|
|
37682
38449
|
}
|
|
37683
38450
|
),
|
|
37684
|
-
/* @__PURE__ */ (0,
|
|
38451
|
+
/* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
|
|
37685
38452
|
AgentFooter,
|
|
37686
38453
|
{
|
|
37687
38454
|
approvalMode: agentApprovalMode,
|
|
@@ -37696,7 +38463,7 @@ var AgentComposer = /* @__PURE__ */ __name(({ agentId }) => {
|
|
|
37696
38463
|
// packages/cli/src/ui/components/background-view/LiveAgentPanel.tsx
|
|
37697
38464
|
init_esbuild_shims();
|
|
37698
38465
|
var import_react127 = __toESM(require_react(), 1);
|
|
37699
|
-
var
|
|
38466
|
+
var import_jsx_runtime141 = __toESM(require_jsx_runtime(), 1);
|
|
37700
38467
|
var DEFAULT_MAX_ROWS = LIVE_AGENT_PANEL_MAX_ROWS;
|
|
37701
38468
|
var DEFAULT_SUBAGENT_TYPE = DEFAULT_BUILTIN_SUBAGENT_TYPE;
|
|
37702
38469
|
function isAgentEntry(entry) {
|
|
@@ -37814,7 +38581,7 @@ var LiveAgentPanel = /* @__PURE__ */ __name(({
|
|
|
37814
38581
|
}
|
|
37815
38582
|
}, [hasVisibleAgent, livePanelFocused, setLivePanelFocused]);
|
|
37816
38583
|
if (dialogOpen) return null;
|
|
37817
|
-
return /* @__PURE__ */ (0,
|
|
38584
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
37818
38585
|
LiveAgentPanelBody,
|
|
37819
38586
|
{
|
|
37820
38587
|
snapshots: liveAgentSnapshots,
|
|
@@ -37838,19 +38605,19 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
|
|
|
37838
38605
|
const visible = overflow > 0 ? visibleAgentsAsc.slice(-maxRows) : visibleAgentsAsc;
|
|
37839
38606
|
const totalItems = 1 + visible.length;
|
|
37840
38607
|
const clampedIndex = Math.min(selectedIndex, totalItems - 1);
|
|
37841
|
-
return /* @__PURE__ */ (0,
|
|
37842
|
-
/* @__PURE__ */ (0,
|
|
37843
|
-
/* @__PURE__ */ (0,
|
|
37844
|
-
/* @__PURE__ */ (0,
|
|
38608
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { flexDirection: "column", marginTop: 1, width, paddingX: 2, children: [
|
|
38609
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { children: [
|
|
38610
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: focused ? theme.text.accent : theme.text.secondary, children: focused && clampedIndex === 0 ? "\u25B8 " : " " }),
|
|
38611
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { bold: true, color: theme.text.accent, children: "main" })
|
|
37845
38612
|
] }),
|
|
37846
|
-
overflow > 0 && /* @__PURE__ */ (0,
|
|
38613
|
+
overflow > 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
37847
38614
|
Text,
|
|
37848
38615
|
{
|
|
37849
38616
|
color: theme.text.secondary,
|
|
37850
38617
|
children: ` ^ ${overflow} more above (\u2193 to view all)`
|
|
37851
38618
|
}
|
|
37852
38619
|
) }),
|
|
37853
|
-
visible.map((entry, idx) => /* @__PURE__ */ (0,
|
|
38620
|
+
visible.map((entry, idx) => /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
|
|
37854
38621
|
AgentRow,
|
|
37855
38622
|
{
|
|
37856
38623
|
entry,
|
|
@@ -37860,7 +38627,7 @@ var LiveAgentPanelBody = /* @__PURE__ */ __name(({ snapshots, now, maxRows, widt
|
|
|
37860
38627
|
},
|
|
37861
38628
|
entry.agentId
|
|
37862
38629
|
)),
|
|
37863
|
-
focused && /* @__PURE__ */ (0,
|
|
38630
|
+
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
38631
|
] });
|
|
37865
38632
|
}, "LiveAgentPanelBody");
|
|
37866
38633
|
var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) => {
|
|
@@ -37875,33 +38642,33 @@ var AgentRow = /* @__PURE__ */ __name(({ entry, now, selected = false, tree }) =
|
|
|
37875
38642
|
const prefix = selected ? "\u25B8 " : " ";
|
|
37876
38643
|
const treePrefix = treeRowPrefix(entry, tree);
|
|
37877
38644
|
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,
|
|
38645
|
+
return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Box_default, { flexDirection: "row", children: [
|
|
38646
|
+
/* @__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 }) }),
|
|
38647
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Box_default, { flexShrink: 1, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(Text, { wrap: "truncate-end", children: [
|
|
38648
|
+
treePrefix !== "" && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: treePrefix }),
|
|
38649
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: color2, children: `${glyph} ` }),
|
|
38650
|
+
showType && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
|
|
38651
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { bold: true, children: safeSubagentType }),
|
|
38652
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: ": " })
|
|
37886
38653
|
] }),
|
|
37887
|
-
/* @__PURE__ */ (0,
|
|
37888
|
-
activity && /* @__PURE__ */ (0,
|
|
37889
|
-
orphanNote && /* @__PURE__ */ (0,
|
|
38654
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: label }),
|
|
38655
|
+
activity && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: ` (${activity})` }),
|
|
38656
|
+
orphanNote && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(Text, { color: theme.text.secondary, children: orphanNote })
|
|
37890
38657
|
] }) }),
|
|
37891
|
-
/* @__PURE__ */ (0,
|
|
38658
|
+
/* @__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
38659
|
] });
|
|
37893
38660
|
}, "AgentRow");
|
|
37894
38661
|
|
|
37895
38662
|
// packages/cli/src/ui/context-menu/ContextMenuOverlay.tsx
|
|
37896
38663
|
init_esbuild_shims();
|
|
37897
38664
|
var import_react128 = __toESM(require_react(), 1);
|
|
37898
|
-
var
|
|
38665
|
+
var import_jsx_runtime142 = __toESM(require_jsx_runtime(), 1);
|
|
37899
38666
|
var ContextMenuOverlay = /* @__PURE__ */ __name(() => {
|
|
37900
38667
|
const { menu } = useContextMenu();
|
|
37901
38668
|
if (!menu) {
|
|
37902
38669
|
return null;
|
|
37903
38670
|
}
|
|
37904
|
-
return /* @__PURE__ */ (0,
|
|
38671
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ActiveContextMenu, {});
|
|
37905
38672
|
}, "ContextMenuOverlay");
|
|
37906
38673
|
var ActiveContextMenu = /* @__PURE__ */ __name(() => {
|
|
37907
38674
|
const { menu, selectedIndex, closeMenu, setSelectedIndex, executeIndex } = useContextMenu();
|
|
@@ -37935,7 +38702,7 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
|
|
|
37935
38702
|
(max, item) => Math.max(max, item.label.length),
|
|
37936
38703
|
0
|
|
37937
38704
|
);
|
|
37938
|
-
return /* @__PURE__ */ (0,
|
|
38705
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
37939
38706
|
Box_default,
|
|
37940
38707
|
{
|
|
37941
38708
|
position: "absolute",
|
|
@@ -37947,7 +38714,7 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
|
|
|
37947
38714
|
paddingX: 0,
|
|
37948
38715
|
children: menu.items.map((item, index) => {
|
|
37949
38716
|
const selected = index === selectedIndex;
|
|
37950
|
-
return /* @__PURE__ */ (0,
|
|
38717
|
+
return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
|
|
37951
38718
|
Text,
|
|
37952
38719
|
{
|
|
37953
38720
|
selectable: false,
|
|
@@ -37962,10 +38729,10 @@ var ActiveContextMenu = /* @__PURE__ */ __name(() => {
|
|
|
37962
38729
|
}, "ActiveContextMenu");
|
|
37963
38730
|
|
|
37964
38731
|
// packages/cli/src/ui/layouts/DefaultAppLayout.tsx
|
|
37965
|
-
var
|
|
38732
|
+
var import_jsx_runtime143 = __toESM(require_jsx_runtime(), 1);
|
|
37966
38733
|
var PinnedHeader = /* @__PURE__ */ __name(() => {
|
|
37967
38734
|
const { version } = useAppContext();
|
|
37968
|
-
return /* @__PURE__ */ (0,
|
|
38735
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AppHeader, { version, pinned: true });
|
|
37969
38736
|
}, "PinnedHeader");
|
|
37970
38737
|
var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
37971
38738
|
const uiState = useUIState();
|
|
@@ -37982,6 +38749,8 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
37982
38749
|
const { refreshStatic } = useUIActions();
|
|
37983
38750
|
const { activeView, agents } = useAgentViewState();
|
|
37984
38751
|
const { columns: terminalWidth } = useTerminalSize();
|
|
38752
|
+
const { dialogOpen: backgroundDialogOpen } = useBackgroundTaskViewState();
|
|
38753
|
+
const backgroundMargin = sideMargin(getLayoutTier(terminalWidth));
|
|
37985
38754
|
const hasAgents = agents.size > 0;
|
|
37986
38755
|
const isAgentTab = activeView !== "main" && agents.has(activeView);
|
|
37987
38756
|
const stickyTodoWidth = Math.min(uiState.mainAreaWidth, 64);
|
|
@@ -38003,17 +38772,17 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38003
38772
|
refreshStatic();
|
|
38004
38773
|
}
|
|
38005
38774
|
}, [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,
|
|
38775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", width: terminalWidth, children: [
|
|
38776
|
+
uiState.useTerminalBuffer && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(PinnedHeader, {}),
|
|
38777
|
+
isAgentTab ? /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
|
|
38778
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentChatView, { agentId: activeView }),
|
|
38779
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
|
|
38780
|
+
!uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
|
|
38781
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentComposer, { agentId: activeView }, activeView),
|
|
38782
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ExitWarning, {})
|
|
38014
38783
|
] })
|
|
38015
|
-
] }) : /* @__PURE__ */ (0,
|
|
38016
|
-
/* @__PURE__ */ (0,
|
|
38784
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(ScrollContext.Provider, { value: scrollActions, children: [
|
|
38785
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38017
38786
|
MainContent,
|
|
38018
38787
|
{
|
|
38019
38788
|
footerRef,
|
|
@@ -38021,18 +38790,18 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38021
38790
|
scrollActionsRef
|
|
38022
38791
|
}
|
|
38023
38792
|
),
|
|
38024
|
-
/* @__PURE__ */ (0,
|
|
38025
|
-
!uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0,
|
|
38026
|
-
uiState.dialogsVisible ? /* @__PURE__ */ (0,
|
|
38793
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(Box_default, { flexDirection: "column", ref: uiState.mainControlsRef, children: [
|
|
38794
|
+
!uiState.useTerminalBuffer && !uiState.dialogsVisible && uiState.updateInfo && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(UpdateNotification, { message: uiState.updateInfo.message }),
|
|
38795
|
+
uiState.dialogsVisible ? /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38027
38796
|
Box_default,
|
|
38028
38797
|
{
|
|
38029
|
-
marginX: 2,
|
|
38798
|
+
marginX: backgroundDialogOpen ? backgroundMargin : 2,
|
|
38030
38799
|
flexDirection: "column",
|
|
38031
|
-
width: uiState.isSettingsDialogOpen ? Math.max(1, terminalWidth - 4) : uiState.isApprovalModeDialogOpen ? Math.max(1, Math.min(terminalWidth - 4, 140)) : uiState.mainAreaWidth,
|
|
38800
|
+
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
38801
|
height: uiState.isApprovalModeDialogOpen || uiState.isSettingsDialogOpen ? void 0 : dialogHeight,
|
|
38033
38802
|
maxHeight: dialogHeight,
|
|
38034
38803
|
overflow: uiState.constrainHeight ? "hidden" : void 0,
|
|
38035
|
-
children: /* @__PURE__ */ (0,
|
|
38804
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38036
38805
|
DialogManager,
|
|
38037
38806
|
{
|
|
38038
38807
|
terminalWidth: uiState.terminalWidth,
|
|
@@ -38040,8 +38809,8 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38040
38809
|
}
|
|
38041
38810
|
)
|
|
38042
38811
|
}
|
|
38043
|
-
) : /* @__PURE__ */ (0,
|
|
38044
|
-
shouldShowStickyTodos && /* @__PURE__ */ (0,
|
|
38812
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
|
|
38813
|
+
shouldShowStickyTodos && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38045
38814
|
StickyTodoList,
|
|
38046
38815
|
{
|
|
38047
38816
|
todos: uiState.stickyTodos,
|
|
@@ -38049,17 +38818,17 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38049
38818
|
maxVisibleItems: stickyTodoMaxVisibleItems
|
|
38050
38819
|
}
|
|
38051
38820
|
),
|
|
38052
|
-
uiState.btwItem && /* @__PURE__ */ (0,
|
|
38821
|
+
uiState.btwItem && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Box_default, { marginX: 2, width: uiState.mainAreaWidth, children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38053
38822
|
BtwMessage,
|
|
38054
38823
|
{
|
|
38055
38824
|
btw: uiState.btwItem.btw,
|
|
38056
38825
|
containerWidth: uiState.mainAreaWidth
|
|
38057
38826
|
}
|
|
38058
38827
|
) }),
|
|
38059
|
-
/* @__PURE__ */ (0,
|
|
38828
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Composer, { footerRef, inputLinesRef })
|
|
38060
38829
|
] }),
|
|
38061
|
-
/* @__PURE__ */ (0,
|
|
38062
|
-
!uiState.dialogsVisible && /* @__PURE__ */ (0,
|
|
38830
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ExitWarning, {}),
|
|
38831
|
+
!uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
|
|
38063
38832
|
LiveAgentPanel,
|
|
38064
38833
|
{
|
|
38065
38834
|
width: uiState.terminalWidth,
|
|
@@ -38068,24 +38837,24 @@ var DefaultAppLayout = /* @__PURE__ */ __name(() => {
|
|
|
38068
38837
|
)
|
|
38069
38838
|
] })
|
|
38070
38839
|
] }),
|
|
38071
|
-
hasAgents && !uiState.dialogsVisible && /* @__PURE__ */ (0,
|
|
38072
|
-
/* @__PURE__ */ (0,
|
|
38840
|
+
hasAgents && !uiState.dialogsVisible && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AgentTabBar, {}),
|
|
38841
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ContextMenuOverlay, {})
|
|
38073
38842
|
] });
|
|
38074
38843
|
}, "DefaultAppLayout");
|
|
38075
38844
|
|
|
38076
38845
|
// packages/cli/src/ui/App.tsx
|
|
38077
38846
|
import fs8 from "node:fs";
|
|
38078
|
-
var
|
|
38847
|
+
var import_jsx_runtime144 = __toESM(require_jsx_runtime(), 1);
|
|
38079
38848
|
var App = /* @__PURE__ */ __name(({ onExitSummary }) => {
|
|
38080
38849
|
const uiState = useUIState();
|
|
38081
38850
|
const settings = useSettings();
|
|
38082
38851
|
const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
|
|
38083
38852
|
const [dismissed, setDismissed] = (0, import_react130.useState)(false);
|
|
38084
38853
|
if (uiState.quittingMessages) {
|
|
38085
|
-
return /* @__PURE__ */ (0,
|
|
38854
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(QuittingDisplay, { onExit: onExitSummary });
|
|
38086
38855
|
}
|
|
38087
38856
|
if (settings.corruptedPath && !dismissed) {
|
|
38088
|
-
return /* @__PURE__ */ (0,
|
|
38857
|
+
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
38858
|
SettingsCorruptedDialog,
|
|
38090
38859
|
{
|
|
38091
38860
|
corruptedPath: settings.corruptedPath,
|
|
@@ -38131,7 +38900,7 @@ var App = /* @__PURE__ */ __name(({ onExitSummary }) => {
|
|
|
38131
38900
|
}
|
|
38132
38901
|
) }) });
|
|
38133
38902
|
}
|
|
38134
|
-
return /* @__PURE__ */ (0,
|
|
38903
|
+
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
38904
|
}, "App");
|
|
38136
38905
|
|
|
38137
38906
|
// packages/cli/src/ui/utils/terminal-resize-reflow.ts
|
|
@@ -46515,13 +47284,9 @@ import { execFile as execFile3, execFileSync } from "child_process";
|
|
|
46515
47284
|
|
|
46516
47285
|
// packages/cli/src/ui/utils/clipboard-text.ts
|
|
46517
47286
|
init_esbuild_shims();
|
|
46518
|
-
import { createRequire } from "node:module";
|
|
46519
47287
|
function readWindowsClipboardText() {
|
|
46520
47288
|
try {
|
|
46521
|
-
|
|
46522
|
-
"@teddyzhu/clipboard"
|
|
46523
|
-
);
|
|
46524
|
-
return new native.ClipboardManager().getText();
|
|
47289
|
+
return getWindowsClipboardText();
|
|
46525
47290
|
} catch {
|
|
46526
47291
|
return void 0;
|
|
46527
47292
|
}
|
|
@@ -50245,7 +51010,7 @@ function historyToRemoteEvents(items, sessionId) {
|
|
|
50245
51010
|
__name(historyToRemoteEvents, "historyToRemoteEvents");
|
|
50246
51011
|
|
|
50247
51012
|
// packages/cli/src/ui/AppContainer.tsx
|
|
50248
|
-
var
|
|
51013
|
+
var import_jsx_runtime145 = __toESM(require_jsx_runtime(), 1);
|
|
50249
51014
|
var MCP_BATCH_FLUSH_MS = 16;
|
|
50250
51015
|
var STARTUP_PROFILE_FINALIZE_CAP_MS = 35e3;
|
|
50251
51016
|
var CTRL_EXIT_PROMPT_DURATION_MS = 1e3;
|
|
@@ -54139,18 +54904,18 @@ ${migrationResult.failedFiles.map((f) => ` \u2022 ${f.file}: ${f.error}`).join(
|
|
|
54139
54904
|
}),
|
|
54140
54905
|
[expandedToolBatchIds, expandToolBatch]
|
|
54141
54906
|
);
|
|
54142
|
-
return /* @__PURE__ */ (0,
|
|
54907
|
+
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
54908
|
AppContext.Provider,
|
|
54144
54909
|
{
|
|
54145
54910
|
value: {
|
|
54146
54911
|
version: props.version,
|
|
54147
54912
|
startupWarnings
|
|
54148
54913
|
},
|
|
54149
|
-
children: /* @__PURE__ */ (0,
|
|
54914
|
+
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
54915
|
ContextMenuProvider,
|
|
54151
54916
|
{
|
|
54152
54917
|
onMenuChange: handleContextMenuChange,
|
|
54153
|
-
children: /* @__PURE__ */ (0,
|
|
54918
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(App, { onExitSummary: finishExit })
|
|
54154
54919
|
}
|
|
54155
54920
|
) }) }) }) }) })
|
|
54156
54921
|
}
|
|
@@ -54252,7 +55017,7 @@ function installSynchronizedOutput(stdout = process.stdout, env = process.env) {
|
|
|
54252
55017
|
__name(installSynchronizedOutput, "installSynchronizedOutput");
|
|
54253
55018
|
|
|
54254
55019
|
// packages/cli/src/ui/startInteractiveUI.tsx
|
|
54255
|
-
var
|
|
55020
|
+
var import_jsx_runtime146 = __toESM(require_jsx_runtime(), 1);
|
|
54256
55021
|
var debugLogger41 = createDebugLogger("STARTUP");
|
|
54257
55022
|
var PRESSURE_CHECK_INTERVAL_MS = 3e4;
|
|
54258
55023
|
async function startInteractiveUI(config, settings, startupWarnings, workspaceRoot = process.cwd(), initializationResult, options = {}) {
|
|
@@ -54359,7 +55124,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
54359
55124
|
alive = false;
|
|
54360
55125
|
};
|
|
54361
55126
|
}, []);
|
|
54362
|
-
return /* @__PURE__ */ (0,
|
|
55127
|
+
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
55128
|
KeypressProvider,
|
|
54364
55129
|
{
|
|
54365
55130
|
kittyProtocolEnabled: kittyProtocolStatus.enabled,
|
|
@@ -54367,7 +55132,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
54367
55132
|
debugKeystrokeLogging: settings.merged.general?.debugKeystrokeLogging,
|
|
54368
55133
|
pasteWorkaround: process.platform === "win32" || nodeMajorVersion < 20,
|
|
54369
55134
|
initialCapturedInput,
|
|
54370
|
-
children: /* @__PURE__ */ (0,
|
|
55135
|
+
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
55136
|
AppContainer,
|
|
54372
55137
|
{
|
|
54373
55138
|
config,
|
|
@@ -54387,7 +55152,7 @@ async function startInteractiveUI(config, settings, startupWarnings, workspaceRo
|
|
|
54387
55152
|
if (useVP) {
|
|
54388
55153
|
process.stdout.setMaxListeners(0);
|
|
54389
55154
|
}
|
|
54390
|
-
const appTree = /* @__PURE__ */ (0,
|
|
55155
|
+
const appTree = /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
54391
55156
|
ErrorBoundary,
|
|
54392
55157
|
{
|
|
54393
55158
|
recordForExitEcho: true,
|
|
@@ -54401,11 +55166,11 @@ ${error.stack ?? ""}`
|
|
|
54401
55166
|
void runExitCleanup().then(() => process.exit(1));
|
|
54402
55167
|
}, 5e3);
|
|
54403
55168
|
},
|
|
54404
|
-
children: /* @__PURE__ */ (0,
|
|
55169
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(AppWrapper, {})
|
|
54405
55170
|
}
|
|
54406
55171
|
);
|
|
54407
55172
|
const instance = render_default(
|
|
54408
|
-
process.env["DEBUG"] ? /* @__PURE__ */ (0,
|
|
55173
|
+
process.env["DEBUG"] ? /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_react181.default.StrictMode, { children: appTree }) : appTree,
|
|
54409
55174
|
{
|
|
54410
55175
|
exitOnCtrlC: false,
|
|
54411
55176
|
isScreenReaderEnabled: config.getScreenReader(),
|