Documentation
¶
Overview ¶
login.go implements the separate ToolHive LLM and remote OIDC login routes.
Command mecatui is a flashy, themeable terminal UI for the mecatl headless agentic coding harness. It is a gRPC CLIENT of a mecated server: it creates a session, opens the bidi Converse stream, renders the streamed Events (glamour markdown for assistant text, themed lipgloss for user/tool blocks), and resolves permission asks inline by sending ResumeApproval back on the same stream.
The server it talks to may be EXTERNAL (a separately-run mecated, via `mecatui connect ADDRESS`) or, by default, one this process HOSTS in-process over a UNIX socket (see cmd/mecatui/embed) — so a single `mecatui` binary "just works" with no daemon to start and no TCP port. The bare invocation ALWAYS embeds (it never probes loopback); `connect ADDRESS` always dials.
Architectural boundary: the render packages (ui, theme) and the client package import no engine/... or internal/... package and no proto directly — they render purely from proto Events. Hosting the embedded server makes the cmd/mecatui MAIN (and its embed subpackage) a second composition root, alongside cmd/mecated; that import of internal/app + the server adapter is confined HERE and to cmd/mecatui/embed.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package client is the gRPC-facing layer of mecatui: it dials mecated, creates sessions, opens the bidi Converse stream, and translates proto Events into the plain Go tea.Msg structs the ui consumes.
|
Package client is the gRPC-facing layer of mecatui: it dials mecated, creates sessions, opens the bidi Converse stream, and translates proto Events into the plain Go tea.Msg structs the ui consumes. |
|
Package embed lets mecatui host its OWN mecated server in-process when no external one is running, so a single `mecatui` binary "just works" with no separately-spawned daemon and no TCP port.
|
Package embed lets mecatui host its OWN mecated server in-process when no external one is running, so a single `mecatui` binary "just works" with no separately-spawned daemon and no TCP port. |
|
Package keymap validates rebindable-key overrides for mecatui.
|
Package keymap validates rebindable-key overrides for mecatui. |
|
Package schedparse is a small client-side natural-language → trigger compiler for the mecatui /schedule overlay's Create form.
|
Package schedparse is a small client-side natural-language → trigger compiler for the mecatui /schedule overlay's Create form. |
|
Package statusline defines the display-only, dependency-leaf protocol shared by mecatui composition and UI status-line renderers.
|
Package statusline defines the display-only, dependency-leaf protocol shared by mecatui composition and UI status-line renderers. |
|
Package theme is the pure styling layer for mecatui.
|
Package theme is the pure styling layer for mecatui. |
|
Package ui is the Bubble Tea (Elm) layer of mecatui: the root Model state machine, its Update reducer, the View assembly, and the conversation/block renderers.
|
Package ui is the Bubble Tea (Elm) layer of mecatui: the root Model state machine, its Update reducer, the View assembly, and the conversation/block renderers. |
|
platform
Package platform reports host-platform facts the TUI adapts its presentation to.
|
Package platform reports host-platform facts the TUI adapts its presentation to. |
|
prompttextarea
Package prompttextarea owns the upstream textarea behind Mecatl's prompt-editor policy.
|
Package prompttextarea owns the upstream textarea behind Mecatl's prompt-editor policy. |
|
welcome
Package welcome renders the first-run splash for the mecatui zero-state: a faithful mascot (half-block on any truecolor terminal, a zero-dependency kitty Unicode-placeholder high-res path on capable terminals), a gradient "mecatl" wordmark, and an info block.
|
Package welcome renders the first-run splash for the mecatui zero-state: a faithful mascot (half-block on any truecolor terminal, a zero-dependency kitty Unicode-placeholder high-res path on capable terminals), a gradient "mecatl" wordmark, and an info block. |