- Custom tools: TypeScript modules that extend pi with new tools - Custom TUI rendering via renderCall/renderResult - User interaction via pi.ui (select, confirm, input, notify) - Session lifecycle via onSession callback for state reconstruction - Examples: todo.ts, question.ts, hello.ts - Hook examples: permission-gate, git-checkpoint, protected-paths - Session lifecycle centralized in AgentSession - Works across all modes (interactive, print, RPC) - Unified session event for hooks (replaces session_start/session_switch) - Box component added to pi-tui - Examples bundled in npm and binary releases Fixes #190
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
// Core TUI interfaces and classes
|
|
|
|
// Autocomplete support
|
|
export {
|
|
type AutocompleteItem,
|
|
type AutocompleteProvider,
|
|
CombinedAutocompleteProvider,
|
|
type SlashCommand,
|
|
} from "./autocomplete.js";
|
|
// Components
|
|
export { Box } from "./components/box.js";
|
|
export { Editor, type EditorTheme } from "./components/editor.js";
|
|
export { Image, type ImageOptions, type ImageTheme } from "./components/image.js";
|
|
export { Input } from "./components/input.js";
|
|
export { Loader } from "./components/loader.js";
|
|
export { type DefaultTextStyle, Markdown, type MarkdownTheme } from "./components/markdown.js";
|
|
export { type SelectItem, SelectList, type SelectListTheme } from "./components/select-list.js";
|
|
export { Spacer } from "./components/spacer.js";
|
|
export { Text } from "./components/text.js";
|
|
export { TruncatedText } from "./components/truncated-text.js";
|
|
// Terminal interface and implementations
|
|
export { ProcessTerminal, type Terminal } from "./terminal.js";
|
|
// Terminal image support
|
|
export {
|
|
type CellDimensions,
|
|
calculateImageRows,
|
|
detectCapabilities,
|
|
encodeITerm2,
|
|
encodeKitty,
|
|
getCapabilities,
|
|
getCellDimensions,
|
|
getGifDimensions,
|
|
getImageDimensions,
|
|
getJpegDimensions,
|
|
getPngDimensions,
|
|
getWebpDimensions,
|
|
type ImageDimensions,
|
|
type ImageProtocol,
|
|
type ImageRenderOptions,
|
|
imageFallback,
|
|
renderImage,
|
|
resetCapabilitiesCache,
|
|
setCellDimensions,
|
|
type TerminalCapabilities,
|
|
} from "./terminal-image.js";
|
|
export { type Component, Container, TUI } from "./tui.js";
|
|
// Utilities
|
|
export { truncateToWidth, visibleWidth } from "./utils.js";
|