Help us shape the future of Go! Take the 2026 Go Developer Survey

tui

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2026 License: MIT Imports: 45 Imported by: 0

Documentation

Overview

Package tui 是 OpenVaala 的终端界面:inline 模式,已定稿的内容按顺序写进终端 scrollback,横向缩放时按新宽度重建, 底部实时区域每帧重绘尾部或面板、状态行、排队预览、输入框与 footer;只通过 runtimeclient 与 Runtime 交互。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type TUI

type TUI interface {
	// Run 运行界面直到用户退出、Client 事件流关闭或 ctx 结束;启动时处于草稿状态,第一次发送输入时才新建并打开对话。
	// Client 由调用方运行与停止。
	Run(ctx context.Context) error
}

TUI 是 OpenVaala 的终端界面。

func NewTUI

func NewTUI(opt *TUIOpt) (TUI, error)

NewTUI 校验界面依赖和样式,返回终端界面。

type TUIOpt

type TUIOpt struct {
	Client runtimeclient.Client
	// AgentName 是新建对话使用的根 Agent。
	AgentName string
	Input     io.Reader
	Output    io.Writer
	// MarkdownStyle 是 glamour 样式:markdownStyleAuto 在 Run 启动界面前按终端背景选定(输入输出不是终端时不带颜色),
	// markdownStyleNoTTY 不带颜色。
	MarkdownStyle string
	// WorkspaceDirectory 是 TUI 的 cwd(绝对路径),命中 client.path_mappings 时是调用方换成的 serve 路径:第一次连上本机 serve
	// (或 IsWorkspaceDirectoryMapped)时作为草稿设置的 local 目录,新建对话和草稿 Skills 带上它;打开对话不带目录。
	WorkspaceDirectory string
	// IsWorkspaceDirectoryMapped WorkspaceDirectory 是不是按 client.path_mappings 换成的 serve 路径?是时第一次连上不管本机还是远端
	// serve 都用它;否则只有本机 serve 用它,远端 serve 不带目录。路径由调用方换算好再传进来。
	IsWorkspaceDirectoryMapped bool
	// LocalServerID 是本机 runtime-server.yaml 里的 server_id;连上的 serve 返回同一个 server_id 时才是本机 serve。
	// 为空时连上的 serve 一律按远端处理。
	LocalServerID string
	// ServerURL 是状态面板显示的服务地址,由调用方脱敏;为空时显示 "—"。
	ServerURL string
	// ServerSource 是服务地址的来源(--url、client.url 或 local),状态面板在地址后面用全角括号显示;为空时不显示。
	ServerSource string
	// ConnectURL 是状态面板按 t 显示的、带 token 的可直连地址,供外部客户端直接使用;为空时无法切换。
	ConnectURL string
	// StartupNotice 是启动后在状态行显示 10 秒的提示,按键后提前消失;为空时不显示。
	StartupNotice string
}

TUIOpt 保存界面依赖,构造后只读。

func NewTUIOpt

func NewTUIOpt(client runtimeclient.Client, agentName, workspaceDirectory string, input io.Reader, output io.Writer) *TUIOpt

NewTUIOpt 创建终端界面配置。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL