Background
#1326 wired up the resources subscription hook (#1325) and on the way reshaped the resource preview UX. The Prompts screen still has the older shape: the prompt argument form sits stretched across the main area, stays mounted after a prompt is fetched, doesn't scroll its result body, and doesn't fire `completion/complete` against prompt arguments. Bringing it up to parity is the next obvious follow-up.
Scope
Mirror the resource-side fixes onto `PromptsScreen` / `PromptArgumentsPanel` / `PromptResultPanel` (or whatever the equivalents are named).
- Argument form width cap. Apply `maw="40%"` (or equivalent) to the prompt-argument form pane so it doesn't stretch the full viewport.
- Auto-hide form after fetch. When the user clicks "Get Prompt", drop the selected prompt from the form pane so the result is shown alone — same pattern as `handleReadResource` clearing `selectedTemplateUri` in `ResourcesScreen`.
- Auto-fetch on sidebar selection. Clicking a prompt in the sidebar should call `onGetPrompt` for prompts with no arguments (or that have all defaults filled). For prompts with required args, render the form. The current "Click to fetch this prompt" placeholder should be unreachable / removed.
- Sized-to-content preview with viewport cap. Use the same `PreviewCard` (variant="preview") + `PreviewPane mah={SCROLL_MAX_HEIGHT}` pattern: when the prompt result fits, the card hugs its content; when it doesn't, an inner `ScrollArea` (`flex: 0 1 auto`, `mih: 0`) takes over and the header / meta / footer rows stay pinned via `flex: 0 0 auto`.
- Markdown rendering for text content. `ContentViewer` already handles `mimeType: text/markdown`; the prompt result panel just needs to pass `mimeType` through per content item.
- Live `completion/complete` on argument inputs. When `capabilities.completions` is set, swap each prompt-argument `TextInput` for Mantine `Autocomplete` and debounce (300ms) keystrokes into `inspectorClient.getCompletions({ type: 'ref/prompt', name }, argName, value, context)`, surfacing returned values as dropdown options. Mirror the per-arg `AbortController` + per-arg timer pattern from `ResourceTemplatePanel`. The protocol surface is already there (`InspectorClientProtocol.getCompletions`).
Acceptance criteria
- Selecting a prompt in the sidebar with no required arguments triggers `onGetPrompt` immediately.
- For prompts with arguments, the form pane is ≤ 40% wide and disappears after the user clicks Get Prompt.
- The result panel header (prompt name + meta) stays at the top, the footer stays at the bottom, and the messages scroll in the middle when long.
- Markdown content in prompt messages renders as markdown (not as preformatted code).
- When the connected server advertises `completions`, each prompt argument input is an autocomplete that fetches and shows server-side suggestions as the user types.
Related
Background
#1326 wired up the resources subscription hook (#1325) and on the way reshaped the resource preview UX. The Prompts screen still has the older shape: the prompt argument form sits stretched across the main area, stays mounted after a prompt is fetched, doesn't scroll its result body, and doesn't fire `completion/complete` against prompt arguments. Bringing it up to parity is the next obvious follow-up.
Scope
Mirror the resource-side fixes onto `PromptsScreen` / `PromptArgumentsPanel` / `PromptResultPanel` (or whatever the equivalents are named).
Acceptance criteria
Related