zidane-ui/ chat/ composer
The prompt box, model and reasoning pickers, attachment helpers and mention suggestions.
import { … } from 'zidane-ui/chat/composer'ui/src/chat/composer/index.ts
Use this entry point for the input side of a chat. Composer is the prompt box and needs no host. HostComposer binds it to a ChatHost. The pickers, the context meter (ContextOrb, ContextBreakdown), the badge strip (ComposerBadges, orderComposerBadges, mergeBadgeOrder), the catalog helpers and the attachment readers are exported for custom layouts. See Composer.
import { Composer } from 'zidane-ui/chat/composer'
import { useState } from 'react'
export function Prompt() {
const [running, setRunning] = useState(false)
return (
<Composer
running={running}
onSend={({ prompt }) => {
setRunning(true)
console.log(prompt)
setTimeout(() => setRunning(false), 1000)
}}
onStop={() => setRunning(false)}
/>
)
}Components#
AgentPickerComponent#
Renders the agent profile pill of the composer controls and its menu, with the current profile checked.
AgentPickerDialogComponent#
The agent dialog (see the header).
ApprovalDockComponent#
The session's next approval, docked above the prompt (see the header).
ArchivedBannerComponent#
The archived session's banner in place of its composer.
AttachmentNoticesComponent#
The files the composer just refused, one line each, until dismissed. Nothing renders without any.
AttachmentRowComponent#
A row of staged attachment tiles that collapses when its last tile leaves.
AttachmentTilesComponent#
Renders the composer's attachments as a row of tiles: image thumbnails and file tiles, each with a remove button.
ComposerComponent#
Renders the chat prompt box: a text editor with staged attachments, a controls row, and Send or Stop. Enter sends, Shift+Enter adds a line, Escape stops a running agent, and the arrow keys recall earlier prompts.
ComposerBadgesComponent#
Renders the composer's badge strip (see the module comment). Place it as the first child of the composer's tray ring, before the card.
ComposerControlsComponent#
The left cluster: agent, model and options pickers (see the header).
ComposerDockComponent#
The column above the prompt. zg-composer-dock carries :empty { display: none } (styles/composer.css): every child renders null on an idle
session, and a zero-height flex item would still consume one of the
footer column's 8px gaps, pushing the composer down at rest.
ComposerHostProviderComponent#
Provides a ComposerHost to the composer components below it.
ComposerStatusPillsComponent#
The right cluster: the run chip and the context orb. The only part of the conversation that re-renders on the run's progress ticks.
ContextBreakdownComponent#
Renders the context window breakdown: a stacked bar and a list of categories with their token shares. While there is no breakdown it shows a plain gauge from the fallback values.
ContextOrbComponent#
Renders the context usage donut and, in its popover, the window breakdown and session cost.
ConversationBadgesComponent#
The badge strip of one conversation (see the header).
DockCardComponent#
One raised card in the dock.
DockRowComponent#
One line of a dock card: glyph, body, actions.
EffortPickerDialogComponent#
The model options dialog (see the header).
HostAgentPickerComponent#
The agent pill:
- a live session: writes its profile (
controls.setAgent) so the host rebuilds with the new preset on the next prompt; - a draft: edits the default the next send creates the session under.
HostComposerComponent#
Renders a Composer bound to the ChatHost in context for one session. Controls the host leaves out are hidden; without send nothing renders.
HostContextOrbComponent#
The context orb over the host (see the header).
HostModelChainListComponent#
The host's model list (see the header).
HostModelOptionsPickerComponent#
The model options pill for a live session: ModelOptionsPicker (reasoning
effort, then feature toggles) applying picks to the session, each
remembered for its model so the next new chat starts there.
HostModelPickerComponent#
The model chain pill. Run-sticky fallback: when this run's stream failed on
the picked model and the agent advanced down its chain, the pill shows the
model actually serving the run (serving), until the next run or a re-pick.
HostPickerComponent#
A composer pill naming the host a new chat runs on, opening a menu of the hosts (unreachable ones disabled).
ImageModelListComponent#
Renders the image models in the chat models' list. A pick reports its key.
ModelChainFooterComponent#
The model pickers' footer: the keys, the hidden legacy models, how many are selected.
ModelChainHeaderComponent#
The pickers' header, the same for every list (chat models, image models):
the search field across the full width, a row with the caller's toolbar
(the popover's Chat / Image tabs) and the Legacy switch at its end, then
the provider pills. One padding around it and one gap between rows, and
each row keeps its height when it is empty, so switching lists or
filtering to nothing never moves the list below.
ModelChainListComponent#
Renders a searchable list of models for building a fallback chain: the first entry is the primary, the rest are fallbacks. A plain pick on a chain of one swaps the primary.
ModelChainPopoverComponent#
Renders the model pill with a popover over the chain picker. A plain pick commits and closes; a chain edited in the popover commits when it is dismissed.
ModelChainRowComponent#
One row of the model chain picker: the model's name and meta, and its place in the chain.
ModelChainRowsComponent#
Renders the picker's sections and the rows of each that are in view.
ModelChainTooltipComponent#
Renders the chain the model pill stands for, as tooltip content.
ModelFlagComponent#
A capability glyph with a one-line tooltip. The tooltip is portalled: the rows sit in a scrolling list that would clip it.
ModelGroupHeaderComponent#
A model list's sticky section header: a provider, the pinned chain, or a typed id's routes.
ModelMetaComponent#
A picker row's meta, in order: legacy, its details, the window (or
not in catalog), then the capability glyphs: reasoning, reference images,
transparency, and a lock with the reason when the row is unavailable.
ModelOptionsPickerComponent#
Renders the model options pill and its menu: a reasoning effort section and feature checkboxes. Picks apply in place and keep the menu open.
ModelPickerComponent#
Renders the model pill and popover over the models a host offers. It picks one model with no fallback chain.
ModelPickerDialogComponent#
The Model dialog (see the header).
ModelPickerFrameComponent#
Renders the model pill and the popover around a model list.
ModelProviderChipComponent#
The provider chip: its color dot and name, with the account when the provider has several ("Anthropic (Work)").
ModelProviderPillsComponent#
The model chain picker's tabs: a pill for the pinned chain, then one per provider section.
ModelReasoningComponent#
The reasoning glyph, when the model supports reasoning effort.
ModelWindowComponent#
The model's context window, or not in catalog for a typed id the catalog does not know.
Nothing when the window is unknown.
PickerPillComponent#
Renders the trigger chip for a composer picker, an item of the controls' segmented track. Spread a Popover trigger's props onto it.
ProjectMenuComponent#
Renders the folder pill and its project menu (see the header).
PromptHistoryProviderComponent#
Holds every session's prompt ring for ↑ / ↓ recall, for the composers below it.
RetryPillComponent#
The retry pill (see the header).
RunStatusChipComponent#
The run's live indicator (see the header).
ScopeToggleComponent#
The draft's Chat / folder toggle (see the header).
SelectTurnHintComponent#
Renders select-turn mode's keys and its exit in the composer's dock, or nothing while the mode is off here.
SendButtonComponent#
Renders the Send or Stop button: a circle that sends the draft, or stops the run while one streams and can be stopped.
ServerScopeToggleComponent#
Renders the server folder pill and its project menu (see the header).
SuggestionPopupComponent#
The popup over the caret: one row per item, the keyboard cursor raised.
Functions#
__resetComposerScopesForTestsFunction#
Forgets every registered composer scope and focus claim. For tests.
attachmentErrorTextFunction#
The sentence a composer shows for a file it did not attach.
attachmentLightboxItemsFunction#
Every previewable attachment as one gallery: images, PDFs in the browser's viewer, and text as its decoded preview.
canJoinChainFunction#
Whether pick can join chain as a fallback: no other account of its provider is in it.
catalogFromProvidersFunction#
A ChatHost's models as catalog rows, in the host's order.
claimComposerFocusFunction#
The composer receiving scopeKey (null: a folderless draft) is the
window's: pushes without a target go to it until the returned release (a
no-op once another claim replaced it).
colorForCategoryFunction#
Returns the display color for a context category id, with a muted fallback for unknown ids.
compactWindowFunction#
1M, 1.5M, 200k: the row meta has no room for 1.00M.
contextGaugeFunction#
Computes the orb's percent and color from a used fraction.
decodeDataUrlAsTextFunction#
Decodes a data: URL's payload as UTF-8 text. Returns an empty string when the URL has no payload and a placeholder message when decoding fails.
detectLanguageFunction#
Map an attachment to a Shiki language id. Extension wins; falls back
to MIME hints (+json, +xml, text/markdown); unknown →
plaintext so the preview still renders, just without colour.
effectiveImageModelFunction#
The row an imageModel setting names; when it is empty or stale, the model the tool falls back to
(isDefault), else the first available one.
findModelFunction#
The model a value names: a provider/model key, or a bare id (the first provider offering it).
focusComposerFunction#
Move keyboard focus back to the composer (Esc out of a panel card).
focusComposerWhenReadyFunction#
Move keyboard focus to the window's composer, or, while none takes it (a conversation switch is still mounting it, or re-keying it to a scope that resolves later), to the next composer to subscribe.
formatBytesFunction#
Byte counts for people: 512 B, 1.5 KB, 2.0 MB.
groupKeyOfFunction#
Section a row lists under: its provider, or its provider's account when there are several.
hasComposerForFunction#
Whether a composer in this window receives scopeKey.
hasFocusedComposerFunction#
Whether the window has a composer: where a push without a target goes (producers without a scope of their own).
imageCatalogRowsFunction#
Image models as model-list rows: no context window or reasoning, the capabilities and availability instead.
imageModelKeyFunction#
providerKey/modelId, the form Settings.imageModel stores.
isCaretAtEndFunction#
Whether the caret is collapsed on the very last position of the document.
isCaretAtStartFunction#
Whether the caret is collapsed on the very first position of the document.
isFocusedComposerFunction#
Whether the composer receiving scopeKey (null: a folderless draft) is the window's: the one a push
without a target goes to.
isPdfAttachmentFunction#
A PDF attachment: previewed in the browser's own PDF viewer.
isTextLikeFunction#
Treat as text any attachment whose MIME is in the text/* family,
or one of the structured-text types we routinely encounter (JSON,
XML, common script languages that browsers tag as application/*).
Falls back to an extension allowlist for files the OS picker
presents without a MIME — extensionless dotfiles and a handful of
common code extensions land here so the preview is useful.
lineupKeyOfFunction#
A row's lineup identity (currentModelKeys: provider + model, whatever the account).
mergeBadgeOrderFunction#
The order to save after the user moved badges: the order shown now, with each saved id that is not shown kept right after the shown badge it followed, so it comes back in its place.
modelKeyFunction#
Returns the provider/model key of a model, the form SendInput takes.
modelLineupFunction#
The catalog's current models (core currentModelKeys: the newest of each
family, by lineupKeyOf), worked out once per catalog: hosts keep theirs
between openings, and it means parsing every model id. Read-only.
modelNameOfFunction#
A model's natural name (Opus 4.6), from the catalog's display name when it lists the model.
modelSearchScoreFunction#
Search rank of one entry against the query terms, or null when a term is
missing. Lower is better: a term at the start of the model id beats one at
a word start inside it, which beats a substring of the id, which beats a
hit only in the name / provider corpus.
nextProfileIdFunction#
The profile after currentId in ids, wrapping; the first one when
currentId is not listed. null when there is nothing to switch to.
offCatalogRowsFunction#
"Use this id via …" rows for a typed model id, one per provider in the
catalog (the provider the query names first, then the current one, then
the rest), minus routes the catalog already lists. Empty unless the query
names an id worth offering: when the catalog matched something, only an
id-shaped query (a digit, -, ., / or :, 3+ characters) gets typed
routes, so a plain word like "claude" stays a search.
onComposerAttachmentFunction#
Takes the attachments pushed to a composer.
onComposerDraftFunction#
Takes the drafts pushed to a composer.
onComposerFocusFunction#
Takes the focus requests pushed to a composer.
onComposerInsertFunction#
Takes the text inserts pushed to a composer.
onComposerMentionFunction#
Takes the file mentions pushed to a composer.
onComposerPromptFunction#
Takes the prompts pushed to a composer.
orderComposerBadgesFunction#
Badges in the order to show them: sorted by order (stable for ties),
then the saved order applied over the slots of the badges it names.
pastedTextFilenameFunction#
ISO-stamped filename for a paste-as-attachment write.
pickerGroupsFunction#
The picker's list as groups. Empty query: the chain first ("In use"), then
each provider in catalog order with its current models (or all of them
with showLegacy), chain members not repeated. With a query: every model
of every provider that matches, grouped by provider, groups ordered by
their best match, rows by score then catalog order.
pickRefOfFunction#
The pick a catalog row makes: its provider, model and (when the provider has several) account.
plainTextToDocJsonFunction#
Plain text → TipTap doc JSON, one paragraph per line. setContent
with a string parses it as HTML — multi-line history entries would
collapse to a single run and angle brackets would be swallowed as
tags. Building the JSON directly keeps recalled prompts (and restored
drafts) byte-faithful. Empty text yields a single empty paragraph,
the minimal valid block+ doc.
providerAccountLabelFunction#
"Anthropic", or "Anthropic (Work)" for one of several accounts. Plain text: it also names the account in tooltips and settings rows.
pushComposerAttachmentFunction#
Stage an attachment in a composer.
pushComposerDraftFunction#
REPLACE the composer's draft (Edit message): the editor holds text, the
staged attachments become attachments, and the caret lands at the end.
pushComposerInsertFunction#
Append plain text at the end of the draft and focus the composer (a /command awaiting arguments).
pushComposerMentionFunction#
Insert an @<path> file mention at the caret. path is relative to the
session cwd, the same form the composer's own @ completion produces.
pushComposerPromptFunction#
Send text through the composer's send path, leaving the draft alone (palette prompts, Continue / Retry).
readAttachmentFunction#
Reads a file into a ComposerAttachment with a data: URL, as the
shared rule says (planAttachment): images, PDFs and text attach; an image
in another format, or over the image cap, is re-encoded to fit, and keeps
the file as picked in original (up to the file cap) so the host can save
it for the agent and say it was converted. An animated GIF under the cap
goes as it is, every frame. Rejects with
an AttachmentRefusedError for a file the rule refuses (or an image
that cannot be decoded), and with the read error when the file cannot be read.
refKeyFunction#
Identity of a pick: provider, model and account (core modelPickKey, the one key chains compare by).
registerComposerScopeFunction#
The mounted composer receives scopeKey (null: it has no scope, a
folderless draft); call the returned function when it stops.
resolveChainFunction#
A chain as the catalog lists it, resolvePick on each entry: what the
picker shows (In use, places, checks) and edits. The chain itself when no
entry changes.
resolvePickFunction#
A pick as the catalog lists it. A pick naming no account runs on its provider's active account: where the catalog lists that provider per account, the pick is that account's row (the one marked active, else the first account that has the model). Any other pick comes back as it is.
resourceErrorTextFunction#
The text of a resource's error, null for none.
rowKeyFunction#
A catalog row's pick identity.
shouldFoldPasteToAttachmentFunction#
Should a plain-text paste become a .txt attachment chip instead of
inline editor text? Mirrors the TUI's rule (line count after CRLF
normalisation + trim) with a lower character ceiling on top.
suggestionExtensionFunction#
One trigger as a Tiptap extension. source and state are refs so the
editor, built once, always reads the latest props and popup.
takePendingComposerFocusFunction#
Whether a focusComposerWhenReady request waits for a composer; taking it clears it.
textAttachmentFunction#
Build a text attachment (UTF-8 data URL) the composer can carry.
unresolveChainFunction#
An edit made on a resolved chain (resolveChain), back on the chain
it was resolved from: an entry that was there keeps its own form (a pick
naming no account still names none, so it still follows the active
account), a new one stays as it was picked.
useAgentProfilesFunction#
The profiles cwd offers ('': no folder). Empty until read, and without agents.
useAttachmentIngestFunction#
Manages the composer's staged attachments and the ways in: paste, drop, and the file picker. Images, PDFs and text files attach; anything else is refused with a notice.
useAttachmentNoticesFunction#
The notices about files a composer did not attach: refuse words what
readAttachment rejected with; they clear on dismiss, or
ATTACHMENT_NOTICE_MS after the latest one.
useAttachmentRemovalFunction#
Removal with the tile's exit: removeAttachment marks it exiting, and the
tile's width transition (or a timer on the exit motion's length, when
motion is reduced or off and there is no transition) drops it from the list. Only a removal still in
flight is finalized: once the list is replaced (clearExiting), a late
timer would remove a tile of the NEW list sharing that id.
useCacheHintsFunction#
Cache hints for a picker's options, fetched once per open: an option's estimate is asked the first time it renders. The first answer decides for all: no live agent, an expired cache, a short prompt or an older daemon means no option can show one, so nothing more is asked. Never blocks a pick; a failed estimate shows nothing.
useComposerForFunction#
Where a scoped producer pushes: its scope's composer while one is mounted (live), else null.
useComposerHostFunction#
The nearest ComposerHost; an empty host (every capability left out) outside a provider.
useComposerLabelsFunction#
The composer's strings: defaults, then <LabelsProvider> overrides, then the provider's labels.
useComposerModelNameFunction#
Names a model as the model picker does; re-renders when the catalog arrives or changes.
useComposerProviderLabelFunction#
A provider's label as the model picker groups it (Anthropic).
useCycleAgentFunction#
Quick-cycle through the folder's agent profiles (the cycleAgent
shortcut). Mirrors the TUI's Shift+Tab: the next profile in the picker's
order, wrapping; a no-op with one profile, while the session runs, or while
it waits on an approval (ApprovalsHost) or a question (ChatHost).
useDraftKnobsFunction#
A new chat's starting effort and options on modelId, live (its draft's pick, the configured defaults, the last used).
useDraftTargetFunction#
The new-chat draft's target, reset with the draft.
useHasFocusedComposerFunction#
Live hasFocusedComposer.
useHostResourceFunction#
A host resource, kept current while mounted (IDLE_RESOURCE for null).
useJoinedRunProgressFunction#
A running session this window did not see start (opened, reloaded or
reconnected mid-run): reads its run from the host once (runs.progress),
so the chip neither restarts its time nor counts its output from zero. A
run whose run:start it saw counts from the start already.
useModelCatalogFunction#
The catalog to list: outer when the caller loaded one, else the host's for cwd on hostId.
useModelKnobsFunction#
The remembered knobs of the nearest host, for actions.
useModelPickerPrefsFunction#
The model picker's preferences, live.
useModelPickerPrefsStoreFunction#
The host's picker preferences store (an in-memory one when it has none).
useNewSessionDefaultsFunction#
The new session's defaults in a space, over the provided ComposerHost.
usePromptHistoryFunction#
The prompt ring from the nearest PromptHistoryProvider. Throws outside one.
useProviderReadyPollFunction#
Keeps store on the chat host's provider check.
useRememberedKnobsFunction#
The last effort and options used with modelId, live.
useRunAccruedCostFunction#
Cost of turns settled since the last settling cost read.
useRunElapsedSecFunction#
Whole-second elapsed counter for the session's current run, from its start
(the host's, so neither switching conversations nor opening a window
restarts it). Ticks every tickMs: 250 ms by default so 0s → 1s is not
laggy, but renders once per second.
useRunMeterValueFunction#
One field of a session's run counters (store: RunMeter.session(id), null for none).
useRunOutputTokensFunction#
Output tokens of the run's settled parent turns.
useRunProgressFunction#
The streaming parent turn's live counters, null between turns.
useRunStartedAtFunction#
When the run started (epoch ms), null while this window knows of none.
useSendPromptFunction#
Binds the send flow to the hosts and the app's inputs.
useSessionContextStatusFunction#
The context gauge of a session alone (what the model and effort pickers
read): the same keyed read as useSessionMeters', so one request.
useSessionMetersFunction#
The meters of the session shown.
useSustainedWorkFunction#
The running work to show for a conversation (see the header).
withPrimaryFunction#
The chain after making pick the primary: one account per provider, so
entries naming another account of its provider drop (core
filterChainFallbacks would drop them anyway, silently).
workShowDelayFunction#
How long until items should show, in ms: 0 when they already should.
Classes#
AttachmentRefusedErrorClass#
A file readAttachment did not attach, and why.
Constants#
ATTACHMENT_NOTICE_MSConstant#
How long the notices about refused files stay, in milliseconds.
DEFAULT_BADGE_ORDERConstant#
The default slot of a badge without an order.
defaultAttachmentTileLabelConstant#
A generic file icon (the PDF icon for a .pdf) and the name. The default AttachmentRowProps.attachmentLabel.
EFFORT_LEVELSConstant#
Every reasoning effort level the agent knows, in the TUI picker's order.
MAX_FILE_ATTACHMENT_BYTESConstant#
Cap on a PDF's or a text file's bytes.
MAX_IMAGE_ATTACHMENT_BYTESConstant#
Cap on an image's bytes. Base64 inflates ~33%, so this keeps the encoded payload under Anthropic's 5 MB image ceiling while covering essentially every screenshot. A composer scales a bigger image down to fit.
NO_COMPOSER_HINTConstant#
Why a chat action is disabled (its tooltip).
OPTION_ICONConstant#
Options drawn as a glyph wherever they are shown (the pill, the menu row).
PASTE_FOLD_CHAR_THRESHOLDConstant#
Character ceiling for SINGLE-line (or few-line) pastes. In the GUI a
50 KB one-liner soft-wraps into a screenful of editor, so a paste of
this many characters folds too. The TUI's own ceiling is higher
(PASTE_INLINE_MAX_CHARS in src/tui/prompt/paste.ts, 10,000).
PASTE_FOLD_LINE_THRESHOLDConstant#
Line threshold above which a multiline paste folds into a .txt
attachment. It matches the TUI (planTextPaste in src/tui/prompt/paste.ts
uses lines.length > 10 after trimming leading and trailing blank lines).
Short multiline pastes (stack traces, paragraphs) stay inline so the
user can edit them; anything longer arrives at the model as a
discrete document part instead of a wall of prompt text.
THINKING_LEVELSConstant#
The reasoning levels a ChatHost accepts in SendInput, from least to most.
TRIGGERConstant#
The character that opens each completion: @ for mentions and / for commands.
WORK_HOLD_MSConstant#
Work that ended keeps showing this long.
WORK_SHOW_MSConstant#
Work shorter than this never shows.
Interfaces#
AgentPickerDialogPropsInterface#
Props for AgentPickerDialog.
AgentPickerPropsInterface#
Props for AgentPicker.
AgentProfileInterface#
An agent profile the picker offers.
ApprovalDockPropsInterface#
Props for ApprovalDock.
ArchivedBannerPropsInterface#
Props for ArchivedBanner.
AttachmentNoticesPropsInterface#
Props for AttachmentNotices.
AttachmentRowPropsInterface#
Props for AttachmentRow.
AttachmentTilesPropsInterface#
Props for AttachmentTiles.
ComposerBadgeInterface#
One badge of a ComposerBadges strip.
ComposerBadgesPropsInterface#
Props for ComposerBadges.
ComposerControlsPropsInterface#
Props for ComposerControls.
ComposerDefaultsInterface#
What the next new chat starts on, as the app decides it.
ComposerDockPropsInterface#
Props for ComposerDock.
ComposerDraftInterface#
A whole draft: its text and the attachments to stage, ready (data URLs).
ComposerHandleInterface#
Imperative handle of the Composer, reached through its ref.
ComposerHostProviderPropsInterface#
Props for ComposerHostProvider.
ComposerPropsInterface#
Props for Composer.
ComposerStatusPillsPropsInterface#
Props for ComposerStatusPills.
ComposerSubmitInterface#
What the composer hands to onSend.
ComposerTargetInterface#
The one composer meant to take a push (a session key, a draft's scope); without one, the window's composer.
ContextBreakdownDataInterface#
The shaped, render-ready breakdown.
ContextBreakdownPropsInterface#
Props for ContextBreakdown.
ContextCostInterface#
The session's spend, as the popover's last row and the orb's tooltip show it.
ContextGaugeInterface#
The orb's share in percent and its color, for a breakdown's fallback gauge.
ContextOrbPropsInterface#
Props for ContextOrb.
ContextUsageInterface#
Everything the orb and its popover show.
ConversationBadgesPropsInterface#
Props for ConversationBadges.
CursorInterface#
The highlighted row, and what moved it there: only the keyboard scrolls the list to follow it.
CycleAgentOptionsInterface#
Options for useCycleAgent.
DockCardPropsInterface#
Props for DockCard.
DockRowPropsInterface#
Props for DockRow.
DraftServerInterface#
A saved server a draft can run on.
DraftTargetInterface#
The draft's target and its picks, as the composer's where menu and folder pickers read them.
DraftTargetOptionsInterface#
What useDraftTarget reads from the app.
DraftTargetRequestInterface#
A draft target picked outside the composer.
EffortPickerDialogPropsInterface#
Props for EffortPickerDialog.
HostAgentPickerPropsInterface#
Props for HostAgentPicker.
HostComposerPropsInterface#
Props for HostComposer: the ComposerProps the host does not drive, plus sessionId, defaultModel, defaultThinking, and footer.
HostContextOrbPropsInterface#
Props for HostContextOrb.
HostModelChainListPropsInterface#
Props for HostModelChainList.
HostModelImagesInterface#
The image models tab of a model picker.
HostModelOptionsPickerPropsInterface#
Props for HostModelOptionsPicker.
HostModelPickerPropsInterface#
Props for HostModelPicker.
HostPickerPropsInterface#
Props for HostPicker.
ImageModelListPropsInterface#
Props for ImageModelList.
MentionItemInterface#
One completion offered by a SuggestionSource: a file, a session, a command.
ModelCatalogStateInterface#
A model catalog as a picker reads it.
ModelChainFooterPropsInterface#
Props for ModelChainFooter.
ModelChainHeaderPropsInterface#
Props for ModelChainHeader.
ModelChainImagesInterface#
The Image tab of ModelChainPopover.
ModelChainListPropsInterface#
Props for ModelChainList.
ModelChainPopoverPropsInterface#
Props for ModelChainPopover.
ModelChainRowPropsInterface#
Props for ModelChainRow.
ModelChainRowsPropsInterface#
Props for ModelChainRows.
ModelChainTooltipPropsInterface#
Props for ModelChainTooltip.
ModelChoiceInterface#
A model picked from a provider's catalog.
ModelFlagPropsInterface#
Props for ModelFlag.
ModelGroupHeaderPropsInterface#
Props for ModelGroupHeader.
ModelMetaPropsInterface#
Props for ModelMeta.
ModelOptionInterface#
A feature toggle a model declares.
ModelOptionsPickerPropsInterface#
Props for ModelOptionsPicker. L is the type of the effort levels.
ModelPickerDialogPropsInterface#
Props for ModelPickerDialog.
ModelPickerFramePropsInterface#
Props for ModelPickerFrame.
ModelPickerPropsInterface#
Props for ModelPicker.
ModelProviderChipPropsInterface#
Props for ModelProviderChip.
ModelProviderPillsPropsInterface#
Props for ModelProviderPills.
ModelReasoningPropsInterface#
Props for ModelReasoning.
ModelWindowPropsInterface#
Props for ModelWindow.
NewSessionDefaultsInterface#
What a new session starts with, and the writers of each pick.
OrderedBadgeInterface#
What ordering needs of a badge: its id and its default slot.
PickerGroupInterface#
One section of the model picker list.
PickerPillPropsInterface#
Props for PickerPill: the attributes of a button, plus its content and collapsible.
ProjectMenuPropsInterface#
Props for ProjectMenu.
PromptHistoryProviderPropsInterface#
Props for PromptHistoryProvider.
PromptHistoryValueInterface#
The per-session prompt ring usePromptHistory returns.
RetryPillPropsInterface#
Props for RetryPill.
RunStatusChipPropsInterface#
Props for RunStatusChip.
ScopeTogglePropsInterface#
Props for ScopeToggle.
SelectTurnHintPropsInterface#
Props for SelectTurnHint.
SendButtonPropsInterface#
Props for SendButton.
SendPromptControlsInterface#
The composer's send and stop.
SendPromptOptionsInterface#
What useSendPrompt sends from and through.
ServerScopeTogglePropsInterface#
Props for ServerScopeToggle.
SessionMetersInterface#
A conversation's meters.
SessionMetersTargetInterface#
What useSessionMeters reads of a session.
SuggestionPopupPropsInterface#
Props for SuggestionPopup.
SuggestionSourceInterface#
Feeds one completion trigger of the composer: the items for what the user typed, and how a picked item is written into the prompt.
SuggestionStateInterface#
The open popup, as the composer renders it.
Types#
AttachmentLabelFnType#
The icon and name a file tile shows; fallbackIcon is the icon for a name with nothing to say.
ComposerBadgeToneType#
The tint of a badge's icon: the theme's quiet tones and its status colors.
ComposerResultType#
false (or a rejection) keeps the draft: the composer puts it back.
ComposerRetryType#
A stream being retried (the stream store's retry state).
EffortLevelType#
One of the reasoning effort levels in EFFORT_LEVELS.
ModelKindType#
The kinds of model the popover lists: chat models or image models.
NewSessionModelSourceType#
Where the default model comes from.
SendRouteType#
Where Enter sends the draft: send as a new prompt, steer into the run in flight, or queue for after the run ends.
SuggestionKindType#
Which trigger a completion belongs to: mention (@) or command (/).
ThinkingLevelType#
SendInput.thinking's levels, least to most: what a ChatHost takes.
Re-exports#
These names are documented on the entry point that owns them.