feat: add chat functionality to home page for interactive AI sessions

This commit is contained in:
taorye 2026-03-20 19:16:36 +08:00
parent 02da117199
commit 8c44597c3d
No known key found for this signature in database
GPG key ID: EDFFE0AD344F5FE0

View file

@ -6,6 +6,9 @@
package ui package ui
import ( import (
"os"
"os/exec"
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
"github.com/rivo/tview" "github.com/rivo/tview"
) )
@ -31,6 +34,15 @@ func (a *App) newHomePage() tview.Primitive {
list.AddItem("GATEWAY MANAGEMENT", "Manage PicoClaw gateway daemon", 'g', func() { list.AddItem("GATEWAY MANAGEMENT", "Manage PicoClaw gateway daemon", 'g', func() {
a.navigateTo("gateway", a.newGatewayPage()) a.navigateTo("gateway", a.newGatewayPage())
}) })
list.AddItem("CHAT: Start AI agent chat", "Launch interactive chat session", 'c', func() {
a.tapp.Suspend(func() {
cmd := exec.Command("picoclaw", "agent")
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
_ = cmd.Run()
})
})
list.AddItem("QUIT SYSTEM", "Exit PicoClaw Launcher", 'q', func() { a.tapp.Stop() }) list.AddItem("QUIT SYSTEM", "Exit PicoClaw Launcher", 'q', func() { a.tapp.Stop() })
if sel >= 0 && sel < list.GetItemCount() { if sel >= 0 && sel < list.GetItemCount() {
list.SetCurrentItem(sel) list.SetCurrentItem(sel)
@ -40,5 +52,5 @@ func (a *App) newHomePage() tview.Primitive {
a.pageRefreshFns["home"] = rebuildList a.pageRefreshFns["home"] = rebuildList
return a.buildShell("home", list, " [#00f0ff]m:[-] configure model [#ff2a2a]q:[-] quit ") return a.buildShell("home", list, " [#00f0ff]m:[-] model [#00f0ff]n:[-] channels [#00f0ff]g:[-] gateway [#00f0ff]c:[-] chat [#ff2a2a]q:[-] quit ")
} }