tui

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Overview

Package tui holds the small set of messages shared across the strongo/aichat Bubble Tea chat kit's sub-packages (tui/grid, tui/transcript, tui/focus, tui/sidebar, tui/stream, tui/chatshell) so a leaf component (e.g. tui/grid) can ask the shell to do something (e.g. pin an entity to the sidebar) without importing the shell itself.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddToSidebarMsg

type AddToSidebarMsg struct {
	Ref session.EntityRef
}

AddToSidebarMsg requests that ref be pinned to the working-context sidebar. Leaf components such as tui/grid emit it (e.g. on "+" over the current row); tui/chatshell handles it by adding ref to tui/sidebar and, when the product's Handler implements OnSidebarChange, notifying it.

Directories

Path Synopsis
Package chatshell composes tui/transcript, tui/sidebar, tui/focus and tui/stream into the reusable chat screen every aichat product runs: history + composer + sidebar + top/status bars, with a split pane when the terminal is wide enough (>= 104 columns, matching DataTug's splitEnabled).
Package chatshell composes tui/transcript, tui/sidebar, tui/focus and tui/stream into the reusable chat screen every aichat product runs: history + composer + sidebar + top/status bars, with a split pane when the terminal is wide enough (>= 104 columns, matching DataTug's splitEnabled).
Package focus is a small, pure focus-ring state machine shared by every chatshell screen.
Package focus is a small, pure focus-ring state machine shared by every chatshell screen.
Package grid is a product-neutral result-grid transcript block: a bubble-table-backed table with sort, per-cell column selection, a scrollbar, style presets, and slots for a product's own secondary views (charts, a current-row card, raw responses, ...) and split-pane layout.
Package grid is a product-neutral result-grid transcript block: a bubble-table-backed table with sort, per-cell column selection, a scrollbar, style presets, and slots for a product's own secondary views (charts, a current-row card, raw responses, ...) and split-pane layout.
Package sidebar is the right-hand working-context panel shared by every aichat chatshell: an ordered list of session.EntityRef, rendered by a product-supplied renderer, with a cursor, remove ("x"/Delete), open (Enter) and a resizable split width — generalised from DataTug chat's F6 workspace dock and Ctrl+←/→ split handling (ui.go splitEnabled/ resizeChatPane, workspace_ui.go).
Package sidebar is the right-hand working-context panel shared by every aichat chatshell: an ordered list of session.EntityRef, rendered by a product-supplied renderer, with a cursor, remove ("x"/Delete), open (Enter) and a resizable split width — generalised from DataTug chat's F6 workspace dock and Ctrl+←/→ split handling (ui.go splitEnabled/ resizeChatPane, workspace_ui.go).
Package stream pumps an ai.LLMProvider's iter.Seq2[ai.Event, error] into Bubble Tea messages without buffering the response: each event arrives as an EventMsg carrying the tea.Cmd that re-arms the pump for the next event (the "channel re-arm" pattern DataTug chat used for HTTP/LLM streaming).
Package stream pumps an ai.LLMProvider's iter.Seq2[ai.Event, error] into Bubble Tea messages without buffering the response: each event arrives as an EventMsg carrying the tea.Cmd that re-arms the pump for the next event (the "channel re-arm" pattern DataTug chat used for HTTP/LLM streaming).
Package transcript renders the scrolling chat history shared by every aichat product: plain user/assistant messages, streamed assistant text and rich Block entries (e.g.
Package transcript renders the scrolling chat history shared by every aichat product: plain user/assistant messages, streamed assistant text and rich Block entries (e.g.

Jump to

Keyboard shortcuts

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