Built-in TUI channel contributions mounted on the channel-tui extension.
Channel-tui is itself an extension (:ext/name
com.blockether.vis.ext.channel-tui), so it can declare its own
:ext/channel-contributions like any external extension. This gives every
first-party TUI surface (model display, reasoning level, codex
verbosity) the same contribution path third-party extensions use.
Why register here instead of inline in footer.clj:
The data flow is uniform - footer's extension-footer-segments
treats first-party + third-party contributions identically. Settings
UI's contributor toggle (in dialogs.clj) sees these as
regular contributors that the user can hide.
Other channels (Telegram, web, ...) reading
(channel-contributions-for :tui) get the same model/provider data
without channel-tui-specific calls.
Provider extensions can later override / supplement these
contributions with provider-specific contributions (e.g. anthropic could
register a :anthropic/model-footer showing rate-limit
headroom) without touching channel-tui core.
The contribution fns return CANONICAL IR (channel-agnostic). Channels translate IR to their surface.
Built-in TUI channel contributions mounted on the channel-tui extension.
Channel-tui is itself an extension (`:ext/name`
`com.blockether.vis.ext.channel-tui`), so it can declare its own
`:ext/channel-contributions` like any external extension. This gives every
first-party TUI surface (model display, reasoning level, codex
verbosity) the same contribution path third-party extensions use.
Why register here instead of inline in footer.clj:
1. The data flow is uniform - footer's `extension-footer-segments`
treats first-party + third-party contributions identically. Settings
UI's contributor toggle (in dialogs.clj) sees these as
regular contributors that the user can hide.
2. Other channels (Telegram, web, ...) reading
`(channel-contributions-for :tui)` get the same model/provider data
without channel-tui-specific calls.
3. Provider extensions can later override / supplement these
contributions with provider-specific contributions (e.g. anthropic could
register a `:anthropic/model-footer` showing rate-limit
headroom) without touching channel-tui core.
The contribution fns return CANONICAL IR (channel-agnostic). Channels
translate IR to their surface.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |