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 ¶
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. |
Click to show internal directories.
Click to hide internal directories.