A browser dictation host — one mic follows your active field, speech merges into the DOM, optional LLM finish cleans the session chunk, and explicit send tears down the voice session.
createClarityHost — focus tracking, mic placement, shortcuts, send reset
dictation-session — frozenPrefix + sessionText + interimText merge
stt-capture — Web Speech API uses OS speech engine
stt-finish — transcript, prompt, or meeting-summary cleanup at injected stops
On mic start, existing typed text becomes the frozen prefix. New speech appends after it.
One shared mic reparents to the focused field's host — COO ideas blocks, generic tabs.
Mic stays on a command bar — dal-ide pattern with #command-input.
Per-field toolbar inside .clarity-field-wrap — clarity-notes (mic + proofread) or meeting-summary (mic + summarize).
Voice commands (opt-in): clarity finish stops; clarity send submits.
Clarity.auto() fingerprints the DOM and picks a preset config.
Note-taking apps with static dock per field. Mic + proofread. BLACKPAD / Prodify Central.
@langmark/clarity/presets/clarity-notes
Voice console with mic + summarize. Transcript → formal meeting notes. TeamLead AI.
@langmark/clarity/presets/meeting-summary
Greenfield apps with data-clarity-field, panels, and context blocks.
@langmark/clarity/presets/generic
Field maps for existing hosts. COO and dal-ide keep their own implementations today.
presets/coo.js · presets/dal-ide.js
Embed in your app — createClarityHost + preset + your finish API.
Shadow DOM mic on any site; pin mode for arbitrary text boxes.
Auth, metered finish, billing for extension with mobile keyboard surface.
field.value as prefix