Files
gf-lt/main.go
2026-03-04 08:25:53 +03:00

47 lines
1.4 KiB
Go

package main
import (
"github.com/gdamore/tcell/v2"
"github.com/rivo/tview"
)
var (
boolColors = map[bool]string{true: "green", false: "red"}
botRespMode = false
toolRunningMode = false
editMode = false
roleEditMode = false
injectRole = true
selectedIndex = int(-1)
shellMode = false
shellHistory []string
shellHistoryPos int = -1
thinkingCollapsed = false
toolCollapsed = true
statusLineTempl = "help (F12) | chat: [orange:-:b]%s[-:-:-] (F1) | [%s:-:b]tool use[-:-:-] (ctrl+k) | model: [%s:-:b]%s[-:-:-] (ctrl+l) | [%s:-:b]skip LLM resp[-:-:-] (F10) | API: [orange:-:b]%s[-:-:-] (ctrl+v)\nwriting as: [orange:-:b]%s[-:-:-] (ctrl+q) | bot will write as [orange:-:b]%s[-:-:-] (ctrl+x)"
focusSwitcher = map[tview.Primitive]tview.Primitive{}
app *tview.Application
)
func main() {
app.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
if event.Key() == tcell.KeyCtrlC {
logger.Info("caught Ctrl+C via tcell event")
go func() {
if err := pwShutDown(); err != nil {
logger.Error("shutdown failed", "err", err)
}
app.Stop()
}()
return nil // swallow the event
}
return event
})
pages.AddPage("main", flex, true, true)
if err := app.SetRoot(pages,
true).EnableMouse(cfg.EnableMouse).EnablePaste(true).Run(); err != nil {
logger.Error("failed to start tview app", "error", err)
return
}
}