From 5fe03fa66c30f5d7ca6cdf9de1b1cfa2c38d6a45 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Fri, 21 Nov 2025 16:48:44 +0300 Subject: Enha: rag loader --- tui.go | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'tui.go') diff --git a/tui.go b/tui.go index ced27b1..bce91a9 100644 --- a/tui.go +++ b/tui.go @@ -39,6 +39,7 @@ var ( helpPage = "helpPage" renamePage = "renamePage" RAGPage = "RAGPage" + RAGLoadedPage = "RAGLoadedPage" propsPage = "propsPage" codeBlockPage = "codeBlockPage" imgPage = "imgPage" @@ -75,6 +76,7 @@ var ( [yellow]Ctrl+j[white]: if chat agent is char.png will show the image; then any key to return [yellow]Ctrl+a[white]: interrupt tts (needs tts server) [yellow]Ctrl+g[white]: open RAG file manager (load files for context retrieval) +[yellow]Ctrl+y[white]: list loaded RAG files (view and manage loaded files) [yellow]Ctrl+q[white]: cycle through mentioned chars in chat, to pick persona to send next msg as [yellow]Ctrl+x[white]: cycle through mentioned chars in chat, to pick persona to send next msg as (for llm) RAG Window: [yellow]x[white]: close window | [yellow]Enter[white]: select action @@ -823,26 +825,6 @@ func init() { pages.AddPage(imgPage, imgView, true, true) return nil } - // DEPRECATED: rag is deprecated until I change my mind - // if event.Key() == tcell.KeyCtrlR && cfg.HFToken != "" { - // // rag load - // // menu of the text files from defined rag directory - // files, err := os.ReadDir(cfg.RAGDir) - // if err != nil { - // logger.Error("failed to read dir", "dir", cfg.RAGDir, "error", err) - // return nil - // } - // fileList := []string{} - // for _, f := range files { - // if f.IsDir() { - // continue - // } - // fileList = append(fileList, f.Name()) - // } - // chatRAGTable := makeRAGTable(fileList) - // pages.AddPage(RAGPage, chatRAGTable, true, true) - // return nil - // } if event.Key() == tcell.KeyCtrlR && cfg.STT_ENABLED { defer updateStatusLine() if asr.IsRecording() { @@ -961,6 +943,20 @@ func init() { pages.AddPage(RAGPage, chatRAGTable, true, true) return nil } + if event.Key() == tcell.KeyCtrlY { // Use Ctrl+Y to list loaded RAG files + // List files already loaded into the RAG system + fileList, err := ragger.ListLoaded() + if err != nil { + logger.Error("failed to list loaded RAG files", "error", err) + if notifyerr := notifyUser("failed to list RAG files", err.Error()); notifyerr != nil { + logger.Error("failed to send notification", "error", notifyerr) + } + return nil + } + chatLoadedRAGTable := makeLoadedRAGTable(fileList) + pages.AddPage(RAGLoadedPage, chatLoadedRAGTable, true, true) + return nil + } // cannot send msg in editMode or botRespMode if event.Key() == tcell.KeyEscape && !editMode && !botRespMode { // read all text into buffer -- cgit v1.2.3