KQ-828 · PROMPT/ECHO

Prompt Echo

What it heard you ask. The request sits at the top and under it the model's restatement types itself from a host-driven character count, a caret riding its end. Parts with options are the assumptions the model made, drawn as dotted-underlined buttons; pressing one opens a row of alternatives whose measured height glides open on glide while its chips arrive in a cascade on snap, and choosing one slides the correction into the sentence — old words leave upward on the exit ease, new ones arrive from eight pixels below on snap — while the footer's edit count rolls. The row is a listbox with a roving tabindex, Escape closes it and returns focus, and Confirm proceeds with the final sentence.

KQ-828 · PROMPT/ECHO
Dispatch requestGaugeworks Reasoner
You asked

Pull last week's late deliveries for the north depot and make me a table.

Heard as

0 edits

Press echo

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/prompt-echo

Props

request
string
default —
The original prompt, printed as the quoted request.
parts
EchoPart[]
default —
The restatement in order: id, text carrying its own spaces, and optional options that make the part a correctable assumption.
typed
number
default —
Characters of the restatement revealed so far, driven by the host; omit for a finished restatement.
edits / defaultEdits
Record<string, string>
default {}
Controlled or initial corrections by part id.
onEditsChange
(edits: Record<string, string>) => void
default —
Fires when a correction is chosen.
onConfirm
(text: string, editCount: number) => void
default —
Fires from the confirm control with the final sentence and how many parts were corrected.
model
string
default —
The invented model's name for the header chip.
label
string
default —
Names the region for assistive technology.
confirmLabel
string
default "Looks right"
Copy on the confirm control.