Elicitation Forms¶
Reference¶
Public API — attune.elicitation¶
| Symbol | Purpose |
|---|---|
form_from_dict(data) |
Build and validate a FormSchema from plain data; raises FormValidationError on a malformed definition. |
form_to_widget_html(form, message="") |
Render the rich inline HTML form for show_widget. |
form_to_askuserquestion(form, batch_size=4) |
Render batched AskUserQuestion payloads (the fallback surface). |
form_to_elicitation_schema(form) |
Render a native MCP elicitation JSON schema. |
collect_form_response(form, raw_answers, template_id="") |
Validate answers (R4) and return a FormResponse; raises FormValidationError. |
WIDGET_RESPONSE_MARKER |
The sentinel key the widget posts back under. |
FormValidationError |
Raised for a malformed definition or answer; lists every problem. |
QuestionType values¶
text_input, textarea, single_select, multi_select, boolean,
number (with minimum / maximum), date (YYYY-MM-DD), and the
three construct types decision, pushback, progress — ten in all.
Construct-specific FormQuestion fields¶
| Field | Used by | Meaning |
|---|---|---|
recommended |
decision / pushback / progress | option to badge and order first; must be in options |
rationale |
decision / pushback / progress | the "why" callout |
option_notes |
decision / pushback | {option: one-line tradeoff} |
user_position |
pushback | the option that is the user's stated approach |
progress_items |
progress | {label, status, detail?} items; blocked subset must equal options |
list_style |
single_select / multi_select | "ordered" or "unordered" list render |
MCP tools¶
elicitation_render_form, elicitation_render_widget,
elicitation_collect_response, and elicitation_ask — the same model,
exposed for agents that drive forms through the MCP server.