@seed-ship/mcp-ui-solid 4.3.0 → 4.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ScratchpadPanel.cjs","sources":["../../src/components/ScratchpadPanel.tsx"],"sourcesContent":["/**\n * ScratchpadPanel v3 — Full HITL/AITL workspace\n * v2.9.0: Interactive filters, form sections, stepper, preview auto-refresh\n *\n * @experimental\n */\n\nimport { Component, Show, For, Switch, Match, createSignal, createEffect, onCleanup } from 'solid-js'\nimport type { ScratchpadState, ScratchpadSection, VerifiedTextContent, DataPreviewContent, MapSectionContent, AgentCardContent, SplitStepperContent, AgentHandoffContent, BriefingDiffContent } from '../types/chat-bus'\nimport type { FormFieldParams, ChartComponentParams } from '../types'\nimport { FormFieldRenderer } from './FormFieldRenderer'\nimport { VerifiedText } from './VerifiedText'\nimport { DataPreviewSection } from './DataPreviewSection'\nimport { MapRenderer } from './MapRenderer'\nimport { ChartJSRenderer } from './ChartJSRenderer'\nimport { AgentCard, AgentStatusBadge } from './AgentCard'\nimport { SplitStepper } from './SplitStepper'\nimport { AgentHandoff } from './AgentHandoff'\nimport { BriefingDiff } from './BriefingDiff'\n\nexport interface ScratchpadPanelProps {\n state: ScratchpadState\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n onAction?: (action: string, data?: unknown) => void\n onSectionEdit?: (sectionId: string, content: unknown) => void\n /** Dedicated callback for form submissions (cleaner than onAction) */\n onSubmit?: (sectionId: string, values: Record<string, unknown>) => void\n /** Called when user clicks retry on error state */\n onRetry?: () => void\n onClose?: () => void\n /** When true, action buttons show loading spinner and stay open until next server update */\n asyncAction?: boolean\n /** When true (set by server), scratchpad stays visible during stream */\n pinned?: boolean\n /** Log events/actions to console */\n debug?: boolean\n /** Show mini debug overlay */\n debugOverlay?: boolean\n closable?: boolean\n autoCloseDelay?: number\n collapsible?: boolean\n maxHeight?: string\n}\n\nconst STATUS_BADGES: Record<ScratchpadState['status'], { label: string; class: string }> = {\n loading: { label: 'Loading...', class: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400' },\n ready: { label: 'Action available', class: 'bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400' },\n waiting_human: { label: 'Your turn', class: 'bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400 animate-pulse' },\n processing: { label: 'Processing...', class: 'bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400' },\n complete: { label: 'Complete', class: 'bg-green-100 text-green-600 dark:bg-green-900/30 dark:text-green-400' },\n error: { label: 'Error', class: 'bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400' },\n}\n\nexport const ScratchpadPanel: Component<ScratchpadPanelProps> = (props) => {\n const [collapsed, setCollapsed] = createSignal(false)\n const [localPreview, setLocalPreview] = createSignal<ScratchpadState['preview']>(undefined)\n const [loadingAction, setLoadingAction] = createSignal<string | null>(null)\n let previewTimer: ReturnType<typeof setTimeout> | null = null\n const badge = () => STATUS_BADGES[props.state.status] || STATUS_BADGES.loading\n const isClosable = () => props.closable !== false\n const isCollapsible = () => props.collapsible !== false\n const preview = () => localPreview() || props.state.preview\n const hasFilters = () => Object.keys(props.state.filters || {}).length > 0\n const [eventCount, setEventCount] = createSignal(0)\n const [lastEvent, setLastEvent] = createSignal('')\n\n const debugLog = (event: string, data?: any) => {\n if (!props.debug) return\n setEventCount(c => c + 1)\n setLastEvent(event)\n console.log(`[ScratchpadPanel:${props.state.id}] ${event}`, data || '')\n }\n\n // ─── DX1: Proactive console messages (always, not just debug) ───\n\n const VALID_TRANSITIONS: Record<string, string[]> = {\n loading: ['processing', 'waiting_human', 'error'],\n waiting_human: ['processing', 'ready', 'complete', 'error'],\n processing: ['ready', 'complete', 'error', 'waiting_human'],\n ready: ['processing', 'complete', 'error', 'waiting_human'],\n complete: [],\n error: ['processing', 'ready', 'waiting_human'],\n }\n let prevStatus = props.state.status\n\n // Etape 1: create log\n console.info(\n `%c[MCP-UI] Scratchpad created%c id=${props.state.id} sections=${props.state.sections?.length || 0} status=${props.state.status}${props.pinned ? ' pinned=true' : ''}`,\n 'color: #10b981; font-weight: bold', 'color: inherit'\n )\n\n // Etape 3: status transitions + Etape 4: auto-close info\n createEffect(() => {\n const newStatus = props.state.status\n if (newStatus !== prevStatus) {\n console.info(`%c[MCP-UI] Scratchpad status%c ${props.state.id}: ${prevStatus} → ${newStatus}`, 'color: #3b82f6; font-weight: bold', 'color: inherit')\n if (!VALID_TRANSITIONS[prevStatus]?.includes(newStatus)) {\n console.warn(`[MCP-UI] Scratchpad ${props.state.id}: unusual transition ${prevStatus} → ${newStatus}. Expected: ${VALID_TRANSITIONS[prevStatus]?.join(', ') || 'none (terminal)'}`)\n }\n prevStatus = newStatus\n }\n // Etape 4\n if (props.autoCloseDelay && newStatus !== 'complete') {\n console.info(`[MCP-UI] Scratchpad ${props.state.id}: autoCloseDelay=${props.autoCloseDelay}ms but status='${newStatus}' — auto-close will NOT trigger.`)\n }\n })\n\n // Action aliases that auto-close the scratchpad\n const CLOSE_ALIASES = new Set(['done', 'close', 'dismiss', 'validate', 'cancel', 'sufficient'])\n\n const handleAction = (action: string, data?: unknown) => {\n // DX1 Etape 5: action dispatch\n console.info(`%c[MCP-UI] Action dispatched%c value='${action}' asyncAction=${!!props.asyncAction}`, 'color: #f59e0b; font-weight: bold', 'color: inherit')\n if (!props.asyncAction && /^(try_alt:|retry|fetch|load)/.test(action)) {\n console.warn(`[MCP-UI] ScratchpadPanel: action '${action}' looks async but asyncAction prop is not set. The button will NOT show a loading state.`)\n }\n debugLog('onAction', { action, asyncAction: props.asyncAction, data })\n if (props.asyncAction && !CLOSE_ALIASES.has(action)) {\n setLoadingAction(action)\n }\n props.onAction?.(action, data)\n if (CLOSE_ALIASES.has(action) && props.onClose) {\n props.onClose()\n }\n }\n\n // Debug: log state changes\n createEffect(() => {\n debugLog('state', { status: props.state.status, sections: props.state.sections?.length, filters: Object.keys(props.state.filters || {}), turn: props.state.turn })\n })\n\n // Auto-close on complete (unless pinned)\n createEffect(() => {\n if (props.state.status === 'complete' && props.autoCloseDelay && !props.pinned) {\n const timer = setTimeout(() => props.onClose?.(), props.autoCloseDelay)\n onCleanup(() => clearTimeout(timer))\n }\n // Clear loading action when server responds\n if (props.state.status !== 'processing' && loadingAction()) {\n setLoadingAction(null)\n }\n })\n\n // Preview auto-refresh when filters change\n createEffect(() => {\n const endpoint = props.state.previewEndpoint\n if (!endpoint) return\n const filters = props.state.filters\n if (!filters || Object.keys(filters).length === 0) return\n\n if (previewTimer) clearTimeout(previewTimer)\n previewTimer = setTimeout(async () => {\n try {\n const res = await fetch(endpoint, {\n method: props.state.previewMethod || 'POST',\n headers: { 'Content-Type': 'application/json', ...props.state.previewHeaders },\n credentials: 'include',\n body: JSON.stringify({ filters }),\n })\n if (res.ok) setLocalPreview(await res.json())\n } catch { /* ignore */ }\n }, props.state.previewDebounce || 500)\n })\n\n onCleanup(() => { if (previewTimer) clearTimeout(previewTimer) })\n\n return (\n <div\n class={`w-full bg-white dark:bg-gray-800 rounded-xl border shadow-lg overflow-visible ${\n props.state.status === 'waiting_human'\n ? 'border-blue-300 dark:border-blue-600'\n : 'border-gray-200 dark:border-gray-700'\n } ${props.pinned ? 'sticky top-0 z-40' : ''}`}\n style={{ animation: 'scratchpad-slide-down 0.2s ease-out' }}\n >\n {/* Header */}\n <div\n class={`flex items-center justify-between px-4 py-3 border-b border-gray-100 dark:border-gray-700 ${isCollapsible() ? 'cursor-pointer select-none hover:bg-gray-50 dark:hover:bg-gray-750' : ''}`}\n onClick={() => isCollapsible() && setCollapsed(!collapsed())}\n >\n <div class=\"flex items-center gap-2\">\n <span class=\"text-base\">&#128221;</span>\n <h3 class=\"text-sm font-semibold text-gray-900 dark:text-white\">{props.state.title}</h3>\n {/* AgentStatusBadge — auto-detected from agent_card sections (v4.1.0) */}\n {(() => {\n const agentSection = props.state.sections.find(s => s.type === 'agent_card')\n if (!agentSection) return null\n const ac = parseContent(agentSection.content) as AgentCardContent | null\n if (!ac?.name) return null\n return <AgentStatusBadge agentName={ac.name} status={ac.status || 'idle'} />\n })()}\n <Show when={isCollapsible()}>\n <svg class={`w-3.5 h-3.5 text-gray-400 transition-transform ${collapsed() ? '-rotate-90' : ''}`} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </Show>\n </div>\n <div class=\"flex items-center gap-2\">\n <span class={`px-2 py-0.5 text-xs font-medium rounded-full ${badge().class}`}>{badge().label}</span>\n <Show when={isClosable() && props.onClose}>\n <button onClick={(e) => { e.stopPropagation(); props.onClose?.() }} class=\"p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors\" aria-label=\"Close\">\n <svg class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" /></svg>\n </button>\n </Show>\n </div>\n </div>\n\n {/* Body */}\n <Show when={!collapsed()}>\n <div style={{ \"max-height\": props.maxHeight || \"500px\", \"overflow-y\": \"auto\" }}>\n {/* Turn history header */}\n <Show when={props.state.turnHistory && props.state.turnHistory.length > 0}>\n <div class=\"px-4 py-2 border-b border-gray-100 dark:border-gray-700 flex flex-wrap items-center gap-1.5\">\n <For each={props.state.turnHistory}>\n {(turn, i) => (\n <>\n <Show when={i() > 0}>\n <svg class=\"w-3 h-3 text-gray-300 dark:text-gray-600 flex-shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" /></svg>\n </Show>\n <span class={`text-xs font-medium px-2 py-0.5 rounded-full ${\n turn.status === 'done' ? 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400'\n : turn.status === 'active' ? 'bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400'\n : turn.status === 'skipped' ? 'bg-gray-100 dark:bg-gray-700 text-gray-400 line-through'\n : 'bg-gray-100 dark:bg-gray-700 text-gray-400'\n }`}>\n {turn.status === 'done' ? '✅' : turn.status === 'active' ? '●' : '○'} {turn.label}\n <Show when={turn.summary}><span class=\"ml-1 font-normal opacity-75\">— {turn.summary}</span></Show>\n </span>\n </>\n )}\n </For>\n </div>\n </Show>\n\n {/* Sections */}\n <div class=\"divide-y divide-gray-100 dark:divide-gray-700\">\n <For each={props.state.sections}>\n {(section) => (\n <SectionRenderer\n section={section}\n filters={props.state.filters}\n onFilterChange={props.onFilterChange}\n onAction={handleAction}\n onSectionEdit={props.onSectionEdit}\n onSubmit={props.onSubmit}\n />\n )}\n </For>\n </div>\n\n {/* Agent messages */}\n <Show when={props.state.agentMessages.length > 0}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700 space-y-2\">\n <For each={props.state.agentMessages}>\n {(msg) => (\n <div class={`flex items-start gap-2 text-sm rounded-lg px-3 py-2 ${\n msg.type === 'warning' ? 'bg-amber-50 dark:bg-amber-900/10 text-amber-700 dark:text-amber-400'\n : msg.type === 'question' ? 'bg-blue-50 dark:bg-blue-900/10 text-blue-700 dark:text-blue-400 border border-blue-200 dark:border-blue-800'\n : 'bg-gray-50 dark:bg-gray-700/50 text-gray-600 dark:text-gray-400'\n }`}>\n <span class=\"flex-shrink-0 mt-0.5\">{msg.type === 'warning' ? '⚠️' : msg.type === 'question' ? '❓' : 'ℹ️'}</span>\n <p>{msg.text}</p>\n </div>\n )}\n </For>\n </div>\n </Show>\n\n {/* Preview */}\n <Show when={preview()}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700\">\n <Show when={preview()!.count === 0} fallback={\n <>\n <div class=\"flex items-center gap-2 mb-2\">\n <span class=\"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide\">Preview</span>\n <span class=\"px-1.5 py-0.5 text-xs font-bold bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded\">{preview()!.count.toLocaleString()}</span>\n </div>\n <p class=\"text-sm text-gray-700 dark:text-gray-300\">{preview()!.summary}</p>\n <Show when={preview()!.rows && preview()!.rows!.length > 0}>\n <div class=\"mt-2 overflow-x-auto\">\n <table class=\"min-w-full text-xs\">\n <thead><tr><For each={Object.keys(preview()!.rows![0])}>{(k) => <th class=\"px-2 py-1 text-left font-medium text-gray-500 dark:text-gray-400\">{k}</th>}</For></tr></thead>\n <tbody><For each={preview()!.rows!.slice(0, 5)}>{(row) => <tr class=\"border-t border-gray-100 dark:border-gray-700\"><For each={Object.values(row)}>{(v) => <td class=\"px-2 py-1 text-gray-700 dark:text-gray-300\">{String(v)}</td>}</For></tr>}</For></tbody>\n </table>\n </div>\n </Show>\n </>\n }>\n <div class=\"flex flex-col items-center gap-2 py-4 text-center\">\n <span class=\"text-2xl\">&#128269;</span>\n <p class=\"text-sm text-gray-500 dark:text-gray-400\">No results for these filters</p>\n <button type=\"button\" onClick={() => props.onAction?.('refine_filters')} class=\"px-3 py-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg transition-colors\">Modify filters</button>\n </div>\n </Show>\n </div>\n </Show>\n\n {/* Error state with retry */}\n <Show when={props.state.status === 'error' && props.state.error}>\n <div class=\"px-4 py-3 border-t border-red-100 dark:border-red-900/30 bg-red-50 dark:bg-red-900/10\">\n <div class=\"flex items-start gap-2 text-sm text-red-700 dark:text-red-400\">\n <span class=\"flex-shrink-0 mt-0.5\">⚠️</span>\n <div class=\"flex-1\">\n <p class=\"font-medium\">{props.state.error!.message}</p>\n <Show when={props.state.error!.code}>\n <p class=\"text-xs text-red-500 dark:text-red-500 mt-0.5\">Code: {props.state.error!.code}</p>\n </Show>\n </div>\n </div>\n <div class=\"flex gap-2 mt-2\">\n <Show when={props.state.error!.retryable !== false}>\n <button type=\"button\" onClick={() => props.onRetry?.()}\n class=\"px-3 py-1.5 text-sm font-medium rounded-lg bg-red-600 text-white hover:bg-red-700 transition-colors flex items-center gap-1\">\n &#128260; Retry\n </button>\n </Show>\n <Show when={props.onClose}>\n <button type=\"button\" onClick={() => props.onClose?.()}\n class=\"px-3 py-1.5 text-sm font-medium rounded-lg border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors\">\n Close\n </button>\n </Show>\n </div>\n </div>\n </Show>\n\n {/* Search button when waiting_human */}\n <Show when={props.state.status === 'waiting_human' && hasFilters()}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700\">\n <button\n type=\"button\"\n onClick={() => handleAction('search', { filters: props.state.filters })}\n class=\"w-full px-4 py-2.5 text-sm font-semibold rounded-lg text-white bg-blue-600 hover:bg-blue-700 transition-colors flex items-center justify-center gap-2\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" /></svg>\n Search\n </button>\n </div>\n </Show>\n </div>\n </Show>\n\n <style>{`\n @keyframes scratchpad-slide-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }\n `}</style>\n\n {/* Debug overlay */}\n <Show when={props.debugOverlay}>\n <div class=\"absolute bottom-1 right-1 px-2 py-1 text-[9px] font-mono bg-black/80 text-green-400 rounded z-50 pointer-events-none\">\n {props.state.id} | ev:{eventCount()} | sec:{props.state.sections?.length || 0} | {props.state.status} | last:{lastEvent()}\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Helpers ────────────────────────────────────────────────\n\n/** Parse content that may arrive as a JSON string from SSE transport */\nfunction parseContent(content: unknown): unknown {\n if (typeof content === 'string') {\n try { return JSON.parse(content) } catch { return content }\n }\n return content\n}\n\n// ─── Section Renderer ────────────────────────────────────────\n\nconst SectionRenderer: Component<{\n section: ScratchpadSection\n filters: Record<string, string | string[]>\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n onAction?: (action: string, data?: unknown) => void\n onSectionEdit?: (sectionId: string, content: unknown) => void\n onSubmit?: (sectionId: string, values: Record<string, unknown>) => void\n}> = (props) => {\n return (\n <div class=\"px-4 py-3 animate-[slideDown_0.2s_ease-out]\">\n <h4 class=\"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide mb-2\">{props.section.title}</h4>\n <Switch>\n <Match when={props.section.type === 'data'}><DataSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'filter'}><InteractiveFilterSection content={parseContent(props.section.content)} filters={props.filters} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'message'}><p class=\"text-sm text-gray-700 dark:text-gray-300\">{String(props.section.content)}</p></Match>\n <Match when={props.section.type === 'action'}><ActionSection content={parseContent(props.section.content)} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'steps'}><EnrichedStepsSection content={parseContent(props.section.content)} onAction={props.onAction} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'form'}><EmbeddedFormSection content={parseContent(props.section.content)} sectionId={props.section.id} onAction={props.onAction} onSubmit={props.onSubmit} /></Match>\n <Match when={props.section.type === 'understanding'}><UnderstandingSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'feedback'}><FeedbackSection content={parseContent(props.section.content)} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'prompt'}><PromptSection content={parseContent(props.section.content)} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'stepper'}><StepperProgressSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'error'}><ErrorSectionRenderer content={parseContent(props.section.content)} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'source_card'}><SourceCardSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'diff'}><DiffSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'verified_text'}><VerifiedText {...(parseContent(props.section.content) as VerifiedTextContent)} onHallucinationClick={(h) => props.onAction?.('hallucination_click', h)} /></Match>\n <Match when={props.section.type === 'data_preview'}><DataPreviewSection content={parseContent(props.section.content) as DataPreviewContent} /></Match>\n <Match when={props.section.type === 'map'}>{(() => { const c = parseContent(props.section.content) as MapSectionContent; return <MapRenderer params={{ geojson: c.geojson, center: c.center, zoom: c.zoom, geojsonStyle: c.style, popup: c.popup, layers: c.layers, height: c.height || '300px', fitBounds: true }} /> })()}</Match>\n <Match when={props.section.type === 'chart'}>{(() => { const c = parseContent(props.section.content) as ChartComponentParams; return <ChartJSRenderer component={{ id: props.section.id, type: 'chart', position: { colStart: 1, colSpan: 12 }, params: { ...c, renderer: 'native', height: (c as any)?.height || '250px' } }} /> })()}</Match>\n <Match when={props.section.type === 'agent_card'}><AgentCard content={parseContent(props.section.content) as AgentCardContent} /></Match>\n <Match when={props.section.type === 'split_stepper'}><SplitStepper content={parseContent(props.section.content) as SplitStepperContent} /></Match>\n <Match when={props.section.type === 'agent_handoff'}><AgentHandoff content={parseContent(props.section.content) as AgentHandoffContent} /></Match>\n <Match when={props.section.type === 'briefing_diff'}><BriefingDiff content={parseContent(props.section.content) as BriefingDiffContent} /></Match>\n <Match when={true}><pre class=\"text-xs text-gray-500 overflow-auto\">{JSON.stringify(props.section.content, null, 2)}</pre></Match>\n </Switch>\n </div>\n )\n}\n\n// ─── Data Section ────────────────────────────────────────────\n\nconst DataSection: Component<{ content: unknown }> = (props) => {\n const entries = () => typeof props.content === 'object' && props.content ? Object.entries(props.content as Record<string, unknown>) : []\n return (\n <div class=\"space-y-1\">\n <For each={entries()}>{([k, v]) => <div class=\"flex gap-2 text-xs\"><span class=\"text-gray-500 dark:text-gray-400 font-mono min-w-[120px]\">{k}:</span><span class=\"text-gray-900 dark:text-white\">{Array.isArray(v) ? v.join(', ') : String(v)}</span></div>}</For>\n </div>\n )\n}\n\n// ─── Interactive Filter Section (#4, #5) ─────────────────────\n\nconst InteractiveFilterSection: Component<{\n content: unknown\n filters: Record<string, string | string[]>\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n}> = (props) => {\n const [editingKey, setEditingKey] = createSignal<string | null>(null)\n const [editValue, setEditValue] = createSignal('')\n\n // Content can be a filter definition or just use props.filters\n const filterDefs = () => {\n if (typeof props.content === 'object' && props.content) return props.content as Record<string, any>\n return {}\n }\n\n const allKeys = () => {\n const fromContent = Object.keys(filterDefs())\n const fromFilters = Object.keys(props.filters || {})\n return [...new Set([...fromContent, ...fromFilters])]\n }\n\n const removeFilter = (key: string) => {\n const next = { ...props.filters }\n delete next[key]\n props.onFilterChange?.(next)\n }\n\n const setFilter = (key: string, value: string) => {\n props.onFilterChange?.({ ...props.filters, [key]: value })\n setEditingKey(null)\n setEditValue('')\n }\n\n const getDef = (key: string) => filterDefs()[key] || {}\n\n return (\n <div class=\"flex flex-wrap gap-1.5\">\n <For each={allKeys()}>\n {(key) => {\n const def = () => getDef(key)\n const value = () => props.filters[key]\n const hasValue = () => value() !== undefined && value() !== ''\n\n return (\n <div class=\"relative\">\n <Show when={hasValue()} fallback={\n <button type=\"button\" onClick={() => { setEditingKey(key); setEditValue('') }}\n class=\"inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium border border-dashed border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 rounded-full hover:border-blue-400 hover:text-blue-500 transition-colors\">\n + {def()?.label || key}\n </button>\n }>\n <span class=\"inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full\">\n <button type=\"button\" onClick={() => { setEditingKey(key); setEditValue(String(value() || '')) }} class=\"hover:underline\">\n <span class=\"text-blue-500 dark:text-blue-400\">{def()?.label || key}:</span> {Array.isArray(value()) ? (value() as string[]).join(', ') : String(value())}\n </button>\n <Show when={props.onFilterChange}>\n <button type=\"button\" onClick={() => removeFilter(key)} class=\"ml-0.5 hover:text-blue-900 dark:hover:text-blue-100\" aria-label={`Remove ${key}`}>&times;</button>\n </Show>\n </span>\n </Show>\n\n {/* Inline editor */}\n <Show when={editingKey() === key}>\n <div class=\"absolute z-50 mt-1 left-0 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-lg shadow-lg p-2 min-w-[200px]\">\n <Show when={def()?.options} fallback={\n <form onSubmit={(e) => { e.preventDefault(); setFilter(key, editValue()) }} class=\"flex gap-1\">\n <input type=\"text\" value={editValue()} onInput={(e) => setEditValue(e.currentTarget.value)} placeholder={def()?.placeholder || key} autofocus\n class=\"flex-1 px-2 py-1 text-sm border border-gray-200 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:border-blue-400 outline-none\" />\n <button type=\"submit\" class=\"px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700\">OK</button>\n <button type=\"button\" onClick={() => setEditingKey(null)} class=\"px-2 py-1 text-xs text-gray-500 hover:text-gray-700\">Cancel</button>\n </form>\n }>\n <div class=\"max-h-48 overflow-y-auto\">\n <For each={def().options as Array<{ value: string; label: string }>}>\n {(opt) => (\n <button type=\"button\" onClick={() => setFilter(key, opt.value)}\n class={`w-full text-left px-2 py-1.5 text-sm rounded hover:bg-blue-50 dark:hover:bg-blue-900/20 ${\n String(value()) === opt.value ? 'text-blue-600 dark:text-blue-400 bg-blue-50/50 dark:bg-blue-900/10' : 'text-gray-900 dark:text-white'\n }`}>\n {opt.label}\n <Show when={String(value()) === opt.value}><span class=\"ml-1\">✓</span></Show>\n </button>\n )}\n </For>\n </div>\n <button type=\"button\" onClick={() => setEditingKey(null)} class=\"mt-1 w-full px-2 py-1 text-xs text-gray-500 hover:text-gray-700 text-center\">Cancel</button>\n </Show>\n </div>\n </Show>\n </div>\n )\n }}\n </For>\n <Show when={allKeys().length === 0}>\n <p class=\"text-xs text-gray-400 italic\">No filters</p>\n </Show>\n </div>\n )\n}\n\n// ─── Embedded Form Section (#7, #8) ──────────────────────────\n\nconst EmbeddedFormSection: Component<{\n content: unknown\n sectionId: string\n onAction?: (action: string, data?: unknown) => void\n onSubmit?: (sectionId: string, values: Record<string, unknown>) => void\n}> = (props) => {\n const [dynamicOptions, setDynamicOptions] = createSignal<Record<string, Array<{ label: string; value: string }>>>({})\n\n const config = () => {\n const c = props.content as any\n return {\n fields: c?.fields || [],\n submitLabel: c?.submitLabel || 'Submit',\n autoSubmitDelay: c?.autoSubmitDelay as number | undefined,\n }\n }\n\n // Initialize form data with prefill values (v4.2.0)\n const buildInitial = () => {\n const initial: Record<string, any> = {}\n for (const field of config().fields) {\n initial[field.name] = field.prefill ?? field.defaultValue ?? ''\n }\n return initial\n }\n\n const [formData, setFormData] = createSignal<Record<string, any>>(buildInitial())\n\n // Re-init when content changes (streaming updates)\n createEffect(() => {\n const fields = config().fields\n if (fields.length > 0) {\n setFormData((prev) => {\n const next = { ...prev }\n for (const field of fields) {\n // Only apply prefill if the user hasn't changed the field yet\n if (field.prefill != null && (next[field.name] === undefined || next[field.name] === '')) {\n next[field.name] = field.prefill\n }\n }\n return next\n })\n }\n })\n\n // Auto-submit countdown (v4.2.0)\n const [countdown, setCountdown] = createSignal<number | null>(null)\n let countdownTimer: ReturnType<typeof setInterval> | null = null\n const [userInteracted, setUserInteracted] = createSignal(false)\n\n const cancelCountdown = () => {\n if (countdownTimer) { clearInterval(countdownTimer); countdownTimer = null }\n setCountdown(null)\n }\n\n onCleanup(() => cancelCountdown())\n\n createEffect(() => {\n const delay = config().autoSubmitDelay\n if (!delay || userInteracted()) return\n const allRequiredPrefilled = config().fields\n .filter((f: any) => f.required)\n .every((f: any) => f.prefill != null)\n if (!allRequiredPrefilled) return\n\n let remaining = Math.ceil(delay / 1000)\n setCountdown(remaining)\n countdownTimer = setInterval(() => {\n remaining--\n if (remaining <= 0) {\n cancelCountdown()\n const form = document.querySelector(`#scratchpad-form-${props.sectionId}`) as HTMLFormElement | null\n if (form) form.requestSubmit()\n } else {\n setCountdown(remaining)\n }\n }, 1000)\n })\n\n const updateField = (name: string, value: any) => {\n if (!userInteracted()) { setUserInteracted(true); cancelCountdown() }\n setFormData(prev => ({ ...prev, [name]: value }))\n }\n\n // depends_on reactive (#9)\n createEffect(() => {\n const data = formData()\n for (const field of config().fields) {\n const dep = field.depends_on || field.dependsOn\n if (!dep) continue\n const parentValue = data[dep.field]\n if (!parentValue) continue\n const url = (dep.options_endpoint || dep.apiUrl || '').replace('{value}', encodeURIComponent(parentValue))\n if (!url) continue\n const params = new URLSearchParams(dep.extraParams || dep.extra_params || {})\n fetch(`${url}${url.includes('?') ? '&' : '?'}${params}`)\n .then(r => r.json())\n .then(items => {\n const arr = Array.isArray(items) ? items : items.results || items.features || []\n const lf = dep.label_field || dep.labelField || 'label'\n const vf = dep.value_field || dep.valueField || 'value'\n setDynamicOptions(prev => ({ ...prev, [field.name]: arr.map((i: any) => ({ label: i[lf] || String(i), value: String(i[vf] || i[lf] || i) })) }))\n })\n .catch(() => {})\n }\n })\n\n const getField = (field: any): FormFieldParams => {\n const dynOpts = dynamicOptions()[field.name]\n return dynOpts ? { ...field, options: dynOpts } as FormFieldParams : field as FormFieldParams\n }\n\n const handleSubmit = (e: Event) => {\n e.preventDefault()\n\n // Filter out unsupported fields, keep only values with content\n const values = Object.fromEntries(\n Object.entries(formData())\n .filter(([key]) => {\n const field = config().fields.find((f: any) => f.name === key)\n return field?.fieldStatus !== 'unsupported'\n })\n .filter(([, v]) => v !== undefined && v !== '' && !(Array.isArray(v) && v.length === 0))\n )\n\n // DX1 Etape 7: form submit log\n console.info(`%c[MCP-UI] Form submitted%c section=${props.sectionId} fields=${Object.keys(values).join(',')}`, 'color: #8b5cf6; font-weight: bold', 'color: inherit')\n\n if (props.onSubmit) {\n props.onSubmit(props.sectionId, values)\n } else {\n props.onAction?.('submit_form', { sectionId: props.sectionId, values })\n }\n }\n\n // Proposal 3: prefill confidence summary\n const prefillSummary = () => {\n const fields = config().fields\n const total = fields.length\n const prefilled = fields.filter((f: any) => f.prefill != null).length\n return { total, prefilled }\n }\n\n // Proposal 4: auto-submit toast mode — compact view when ALL fields prefilled\n const [expanded, setExpanded] = createSignal(false)\n const allFieldsPrefilled = () => {\n const fields = config().fields\n return fields.length > 0 && fields.every((f: any) => f.prefill != null)\n }\n const showToast = () => allFieldsPrefilled() && !userInteracted() && !expanded() && countdown() != null\n\n return (\n <Show when={!showToast()} fallback={\n <div class=\"flex items-center gap-3 p-3 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg text-sm\">\n <span class=\"flex-1 text-blue-800 dark:text-blue-200 font-medium\">\n {config().fields.map((f: any) => f.displayHint || f.prefill).join(', ')}\n </span>\n <span class=\"text-blue-600 dark:text-blue-300\">{countdown()}s...</span>\n <button type=\"button\" onClick={() => { setExpanded(true); cancelCountdown(); setUserInteracted(true) }}\n class=\"text-blue-600 dark:text-blue-400 underline text-xs\">Modifier</button>\n <button type=\"button\" onClick={() => { cancelCountdown(); setUserInteracted(true) }}\n class=\"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300\">&times;</button>\n </div>\n }>\n <form id={`scratchpad-form-${props.sectionId}`} onSubmit={handleSubmit} class=\"flex flex-col gap-3\">\n {/* Proposal 3: prefill summary */}\n <Show when={prefillSummary().prefilled > 0}>\n <p class=\"text-xs text-gray-500 dark:text-gray-400\">\n {prefillSummary().prefilled} champ{prefillSummary().prefilled > 1 ? 's' : ''} pré-rempli{prefillSummary().prefilled > 1 ? 's' : ''} sur {prefillSummary().total}\n </p>\n </Show>\n <For each={config().fields}>\n {(field) => (\n <FormFieldRenderer\n field={getField(field)}\n value={formData()[field.name]}\n onChange={(val) => updateField(field.name, val)}\n formData={formData}\n />\n )}\n </For>\n <Show when={countdown() != null}>\n <div class=\"flex items-center gap-3 p-2 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-md text-sm\">\n <span class=\"text-blue-700 dark:text-blue-300\">\n {config().submitLabel} in {countdown()}s...\n </span>\n <button\n type=\"button\"\n onClick={() => { cancelCountdown(); setUserInteracted(true) }}\n class=\"text-blue-600 dark:text-blue-400 underline hover:text-blue-800 dark:hover:text-blue-200\"\n >\n Cancel\n </button>\n </div>\n </Show>\n <div class=\"flex justify-end\">\n <button type=\"submit\" class=\"px-4 py-2 text-sm font-medium rounded-lg text-white bg-blue-600 hover:bg-blue-700 transition-colors\">\n {config().submitLabel}\n </button>\n </div>\n </form>\n </Show>\n )\n}\n\n// ─── Enriched Steps Section (#6) ─────────────────────────────\n\nconst EnrichedStepsSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n}> = (props) => {\n const stepsData = () => {\n const c = props.content as any\n return { steps: c?.steps || [], currentStep: c?.currentStep ?? 0 }\n }\n\n return (\n <div class=\"space-y-3\">\n <For each={stepsData().steps}>\n {(step: any) => (\n <div class={`rounded-lg ${step.status === 'active' ? 'bg-blue-50/50 dark:bg-blue-900/10 border border-blue-200 dark:border-blue-800 p-3 animate-pulse' : 'px-1'}`}>\n <div class={`flex items-center gap-2 text-sm font-medium ${\n step.status === 'done' ? 'text-green-600 dark:text-green-400'\n : step.status === 'active' ? 'text-blue-600 dark:text-blue-400'\n : 'text-gray-400'\n }`}>\n <span>{step.status === 'done' ? '✅' : step.status === 'active' ? '●' : '○'}</span>\n {step.label}\n <Show when={step.description && step.status === 'active'}>\n <span class=\"text-xs font-normal text-gray-500 dark:text-gray-400\">— {step.description}</span>\n </Show>\n </div>\n\n {/* Embedded content for active step */}\n <Show when={step.status === 'active' && step.content}>\n <div class=\"mt-2 ml-6\">\n <SectionRenderer\n section={step.content}\n filters={{}}\n onFilterChange={props.onFilterChange}\n onAction={props.onAction}\n />\n </div>\n </Show>\n </div>\n )}\n </For>\n\n {/* Next button */}\n <Show when={stepsData().steps.some((s: any) => s.status === 'active')}>\n <div class=\"flex justify-end\">\n <button type=\"button\" onClick={() => props.onAction?.('next_step', { step: stepsData().currentStep })}\n class=\"px-3 py-1.5 text-sm font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg transition-colors flex items-center gap-1\">\n Next <svg class=\"w-3.5 h-3.5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" /></svg>\n </button>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Action Section ──────────────────────────────────────────\n\nconst ActionSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const data = () => {\n const c = props.content as any\n if (Array.isArray(c)) return { actions: c, title: undefined, preview: undefined, validation: undefined }\n if (c && Array.isArray(c.actions)) return { actions: c.actions, title: c.title, preview: c.preview, validation: c.validation }\n return { actions: [], title: undefined, preview: undefined, validation: undefined }\n }\n\n return (\n <div>\n {/* Confirm checkpoint: title + preview (v4.1.0) */}\n <Show when={data().title}>\n <p class=\"text-sm font-medium text-gray-800 dark:text-gray-200 mb-2\">{data().title}</p>\n </Show>\n <Show when={data().preview}>\n {(preview) => (\n <div class=\"mb-2 p-2 rounded bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-xs text-gray-600 dark:text-gray-400\">\n <Show when={preview().count != null}>\n <span class=\"font-medium text-gray-800 dark:text-gray-200\">{preview().count}</span> items\n </Show>\n <Show when={preview().summary}>\n <span class=\"ml-1\">&mdash; {preview().summary}</span>\n </Show>\n </div>\n )}\n </Show>\n <Show when={data().validation && data().validation.confidence != null}>\n <div class=\"mb-2 flex items-center gap-2 text-xs\">\n <span classList={{\n 'text-green-600 dark:text-green-400': data().validation.confidence >= 0.8,\n 'text-amber-600 dark:text-amber-400': data().validation.confidence >= 0.5 && data().validation.confidence < 0.8,\n 'text-red-600 dark:text-red-400': data().validation.confidence < 0.5,\n }}>\n {Math.round(data().validation.confidence * 100)}% verified\n </span>\n <Show when={data().validation.hallucinated?.length > 0}>\n <span class=\"text-amber-600\">({data().validation.hallucinated.length} unverified)</span>\n </Show>\n </div>\n </Show>\n\n {/* Action buttons */}\n <div class=\"flex flex-wrap gap-2\">\n <For each={data().actions as Array<{ label: string; value?: string; action?: string; variant?: string; icon?: string }>}>\n {(item) => (\n <button type=\"button\" on:click={() => props.onAction?.(item.value || item.action || item.label, item)}\n class={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors ${\n item.variant === 'primary' ? 'bg-blue-600 text-white hover:bg-blue-700'\n : item.variant === 'danger' ? 'bg-red-600 text-white hover:bg-red-700'\n : item.variant === 'secondary' ? 'border border-blue-300 dark:border-blue-600 text-blue-700 dark:text-blue-300 hover:bg-blue-50 dark:hover:bg-blue-900/20'\n : 'border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700'\n }`}>\n <Show when={item.icon}><span class=\"mr-1\">{item.icon}</span></Show>\n {item.label}\n </button>\n )}\n </For>\n </div>\n </div>\n )\n}\n\n// ─── Understanding Section — agent comprehension ─────────────\n\nconst UnderstandingSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return { detections: c?.detections || [], warnings: c?.warnings || [] }\n }\n\n const confidenceClass = (conf?: string) => {\n switch (conf) {\n case 'high': return 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400'\n case 'medium': return 'bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-400'\n case 'low': return 'bg-red-100 dark:bg-red-900/30 text-red-700 dark:text-red-400'\n default: return 'bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400'\n }\n }\n\n return (\n <div class=\"space-y-2\">\n <div class=\"space-y-1.5\">\n <For each={data().detections}>\n {(det: any) => (\n <div class=\"flex items-center gap-2 text-sm\">\n <span class={`px-1.5 py-0.5 text-xs font-medium rounded ${confidenceClass(det.confidence)}`}>\n {det.label}\n </span>\n <span class=\"text-gray-900 dark:text-white\">{det.value}</span>\n </div>\n )}\n </For>\n </div>\n <Show when={data().warnings.length > 0}>\n <div class=\"space-y-1\">\n <For each={data().warnings}>\n {(w: string) => (\n <div class=\"flex items-start gap-1.5 text-xs text-amber-600 dark:text-amber-400\">\n <span class=\"flex-shrink-0\">⚠️</span>\n <span>{w}</span>\n </div>\n )}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Feedback Section — thumbs up/down ───────────────────────\n\nconst FeedbackSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const [comment, setComment] = createSignal('')\n const [showComment, setShowComment] = createSignal(false)\n const [submitted, setSubmitted] = createSignal<string | null>(null)\n const data = () => {\n const c = props.content as any\n const options = c?.options || [\n { value: c?.approve?.value || 'approve', label: c?.approve?.label || 'Yes', icon: '\\uD83D\\uDC4D', variant: 'primary' },\n { value: c?.reject?.value || 'reject', label: c?.reject?.label || 'No', icon: '\\uD83D\\uDC4E' },\n ]\n return {\n question: c?.question || '',\n options: options as Array<{ value: string; label: string; icon?: string; variant?: string; needsComment?: boolean }>,\n allowFreeText: c?.allowFreeText ?? c?.allowComment ?? false,\n placeholder: c?.placeholder || c?.commentPlaceholder || 'Add a comment...',\n // v4.1.0: per-step feedback\n agentId: c?.agentId as string | undefined,\n stepId: c?.stepId as string | undefined,\n }\n }\n\n const handleOption = (option: any) => {\n if (option.needsComment) {\n setShowComment(true)\n return\n }\n setSubmitted(option.value)\n const payload = {\n option: option.value,\n comment: comment(),\n ...(data().agentId ? { agentId: data().agentId } : {}),\n ...(data().stepId ? { stepId: data().stepId } : {}),\n }\n console.info('[MCP-UI:HITL] user responded', {\n agentId: data().agentId, stepId: data().stepId, action: option.value,\n })\n props.onAction?.('feedback', payload)\n }\n\n return (\n <div class=\"space-y-3\">\n <p class=\"text-sm text-gray-700 dark:text-gray-300\">{data().question}</p>\n\n {/* Already submitted — show micro-badge */}\n <Show when={submitted()}>\n <div class=\"flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400\">\n <span classList={{\n 'text-green-600': submitted() === 'approve',\n 'text-red-600': submitted() === 'reject',\n 'text-blue-600': submitted() !== 'approve' && submitted() !== 'reject',\n }}>\n {submitted() === 'approve' ? '\\u2705' : submitted() === 'reject' ? '\\u274C' : '\\uD83D\\uDCAC'} {submitted()}\n </span>\n <Show when={comment()}>\n <span class=\"italic\">&mdash; {comment()}</span>\n </Show>\n </div>\n </Show>\n\n {/* Buttons — hidden after submit */}\n <Show when={!submitted()}>\n <div class=\"flex flex-wrap gap-2\">\n <For each={data().options}>\n {(option) => (\n <button type=\"button\" on:click={() => handleOption(option)}\n class={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors flex items-center gap-1 ${\n option.variant === 'primary' ? 'bg-blue-600 text-white hover:bg-blue-700'\n : option.variant === 'danger' ? 'bg-red-600 text-white hover:bg-red-700'\n : 'border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700'\n }`}>\n <Show when={option.icon}><span>{option.icon}</span></Show>\n {option.label}\n </button>\n )}\n </For>\n </div>\n <Show when={data().allowFreeText || showComment()}>\n <div class=\"flex gap-1\">\n <input type=\"text\" value={comment()} onInput={(e) => setComment(e.currentTarget.value)}\n placeholder={data().placeholder} autofocus={showComment()}\n class=\"flex-1 px-3 py-2 text-sm border border-gray-200 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:border-blue-400 outline-none\" />\n <button type=\"button\" on:click={() => { setSubmitted('comment'); props.onAction?.('feedback', { option: 'comment', comment: comment(), agentId: data().agentId, stepId: data().stepId }) }}\n class=\"px-3 py-2 text-sm bg-blue-600 text-white rounded-lg hover:bg-blue-700\">Send</button>\n </div>\n </Show>\n </Show>\n </div>\n )\n}\n\n// ─── Prompt Section — agent interpretation ───────────────────\n\nconst PromptSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const data = () => {\n const c = props.content as any\n return {\n originalQuery: c?.originalQuery || '',\n interpretation: c?.interpretation || '',\n extracted: c?.extracted || {},\n plan: c?.plan || '',\n editable: c?.editable ?? false,\n }\n }\n\n return (\n <div class=\"space-y-2\">\n <Show when={data().originalQuery}>\n <p class=\"text-xs text-gray-500 dark:text-gray-400 italic\">\"{data().originalQuery}\"</p>\n </Show>\n <div class=\"space-y-1\">\n <For each={Object.entries(data().extracted)}>\n {([key, value]) => (\n <div class=\"flex gap-2 text-sm\">\n <span class=\"text-gray-500 dark:text-gray-400 font-medium min-w-[80px]\">{key}:</span>\n <span class=\"text-gray-900 dark:text-white\">{String(value)}</span>\n </div>\n )}\n </For>\n </div>\n <Show when={data().plan}>\n <div class=\"mt-2 px-3 py-2 bg-blue-50 dark:bg-blue-900/10 rounded-lg text-sm text-blue-700 dark:text-blue-300\">\n <span class=\"font-medium\">Plan:</span> {data().plan}\n </div>\n </Show>\n <Show when={data().editable}>\n <button type=\"button\" onClick={() => props.onAction?.('edit_prompt', data())}\n class=\"text-xs text-blue-600 dark:text-blue-400 hover:underline flex items-center gap-1\">\n &#9998; Modify\n </button>\n </Show>\n </div>\n )\n}\n\n// ─── Stepper Progress Section (multi-source) ─────────────────\n\nconst StepperProgressSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return {\n steps: (c?.steps || []) as Array<{ id: string; label: string; status: string; summary?: string; duration_ms?: number }>,\n orientation: c?.orientation || 'horizontal',\n }\n }\n\n const statusIcon = (status: string) => {\n switch (status) {\n case 'done': return '✅'\n case 'active': return '🔄'\n case 'error': return '❌'\n default: return '⏳'\n }\n }\n\n const isHorizontal = () => data().orientation === 'horizontal'\n\n return (\n <Show when={isHorizontal()} fallback={\n <div class=\"space-y-2\">\n <For each={data().steps}>\n {(step) => (\n <div class={`flex items-start gap-2 text-sm ${step.status === 'active' ? 'font-medium' : ''} ${step.status === 'pending' ? 'text-gray-400' : 'text-gray-700 dark:text-gray-300'}`}>\n <span class=\"flex-shrink-0\">{statusIcon(step.status)}</span>\n <div>\n <span>{step.label}</span>\n <Show when={step.summary}>\n <span class=\"ml-1 text-xs text-gray-500 dark:text-gray-400\">— {step.summary}</span>\n </Show>\n <Show when={step.duration_ms}>\n <span class=\"ml-1 text-xs text-gray-400\">({step.duration_ms}ms)</span>\n </Show>\n </div>\n </div>\n )}\n </For>\n </div>\n }>\n <div class=\"flex items-center gap-1 flex-wrap\">\n <For each={data().steps}>\n {(step, i) => (\n <>\n <Show when={i() > 0}>\n <svg class=\"w-3 h-3 text-gray-300 dark:text-gray-600 flex-shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" /></svg>\n </Show>\n <div class={`flex items-center gap-1 px-2 py-1 rounded text-xs ${\n step.status === 'done' ? 'bg-green-50 dark:bg-green-900/20 text-green-700 dark:text-green-400'\n : step.status === 'active' ? 'bg-blue-50 dark:bg-blue-900/20 text-blue-700 dark:text-blue-400 font-medium animate-pulse'\n : step.status === 'error' ? 'bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-400'\n : 'text-gray-400'\n }`}>\n <span>{statusIcon(step.status)}</span>\n <span>{step.label}</span>\n <Show when={step.summary}>\n <span class=\"text-[10px] opacity-75\">{step.summary}</span>\n </Show>\n </div>\n </>\n )}\n </For>\n </div>\n </Show>\n )\n}\n\n// ─── Error Section (F6) ──────────────────────────────────────\n\nconst ErrorSectionRenderer: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const [showDetails, setShowDetails] = createSignal(false)\n const data = () => {\n const c = props.content as any\n const d = { message: c?.message || 'Error', severity: c?.severity || 'error', retryAction: c?.retryAction, retryLabel: c?.retryLabel || 'Retry', details: c?.details, timestamp: c?.timestamp }\n // DX1 Etape 8\n console.info(`%c[MCP-UI] Error section rendered%c severity=${d.severity} retry=${!!d.retryAction}`, 'color: #ef4444; font-weight: bold', 'color: inherit')\n return d\n }\n const isWarning = () => data().severity === 'warning'\n\n return (\n <div class={`rounded-lg px-3 py-2 text-sm ${isWarning() ? 'bg-amber-50 dark:bg-amber-900/10 text-amber-700 dark:text-amber-400 border border-amber-200 dark:border-amber-800' : 'bg-red-50 dark:bg-red-900/10 text-red-700 dark:text-red-400 border border-red-200 dark:border-red-800'}`}>\n <div class=\"flex items-start gap-2\">\n <span class=\"flex-shrink-0\">{isWarning() ? '⚠️' : '❌'}</span>\n <div class=\"flex-1\">\n <p>{data().message}</p>\n <div class=\"flex gap-2 mt-2\">\n <Show when={data().retryAction}>\n <button type=\"button\" onClick={() => props.onAction?.(data().retryAction!)} class={`px-2 py-1 text-xs font-medium rounded ${isWarning() ? 'bg-amber-600 text-white hover:bg-amber-700' : 'bg-red-600 text-white hover:bg-red-700'} transition-colors`}>&#128260; {data().retryLabel}</button>\n </Show>\n <Show when={data().details}>\n <button type=\"button\" onClick={() => setShowDetails(!showDetails())} class=\"px-2 py-1 text-xs opacity-70 hover:opacity-100\">&#9654; Details</button>\n </Show>\n </div>\n <Show when={showDetails() && data().details}>\n <pre class=\"mt-2 text-xs opacity-70 overflow-x-auto\">{data().details}</pre>\n </Show>\n </div>\n </div>\n </div>\n )\n}\n\n// ─── Source Card Section (F9) ────────────────────────────────\n\nconst SourceCardSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return { name: c?.name || 'Source', status: c?.status || 'available', capabilities: c?.capabilities || [], latency_ms: c?.latency_ms, freshness: c?.freshness, row_count: c?.row_count }\n }\n const statusIcon = () => ({ queried: '✅', available: '📦', error: '❌' } as Record<string, string>)[data().status] || '📦'\n\n return (\n <div class=\"rounded-lg border border-gray-200 dark:border-gray-700 px-3 py-2\">\n <div class=\"flex items-center justify-between mb-1.5\">\n <span class=\"text-sm font-medium text-gray-900 dark:text-white\">{statusIcon()} {data().name}</span>\n <Show when={data().row_count !== undefined}>\n <span class=\"text-xs font-bold text-blue-600 dark:text-blue-400\">{data().row_count?.toLocaleString()} results</span>\n </Show>\n </div>\n <div class=\"flex flex-wrap gap-1.5 mb-1\">\n <For each={data().capabilities}>\n {(cap: any) => (\n <span class={`text-[10px] px-1.5 py-0.5 rounded ${cap.supported ? 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400' : 'bg-red-100 dark:bg-red-900/30 text-red-600 dark:text-red-400'}`}>\n {cap.supported ? '✅' : '❌'} {cap.label}\n </span>\n )}\n </For>\n </div>\n <Show when={data().freshness || data().latency_ms}>\n <p class=\"text-[10px] text-gray-400\">{[data().freshness, data().latency_ms ? `${data().latency_ms}ms` : ''].filter(Boolean).join(' · ')}</p>\n </Show>\n </div>\n )\n}\n\n// ─── Diff Section (F10) ──────────────────────────────────────\n\nconst DiffSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return { left: c?.left || { label: 'A', rows: [] }, right: c?.right || { label: 'B', rows: [] }, highlight: c?.highlight_columns || [] }\n }\n const allKeys = () => {\n const l = data().left.rows[0] || {}\n const r = data().right.rows[0] || {}\n return [...new Set([...Object.keys(l), ...Object.keys(r)])]\n }\n\n return (\n <div class=\"overflow-x-auto\">\n <table class=\"min-w-full text-xs\">\n <thead>\n <tr>\n <th class=\"px-2 py-1 text-left text-gray-500 dark:text-gray-400\"></th>\n <th class=\"px-2 py-1 text-left font-medium text-blue-600 dark:text-blue-400\">{data().left.label}</th>\n <th class=\"px-2 py-1 text-left font-medium text-purple-600 dark:text-purple-400\">{data().right.label}</th>\n </tr>\n </thead>\n <tbody>\n <For each={allKeys()}>\n {(key) => {\n const lVal = () => data().left.rows[0]?.[key]\n const rVal = () => data().right.rows[0]?.[key]\n const isDiff = () => String(lVal()) !== String(rVal()) && data().highlight.includes(key)\n return (\n <tr class={`border-t border-gray-100 dark:border-gray-700 ${isDiff() ? 'bg-yellow-50 dark:bg-yellow-900/10' : ''}`}>\n <td class=\"px-2 py-1 font-mono text-gray-500 dark:text-gray-400\">{key}</td>\n <td class=\"px-2 py-1 text-gray-900 dark:text-white\">{lVal() !== undefined ? String(lVal()) : '—'}</td>\n <td class=\"px-2 py-1 text-gray-900 dark:text-white\">{rVal() !== undefined ? String(rVal()) : '—'}</td>\n </tr>\n )\n }}\n </For>\n </tbody>\n </table>\n </div>\n )\n}\n"],"names":["STATUS_BADGES","loading","label","class","ready","waiting_human","processing","complete","error","ScratchpadPanel","props","collapsed","setCollapsed","createSignal","localPreview","setLocalPreview","undefined","loadingAction","setLoadingAction","previewTimer","badge","state","status","isClosable","closable","isCollapsible","collapsible","preview","hasFilters","Object","keys","filters","length","eventCount","setEventCount","lastEvent","setLastEvent","debugLog","event","data","debug","c","console","log","id","VALID_TRANSITIONS","prevStatus","info","sections","pinned","createEffect","newStatus","includes","warn","join","autoCloseDelay","CLOSE_ALIASES","Set","handleAction","action","asyncAction","test","has","onAction","onClose","turn","timer","setTimeout","onCleanup","clearTimeout","endpoint","previewEndpoint","res","fetch","method","previewMethod","headers","previewHeaders","credentials","body","JSON","stringify","ok","json","previewDebounce","_el$","_$getNextElement","_tmpl$12","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$7","_el$8","_co$","_$getNextMarker","_el$9","_el$0","_co$2","_el$1","_el$10","_el$12","_el$13","_co$3","_el$69","_el$70","_co$16","_el$53","_el$71","_el$72","_co$17","$$click","_$insert","title","agentSection","find","s","type","ac","parseContent","content","name","_$createComponent","AgentStatusBadge","agentName","Show","when","children","_el$6","_tmpl$","_$effect","_$setAttribute","_$memo","_el$11","_tmpl$2","e","stopPropagation","_$runHydrationEvents","_el$14","_tmpl$10","_el$43","_el$44","_co$8","_el$16","_el$45","_el$46","_co$9","_el$47","_el$48","_co$0","_el$49","_el$50","_co$1","_el$51","_el$52","_co$10","turnHistory","_el$15","_tmpl$3","For","each","i","_tmpl$13","_el$74","_tmpl$15","_el$80","_el$81","_co$19","_el$75","_el$82","_el$83","_co$20","_el$84","_el$85","_co$21","_c$","summary","_el$76","_tmpl$14","_el$77","_el$78","_el$79","_co$18","_$className","section","SectionRenderer","onFilterChange","onSectionEdit","onSubmit","agentMessages","_el$17","_tmpl$4","msg","_el$86","_tmpl$16","_el$87","_el$88","_c$2","text","_el$18","_tmpl$6","count","fallback","_el$89","_tmpl$17","_el$90","_el$91","toLocaleString","_el$92","_tmpl$18","rows","_el$93","_tmpl$19","_el$94","_el$95","_el$96","_el$97","k","_el$98","_tmpl$20","slice","row","_el$99","_tmpl$21","values","v","_el$100","_tmpl$22","String","_el$19","_tmpl$5","_el$20","_el$21","_el$22","_el$23","_tmpl$0","_el$24","_el$25","_el$26","_el$27","_el$32","_el$33","_co$5","_el$34","_el$37","_el$38","_co$6","_el$39","_el$40","_co$7","message","code","_el$28","_tmpl$7","_el$29","_el$30","_el$31","_co$4","retryable","_el$35","_tmpl$8","onRetry","_el$36","_tmpl$9","_el$41","_tmpl$1","_el$42","_$p","_$setStyleProperty","maxHeight","debugOverlay","_el$54","_tmpl$11","_el$59","_el$60","_co$11","_el$55","_el$61","_el$62","_co$12","_el$56","_el$63","_el$64","_co$13","_el$57","_el$65","_el$66","_co$14","_el$58","_el$67","_el$68","_co$15","_p$","_v$","_v$2","_v$3","t","a","parse","_el$101","_tmpl$24","_el$102","_el$105","_el$106","_co$22","Switch","Match","DataSection","InteractiveFilterSection","_el$103","ActionSection","EnrichedStepsSection","EmbeddedFormSection","sectionId","UnderstandingSection","FeedbackSection","PromptSection","StepperProgressSection","ErrorSectionRenderer","SourceCardSection","DiffSection","VerifiedText","_$mergeProps","onHallucinationClick","h","DataPreviewSection","MapRenderer","params","geojson","center","zoom","geojsonStyle","style","popup","layers","height","fitBounds","ChartJSRenderer","component","position","colStart","colSpan","renderer","AgentCard","SplitStepper","AgentHandoff","BriefingDiff","_el$104","_tmpl$23","entries","_el$107","_tmpl$25","_el$108","_tmpl$26","_el$109","_el$111","_el$112","_co$23","_el$113","_c$3","Array","isArray","editingKey","setEditingKey","editValue","setEditValue","filterDefs","allKeys","fromContent","fromFilters","removeFilter","key","next","setFilter","value","getDef","_el$114","_tmpl$28","_el$116","_el$117","_co$24","_el$118","_el$119","_co$25","def","hasValue","_el$120","_tmpl$34","_el$136","_el$137","_co$29","_el$138","_el$139","_co$30","_el$140","_tmpl$35","_el$141","_el$142","_el$143","_co$31","_el$121","_tmpl$30","_el$122","_el$123","_el$125","_el$126","_co$26","_el$127","_el$128","_el$129","_co$27","_el$131","_el$132","_co$28","_c$4","_el$130","_tmpl$29","_el$133","_tmpl$33","options","_el$144","_tmpl$36","_el$145","_el$146","_el$147","addEventListener","preventDefault","$$input","currentTarget","placeholder","_$setProperty","_el$134","_tmpl$31","opt","_el$148","_tmpl$38","_el$150","_el$151","_co$32","_el$152","_el$153","_co$33","_tmpl$37","_el$135","_tmpl$32","_tmpl$27","dynamicOptions","setDynamicOptions","config","fields","submitLabel","autoSubmitDelay","buildInitial","initial","field","prefill","defaultValue","formData","setFormData","prev","countdown","setCountdown","countdownTimer","userInteracted","setUserInteracted","cancelCountdown","clearInterval","delay","allRequiredPrefilled","filter","f","required","every","remaining","Math","ceil","setInterval","form","document","querySelector","requestSubmit","updateField","dep","depends_on","dependsOn","parentValue","url","options_endpoint","apiUrl","replace","encodeURIComponent","URLSearchParams","extraParams","extra_params","then","r","items","arr","results","features","lf","label_field","labelField","vf","value_field","valueField","map","catch","getField","dynOpts","handleSubmit","fromEntries","fieldStatus","prefillSummary","total","prefilled","expanded","setExpanded","allFieldsPrefilled","showToast","_el$184","_tmpl$42","_el$185","_el$186","_el$188","_el$189","_co$43","_el$190","_el$191","displayHint","_el$154","_tmpl$41","_el$178","_el$179","_co$40","_el$180","_el$181","_co$41","_el$182","_el$183","_co$42","_el$176","_el$177","_el$155","_tmpl$39","_el$159","_el$160","_co$34","_el$156","_el$161","_el$162","_co$35","_el$157","_el$163","_el$164","_co$36","_el$158","_el$165","_el$166","_co$37","FormFieldRenderer","onChange","val","_el$167","_tmpl$40","_el$168","_el$171","_el$172","_co$38","_el$169","_el$173","_el$174","_co$39","_el$175","stepsData","steps","currentStep","_el$192","_tmpl$44","_el$195","_el$196","_co$44","_el$197","_el$198","_co$45","step","_el$199","_tmpl$47","_el$200","_el$201","_el$206","_el$207","_co$47","_el$208","_el$209","_co$48","_el$211","_el$212","_co$49","_c$5","description","_el$202","_tmpl$45","_el$203","_el$204","_el$205","_co$46","_el$210","_tmpl$46","_v$4","_v$5","some","_el$193","_tmpl$43","_el$194","actions","validation","_el$213","_tmpl$51","_el$228","_el$229","_co$53","_el$230","_el$231","_co$54","_el$232","_el$233","_co$55","_el$227","_el$214","_tmpl$48","_el$234","_tmpl$54","_el$240","_el$241","_co$57","_el$242","_el$243","_co$58","_el$235","_tmpl$52","_el$236","_tmpl$53","_el$237","_el$238","_el$239","_co$56","confidence","_el$215","_tmpl$50","_el$216","_el$218","_el$219","_co$50","_el$225","_el$226","_co$52","round","hallucinated","_el$220","_tmpl$49","_el$221","_el$223","_el$224","_co$51","_$classList","item","_el$244","_el$246","_el$247","_co$59","_el$248","_el$249","_co$60","_$addEventListener","icon","_el$245","_tmpl$55","variant","detections","warnings","confidenceClass","conf","_el$250","_tmpl$56","_el$251","_el$253","_el$254","_co$61","det","_el$255","_tmpl$57","_el$256","_el$257","_el$252","w","_el$258","_tmpl$58","_el$259","_el$260","comment","setComment","showComment","setShowComment","submitted","setSubmitted","approve","reject","question","allowFreeText","allowComment","commentPlaceholder","agentId","stepId","handleOption","option","needsComment","payload","_el$261","_tmpl$63","_el$262","_el$280","_el$281","_co$66","_el$282","_el$283","_co$67","_el$263","_tmpl$60","_el$264","_el$266","_el$267","_co$62","_el$265","_el$268","_el$269","_co$63","_el$274","_el$275","_co$65","_c$6","_el$270","_tmpl$59","_el$271","_el$272","_el$273","_co$64","_v$6","_v$7","_v$8","classList","toggle","_el$276","_tmpl$61","_el$284","_el$286","_el$287","_co$68","_el$288","_el$289","_co$69","_el$285","_tmpl$64","_el$277","_tmpl$62","_el$278","_el$279","_v$9","_v$0","originalQuery","interpretation","extracted","plan","editable","_el$290","_tmpl$68","_el$303","_el$304","_co$72","_el$296","_el$305","_el$306","_co$73","_el$307","_el$308","_co$74","_el$291","_tmpl$65","_el$292","_el$294","_el$295","_co$70","_el$309","_tmpl$69","_el$310","_el$312","_el$313","_co$75","_el$314","_el$297","_tmpl$66","_el$298","_el$299","_el$300","_el$301","_co$71","_el$302","_tmpl$67","orientation","statusIcon","isHorizontal","_el$316","_tmpl$71","_el$317","_tmpl$74","_el$318","_el$319","_el$320","_el$330","_el$331","_co$78","_el$332","_el$333","_co$79","_el$321","_tmpl$72","_el$322","_el$323","_el$324","_co$76","duration_ms","_el$325","_tmpl$73","_el$326","_el$328","_el$329","_co$77","_el$315","_tmpl$70","_el$335","_tmpl$76","_el$336","_el$337","_el$339","_el$340","_co$80","_el$338","_tmpl$75","showDetails","setShowDetails","d","severity","retryAction","retryLabel","details","timestamp","isWarning","_el$341","_tmpl$80","_el$342","_el$343","_el$344","_el$345","_el$346","_el$352","_el$353","_co$82","_el$354","_el$355","_co$83","_el$357","_el$358","_co$84","_el$347","_tmpl$77","_el$348","_el$349","_el$350","_co$81","_el$351","_tmpl$78","_el$356","_tmpl$79","capabilities","latency_ms","freshness","row_count","queried","available","_el$359","_tmpl$83","_el$360","_el$361","_el$363","_el$364","_co$85","_el$362","_el$365","_el$366","_co$86","_el$371","_el$372","_co$88","_el$373","_el$375","_el$376","_co$89","_el$367","_tmpl$81","_el$369","_el$370","_co$87","cap","_el$377","_tmpl$84","_el$379","_el$380","_co$90","_el$378","_el$381","_el$382","_co$91","supported","_el$374","_tmpl$82","Boolean","left","right","highlight","highlight_columns","l","_el$383","_tmpl$85","_el$384","_el$385","_el$386","_el$387","_el$388","_el$389","_el$390","lVal","rVal","isDiff","_el$391","_tmpl$86","_el$392","_el$393","_el$394","_c$7","_c$8","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"ScratchpadPanel.cjs","sources":["../../src/components/ScratchpadPanel.tsx"],"sourcesContent":["/**\n * ScratchpadPanel v3 — Full HITL/AITL workspace\n * v2.9.0: Interactive filters, form sections, stepper, preview auto-refresh\n *\n * @experimental\n */\n\nimport { Component, Show, For, Switch, Match, createSignal, createEffect, onCleanup } from 'solid-js'\nimport type { ScratchpadState, ScratchpadSection, VerifiedTextContent, DataPreviewContent, MapSectionContent, AgentCardContent, SplitStepperContent, AgentHandoffContent, BriefingDiffContent } from '../types/chat-bus'\nimport type { FormFieldParams, ChartComponentParams } from '../types'\nimport { FormFieldRenderer } from './FormFieldRenderer'\nimport { VerifiedText } from './VerifiedText'\nimport { DataPreviewSection } from './DataPreviewSection'\nimport { MapRenderer } from './MapRenderer'\nimport { ChartJSRenderer } from './ChartJSRenderer'\nimport { AgentCard, AgentStatusBadge } from './AgentCard'\nimport { SplitStepper } from './SplitStepper'\nimport { AgentHandoff } from './AgentHandoff'\nimport { BriefingDiff } from './BriefingDiff'\n\nexport interface ScratchpadPanelProps {\n state: ScratchpadState\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n onAction?: (action: string, data?: unknown) => void\n onSectionEdit?: (sectionId: string, content: unknown) => void\n /** Dedicated callback for form submissions (cleaner than onAction) */\n onSubmit?: (sectionId: string, values: Record<string, unknown>) => void\n /** Called when user clicks retry on error state */\n onRetry?: () => void\n onClose?: () => void\n /** When true, action buttons show loading spinner and stay open until next server update */\n asyncAction?: boolean\n /** When true (set by server), scratchpad stays visible during stream */\n pinned?: boolean\n /** Log events/actions to console */\n debug?: boolean\n /** Show mini debug overlay */\n debugOverlay?: boolean\n /** Show collapsible debug trace panel under forms */\n debugTrace?: boolean\n closable?: boolean\n autoCloseDelay?: number\n collapsible?: boolean\n maxHeight?: string\n}\n\nconst STATUS_BADGES: Record<ScratchpadState['status'], { label: string; class: string }> = {\n loading: { label: 'Loading...', class: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400' },\n ready: { label: 'Action available', class: 'bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400' },\n waiting_human: { label: 'Your turn', class: 'bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400 animate-pulse' },\n processing: { label: 'Processing...', class: 'bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400' },\n complete: { label: 'Complete', class: 'bg-green-100 text-green-600 dark:bg-green-900/30 dark:text-green-400' },\n error: { label: 'Error', class: 'bg-red-100 text-red-600 dark:bg-red-900/30 dark:text-red-400' },\n}\n\nexport const ScratchpadPanel: Component<ScratchpadPanelProps> = (props) => {\n const [collapsed, setCollapsed] = createSignal(false)\n const [localPreview, setLocalPreview] = createSignal<ScratchpadState['preview']>(undefined)\n const [loadingAction, setLoadingAction] = createSignal<string | null>(null)\n let previewTimer: ReturnType<typeof setTimeout> | null = null\n const badge = () => STATUS_BADGES[props.state.status] || STATUS_BADGES.loading\n const isClosable = () => props.closable !== false\n const isCollapsible = () => props.collapsible !== false\n const preview = () => localPreview() || props.state.preview\n const hasFilters = () => Object.keys(props.state.filters || {}).length > 0\n const [eventCount, setEventCount] = createSignal(0)\n const [lastEvent, setLastEvent] = createSignal('')\n\n const debugLog = (event: string, data?: any) => {\n if (!props.debug) return\n setEventCount(c => c + 1)\n setLastEvent(event)\n console.log(`[ScratchpadPanel:${props.state.id}] ${event}`, data || '')\n }\n\n // ─── DX1: Proactive console messages (always, not just debug) ───\n\n const VALID_TRANSITIONS: Record<string, string[]> = {\n loading: ['processing', 'waiting_human', 'error'],\n waiting_human: ['processing', 'ready', 'complete', 'error'],\n processing: ['ready', 'complete', 'error', 'waiting_human'],\n ready: ['processing', 'complete', 'error', 'waiting_human'],\n complete: [],\n error: ['processing', 'ready', 'waiting_human'],\n }\n let prevStatus = props.state.status\n\n // Etape 1: create log\n console.info(\n `%c[MCP-UI] Scratchpad created%c id=${props.state.id} sections=${props.state.sections?.length || 0} status=${props.state.status}${props.pinned ? ' pinned=true' : ''}`,\n 'color: #10b981; font-weight: bold', 'color: inherit'\n )\n\n // Etape 3: status transitions + Etape 4: auto-close info\n createEffect(() => {\n const newStatus = props.state.status\n if (newStatus !== prevStatus) {\n console.info(`%c[MCP-UI] Scratchpad status%c ${props.state.id}: ${prevStatus} → ${newStatus}`, 'color: #3b82f6; font-weight: bold', 'color: inherit')\n if (!VALID_TRANSITIONS[prevStatus]?.includes(newStatus)) {\n console.warn(`[MCP-UI] Scratchpad ${props.state.id}: unusual transition ${prevStatus} → ${newStatus}. Expected: ${VALID_TRANSITIONS[prevStatus]?.join(', ') || 'none (terminal)'}`)\n }\n prevStatus = newStatus\n }\n // Etape 4\n if (props.autoCloseDelay && newStatus !== 'complete') {\n console.info(`[MCP-UI] Scratchpad ${props.state.id}: autoCloseDelay=${props.autoCloseDelay}ms but status='${newStatus}' — auto-close will NOT trigger.`)\n }\n })\n\n // Action aliases that auto-close the scratchpad\n const CLOSE_ALIASES = new Set(['done', 'close', 'dismiss', 'validate', 'cancel', 'sufficient'])\n\n const handleAction = (action: string, data?: unknown) => {\n // DX1 Etape 5: action dispatch\n console.info(`%c[MCP-UI] Action dispatched%c value='${action}' asyncAction=${!!props.asyncAction}`, 'color: #f59e0b; font-weight: bold', 'color: inherit')\n if (!props.asyncAction && /^(try_alt:|retry|fetch|load)/.test(action)) {\n console.warn(`[MCP-UI] ScratchpadPanel: action '${action}' looks async but asyncAction prop is not set. The button will NOT show a loading state.`)\n }\n debugLog('onAction', { action, asyncAction: props.asyncAction, data })\n if (props.asyncAction && !CLOSE_ALIASES.has(action)) {\n setLoadingAction(action)\n }\n props.onAction?.(action, data)\n if (CLOSE_ALIASES.has(action) && props.onClose) {\n props.onClose()\n }\n }\n\n // Debug: log state changes\n createEffect(() => {\n debugLog('state', { status: props.state.status, sections: props.state.sections?.length, filters: Object.keys(props.state.filters || {}), turn: props.state.turn })\n })\n\n // Auto-close on complete (unless pinned)\n createEffect(() => {\n if (props.state.status === 'complete' && props.autoCloseDelay && !props.pinned) {\n const timer = setTimeout(() => props.onClose?.(), props.autoCloseDelay)\n onCleanup(() => clearTimeout(timer))\n }\n // Clear loading action when server responds\n if (props.state.status !== 'processing' && loadingAction()) {\n setLoadingAction(null)\n }\n })\n\n // Preview auto-refresh when filters change\n createEffect(() => {\n const endpoint = props.state.previewEndpoint\n if (!endpoint) return\n const filters = props.state.filters\n if (!filters || Object.keys(filters).length === 0) return\n\n if (previewTimer) clearTimeout(previewTimer)\n previewTimer = setTimeout(async () => {\n try {\n const res = await fetch(endpoint, {\n method: props.state.previewMethod || 'POST',\n headers: { 'Content-Type': 'application/json', ...props.state.previewHeaders },\n credentials: 'include',\n body: JSON.stringify({ filters }),\n })\n if (res.ok) setLocalPreview(await res.json())\n } catch { /* ignore */ }\n }, props.state.previewDebounce || 500)\n })\n\n onCleanup(() => { if (previewTimer) clearTimeout(previewTimer) })\n\n return (\n <div\n class={`w-full bg-white dark:bg-gray-800 rounded-xl border shadow-lg overflow-visible ${\n props.state.status === 'waiting_human'\n ? 'border-blue-300 dark:border-blue-600'\n : 'border-gray-200 dark:border-gray-700'\n } ${props.pinned ? 'sticky top-0 z-40' : ''}`}\n style={{ animation: 'scratchpad-slide-down 0.2s ease-out' }}\n >\n {/* Header */}\n <div\n class={`flex items-center justify-between px-4 py-3 border-b border-gray-100 dark:border-gray-700 ${isCollapsible() ? 'cursor-pointer select-none hover:bg-gray-50 dark:hover:bg-gray-750' : ''}`}\n onClick={() => isCollapsible() && setCollapsed(!collapsed())}\n >\n <div class=\"flex items-center gap-2\">\n <span class=\"text-base\">&#128221;</span>\n <h3 class=\"text-sm font-semibold text-gray-900 dark:text-white\">{props.state.title}</h3>\n {/* AgentStatusBadge — auto-detected from agent_card sections (v4.1.0) */}\n {(() => {\n const agentSection = props.state.sections.find(s => s.type === 'agent_card')\n if (!agentSection) return null\n const ac = parseContent(agentSection.content) as AgentCardContent | null\n if (!ac?.name) return null\n return <AgentStatusBadge agentName={ac.name} status={ac.status || 'idle'} />\n })()}\n <Show when={isCollapsible()}>\n <svg class={`w-3.5 h-3.5 text-gray-400 transition-transform ${collapsed() ? '-rotate-90' : ''}`} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n </Show>\n </div>\n <div class=\"flex items-center gap-2\">\n <span class={`px-2 py-0.5 text-xs font-medium rounded-full ${badge().class}`}>{badge().label}</span>\n <Show when={isClosable() && props.onClose}>\n <button onClick={(e) => { e.stopPropagation(); props.onClose?.() }} class=\"p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors\" aria-label=\"Close\">\n <svg class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" /></svg>\n </button>\n </Show>\n </div>\n </div>\n\n {/* Body */}\n <Show when={!collapsed()}>\n <div style={{ \"max-height\": props.maxHeight || \"500px\", \"overflow-y\": \"auto\" }}>\n {/* Turn history header */}\n <Show when={props.state.turnHistory && props.state.turnHistory.length > 0}>\n <div class=\"px-4 py-2 border-b border-gray-100 dark:border-gray-700 flex flex-wrap items-center gap-1.5\">\n <For each={props.state.turnHistory}>\n {(turn, i) => (\n <>\n <Show when={i() > 0}>\n <svg class=\"w-3 h-3 text-gray-300 dark:text-gray-600 flex-shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" /></svg>\n </Show>\n <span class={`text-xs font-medium px-2 py-0.5 rounded-full ${\n turn.status === 'done' ? 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400'\n : turn.status === 'active' ? 'bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-400'\n : turn.status === 'skipped' ? 'bg-gray-100 dark:bg-gray-700 text-gray-400 line-through'\n : 'bg-gray-100 dark:bg-gray-700 text-gray-400'\n }`}>\n {turn.status === 'done' ? '✅' : turn.status === 'active' ? '●' : '○'} {turn.label}\n <Show when={turn.summary}><span class=\"ml-1 font-normal opacity-75\">— {turn.summary}</span></Show>\n </span>\n </>\n )}\n </For>\n </div>\n </Show>\n\n {/* Sections */}\n <div class=\"divide-y divide-gray-100 dark:divide-gray-700\">\n <For each={props.state.sections}>\n {(section) => (\n <SectionRenderer\n section={section}\n filters={props.state.filters}\n onFilterChange={props.onFilterChange}\n onAction={handleAction}\n onSectionEdit={props.onSectionEdit}\n onSubmit={props.onSubmit}\n debugTrace={props.debugTrace}\n />\n )}\n </For>\n </div>\n\n {/* Agent messages */}\n <Show when={props.state.agentMessages.length > 0}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700 space-y-2\">\n <For each={props.state.agentMessages}>\n {(msg) => (\n <div class={`flex items-start gap-2 text-sm rounded-lg px-3 py-2 ${\n msg.type === 'warning' ? 'bg-amber-50 dark:bg-amber-900/10 text-amber-700 dark:text-amber-400'\n : msg.type === 'question' ? 'bg-blue-50 dark:bg-blue-900/10 text-blue-700 dark:text-blue-400 border border-blue-200 dark:border-blue-800'\n : 'bg-gray-50 dark:bg-gray-700/50 text-gray-600 dark:text-gray-400'\n }`}>\n <span class=\"flex-shrink-0 mt-0.5\">{msg.type === 'warning' ? '⚠️' : msg.type === 'question' ? '❓' : 'ℹ️'}</span>\n <p>{msg.text}</p>\n </div>\n )}\n </For>\n </div>\n </Show>\n\n {/* Preview */}\n <Show when={preview()}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700\">\n <Show when={preview()!.count === 0} fallback={\n <>\n <div class=\"flex items-center gap-2 mb-2\">\n <span class=\"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide\">Preview</span>\n <span class=\"px-1.5 py-0.5 text-xs font-bold bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded\">{preview()!.count.toLocaleString()}</span>\n </div>\n <p class=\"text-sm text-gray-700 dark:text-gray-300\">{preview()!.summary}</p>\n <Show when={preview()!.rows && preview()!.rows!.length > 0}>\n <div class=\"mt-2 overflow-x-auto\">\n <table class=\"min-w-full text-xs\">\n <thead><tr><For each={Object.keys(preview()!.rows![0])}>{(k) => <th class=\"px-2 py-1 text-left font-medium text-gray-500 dark:text-gray-400\">{k}</th>}</For></tr></thead>\n <tbody><For each={preview()!.rows!.slice(0, 5)}>{(row) => <tr class=\"border-t border-gray-100 dark:border-gray-700\"><For each={Object.values(row)}>{(v) => <td class=\"px-2 py-1 text-gray-700 dark:text-gray-300\">{String(v)}</td>}</For></tr>}</For></tbody>\n </table>\n </div>\n </Show>\n </>\n }>\n <div class=\"flex flex-col items-center gap-2 py-4 text-center\">\n <span class=\"text-2xl\">&#128269;</span>\n <p class=\"text-sm text-gray-500 dark:text-gray-400\">No results for these filters</p>\n <button type=\"button\" onClick={() => props.onAction?.('refine_filters')} class=\"px-3 py-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg transition-colors\">Modify filters</button>\n </div>\n </Show>\n </div>\n </Show>\n\n {/* Error state with retry */}\n <Show when={props.state.status === 'error' && props.state.error}>\n <div class=\"px-4 py-3 border-t border-red-100 dark:border-red-900/30 bg-red-50 dark:bg-red-900/10\">\n <div class=\"flex items-start gap-2 text-sm text-red-700 dark:text-red-400\">\n <span class=\"flex-shrink-0 mt-0.5\">⚠️</span>\n <div class=\"flex-1\">\n <p class=\"font-medium\">{props.state.error!.message}</p>\n <Show when={props.state.error!.code}>\n <p class=\"text-xs text-red-500 dark:text-red-500 mt-0.5\">Code: {props.state.error!.code}</p>\n </Show>\n </div>\n </div>\n <div class=\"flex gap-2 mt-2\">\n <Show when={props.state.error!.retryable !== false}>\n <button type=\"button\" onClick={() => props.onRetry?.()}\n class=\"px-3 py-1.5 text-sm font-medium rounded-lg bg-red-600 text-white hover:bg-red-700 transition-colors flex items-center gap-1\">\n &#128260; Retry\n </button>\n </Show>\n <Show when={props.onClose}>\n <button type=\"button\" onClick={() => props.onClose?.()}\n class=\"px-3 py-1.5 text-sm font-medium rounded-lg border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors\">\n Close\n </button>\n </Show>\n </div>\n </div>\n </Show>\n\n {/* Search button when waiting_human */}\n <Show when={props.state.status === 'waiting_human' && hasFilters()}>\n <div class=\"px-4 py-3 border-t border-gray-100 dark:border-gray-700\">\n <button\n type=\"button\"\n onClick={() => handleAction('search', { filters: props.state.filters })}\n class=\"w-full px-4 py-2.5 text-sm font-semibold rounded-lg text-white bg-blue-600 hover:bg-blue-700 transition-colors flex items-center justify-center gap-2\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" /></svg>\n Search\n </button>\n </div>\n </Show>\n </div>\n </Show>\n\n <style>{`\n @keyframes scratchpad-slide-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }\n `}</style>\n\n {/* Debug overlay */}\n <Show when={props.debugOverlay}>\n <div class=\"absolute bottom-1 right-1 px-2 py-1 text-[9px] font-mono bg-black/80 text-green-400 rounded z-50 pointer-events-none\">\n {props.state.id} | ev:{eventCount()} | sec:{props.state.sections?.length || 0} | {props.state.status} | last:{lastEvent()}\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Helpers ────────────────────────────────────────────────\n\n/** Parse content that may arrive as a JSON string from SSE transport */\nfunction parseContent(content: unknown): unknown {\n if (typeof content === 'string') {\n try { return JSON.parse(content) } catch { return content }\n }\n return content\n}\n\n// ─── Section Renderer ────────────────────────────────────────\n\nconst SectionRenderer: Component<{\n section: ScratchpadSection\n filters: Record<string, string | string[]>\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n onAction?: (action: string, data?: unknown) => void\n onSectionEdit?: (sectionId: string, content: unknown) => void\n onSubmit?: (sectionId: string, values: Record<string, unknown>) => void\n debugTrace?: boolean\n}> = (props) => {\n return (\n <div class=\"px-4 py-3 animate-[slideDown_0.2s_ease-out]\">\n <h4 class=\"text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wide mb-2\">{props.section.title}</h4>\n <Switch>\n <Match when={props.section.type === 'data'}><DataSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'filter'}><InteractiveFilterSection content={parseContent(props.section.content)} filters={props.filters} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'message'}><p class=\"text-sm text-gray-700 dark:text-gray-300\">{String(props.section.content)}</p></Match>\n <Match when={props.section.type === 'action'}><ActionSection content={parseContent(props.section.content)} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'steps'}><EnrichedStepsSection content={parseContent(props.section.content)} onAction={props.onAction} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'form'}><EmbeddedFormSection content={parseContent(props.section.content)} sectionId={props.section.id} onAction={props.onAction} onSubmit={props.onSubmit} debugTrace={props.debugTrace} /></Match>\n <Match when={props.section.type === 'understanding'}><UnderstandingSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'feedback'}><FeedbackSection content={parseContent(props.section.content)} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'prompt'}><PromptSection content={parseContent(props.section.content)} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'stepper'}><StepperProgressSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'error'}><ErrorSectionRenderer content={parseContent(props.section.content)} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'source_card'}><SourceCardSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'diff'}><DiffSection content={parseContent(props.section.content)} /></Match>\n <Match when={props.section.type === 'verified_text'}><VerifiedText {...(parseContent(props.section.content) as VerifiedTextContent)} onHallucinationClick={(h) => props.onAction?.('hallucination_click', h)} /></Match>\n <Match when={props.section.type === 'data_preview'}><DataPreviewSection content={parseContent(props.section.content) as DataPreviewContent} /></Match>\n <Match when={props.section.type === 'map'}>{(() => { const c = parseContent(props.section.content) as MapSectionContent; return <MapRenderer params={{ geojson: c.geojson, center: c.center, zoom: c.zoom, geojsonStyle: c.style, popup: c.popup, layers: c.layers, height: c.height || '300px', fitBounds: true }} /> })()}</Match>\n <Match when={props.section.type === 'chart'}>{(() => { const c = parseContent(props.section.content) as ChartComponentParams; return <ChartJSRenderer component={{ id: props.section.id, type: 'chart', position: { colStart: 1, colSpan: 12 }, params: { ...c, renderer: 'native', height: (c as any)?.height || '250px' } }} /> })()}</Match>\n <Match when={props.section.type === 'agent_card'}><AgentCard content={parseContent(props.section.content) as AgentCardContent} /></Match>\n <Match when={props.section.type === 'split_stepper'}><SplitStepper content={parseContent(props.section.content) as SplitStepperContent} /></Match>\n <Match when={props.section.type === 'agent_handoff'}><AgentHandoff content={parseContent(props.section.content) as AgentHandoffContent} /></Match>\n <Match when={props.section.type === 'briefing_diff'}><BriefingDiff content={parseContent(props.section.content) as BriefingDiffContent} /></Match>\n <Match when={true}><pre class=\"text-xs text-gray-500 overflow-auto\">{JSON.stringify(props.section.content, null, 2)}</pre></Match>\n </Switch>\n </div>\n )\n}\n\n// ─── Data Section ────────────────────────────────────────────\n\nconst DataSection: Component<{ content: unknown }> = (props) => {\n const entries = () => typeof props.content === 'object' && props.content ? Object.entries(props.content as Record<string, unknown>) : []\n return (\n <div class=\"space-y-1\">\n <For each={entries()}>{([k, v]) => <div class=\"flex gap-2 text-xs\"><span class=\"text-gray-500 dark:text-gray-400 font-mono min-w-[120px]\">{k}:</span><span class=\"text-gray-900 dark:text-white\">{Array.isArray(v) ? v.join(', ') : String(v)}</span></div>}</For>\n </div>\n )\n}\n\n// ─── Interactive Filter Section (#4, #5) ─────────────────────\n\nconst InteractiveFilterSection: Component<{\n content: unknown\n filters: Record<string, string | string[]>\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n}> = (props) => {\n const [editingKey, setEditingKey] = createSignal<string | null>(null)\n const [editValue, setEditValue] = createSignal('')\n\n // Content can be a filter definition or just use props.filters\n const filterDefs = () => {\n if (typeof props.content === 'object' && props.content) return props.content as Record<string, any>\n return {}\n }\n\n const allKeys = () => {\n const fromContent = Object.keys(filterDefs())\n const fromFilters = Object.keys(props.filters || {})\n return [...new Set([...fromContent, ...fromFilters])]\n }\n\n const removeFilter = (key: string) => {\n const next = { ...props.filters }\n delete next[key]\n props.onFilterChange?.(next)\n }\n\n const setFilter = (key: string, value: string) => {\n props.onFilterChange?.({ ...props.filters, [key]: value })\n setEditingKey(null)\n setEditValue('')\n }\n\n const getDef = (key: string) => filterDefs()[key] || {}\n\n return (\n <div class=\"flex flex-wrap gap-1.5\">\n <For each={allKeys()}>\n {(key) => {\n const def = () => getDef(key)\n const value = () => props.filters[key]\n const hasValue = () => value() !== undefined && value() !== ''\n\n return (\n <div class=\"relative\">\n <Show when={hasValue()} fallback={\n <button type=\"button\" onClick={() => { setEditingKey(key); setEditValue('') }}\n class=\"inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium border border-dashed border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 rounded-full hover:border-blue-400 hover:text-blue-500 transition-colors\">\n + {def()?.label || key}\n </button>\n }>\n <span class=\"inline-flex items-center gap-1 px-2.5 py-1 text-xs font-medium bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300 rounded-full\">\n <button type=\"button\" onClick={() => { setEditingKey(key); setEditValue(String(value() || '')) }} class=\"hover:underline\">\n <span class=\"text-blue-500 dark:text-blue-400\">{def()?.label || key}:</span> {Array.isArray(value()) ? (value() as string[]).join(', ') : String(value())}\n </button>\n <Show when={props.onFilterChange}>\n <button type=\"button\" onClick={() => removeFilter(key)} class=\"ml-0.5 hover:text-blue-900 dark:hover:text-blue-100\" aria-label={`Remove ${key}`}>&times;</button>\n </Show>\n </span>\n </Show>\n\n {/* Inline editor */}\n <Show when={editingKey() === key}>\n <div class=\"absolute z-50 mt-1 left-0 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-600 rounded-lg shadow-lg p-2 min-w-[200px]\">\n <Show when={def()?.options} fallback={\n <form onSubmit={(e) => { e.preventDefault(); setFilter(key, editValue()) }} class=\"flex gap-1\">\n <input type=\"text\" value={editValue()} onInput={(e) => setEditValue(e.currentTarget.value)} placeholder={def()?.placeholder || key} autofocus\n class=\"flex-1 px-2 py-1 text-sm border border-gray-200 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:border-blue-400 outline-none\" />\n <button type=\"submit\" class=\"px-2 py-1 text-xs bg-blue-600 text-white rounded hover:bg-blue-700\">OK</button>\n <button type=\"button\" onClick={() => setEditingKey(null)} class=\"px-2 py-1 text-xs text-gray-500 hover:text-gray-700\">Cancel</button>\n </form>\n }>\n <div class=\"max-h-48 overflow-y-auto\">\n <For each={def().options as Array<{ value: string; label: string }>}>\n {(opt) => (\n <button type=\"button\" onClick={() => setFilter(key, opt.value)}\n class={`w-full text-left px-2 py-1.5 text-sm rounded hover:bg-blue-50 dark:hover:bg-blue-900/20 ${\n String(value()) === opt.value ? 'text-blue-600 dark:text-blue-400 bg-blue-50/50 dark:bg-blue-900/10' : 'text-gray-900 dark:text-white'\n }`}>\n {opt.label}\n <Show when={String(value()) === opt.value}><span class=\"ml-1\">✓</span></Show>\n </button>\n )}\n </For>\n </div>\n <button type=\"button\" onClick={() => setEditingKey(null)} class=\"mt-1 w-full px-2 py-1 text-xs text-gray-500 hover:text-gray-700 text-center\">Cancel</button>\n </Show>\n </div>\n </Show>\n </div>\n )\n }}\n </For>\n <Show when={allKeys().length === 0}>\n <p class=\"text-xs text-gray-400 italic\">No filters</p>\n </Show>\n </div>\n )\n}\n\n// ─── Embedded Form Section (#7, #8) ──────────────────────────\n\nconst EmbeddedFormSection: Component<{\n content: unknown\n sectionId: string\n onAction?: (action: string, data?: unknown) => void\n onSubmit?: (sectionId: string, values: Record<string, unknown>) => void\n debugTrace?: boolean\n}> = (props) => {\n const [dynamicOptions, setDynamicOptions] = createSignal<Record<string, Array<{ label: string; value: string }>>>({})\n\n const config = () => {\n const c = props.content as any\n return {\n fields: c?.fields || [],\n submitLabel: c?.submitLabel || 'Submit',\n autoSubmitDelay: c?.autoSubmitDelay as number | undefined,\n }\n }\n\n // Initialize form data with prefill values (v4.2.0)\n const buildInitial = () => {\n const initial: Record<string, any> = {}\n for (const field of config().fields) {\n initial[field.name] = field.prefill ?? field.defaultValue ?? ''\n }\n return initial\n }\n\n const [formData, setFormData] = createSignal<Record<string, any>>(buildInitial())\n\n // Re-init when content changes (streaming updates)\n createEffect(() => {\n const fields = config().fields\n if (fields.length > 0) {\n setFormData((prev) => {\n const next = { ...prev }\n for (const field of fields) {\n // Only apply prefill if the user hasn't changed the field yet\n if (field.prefill != null && (next[field.name] === undefined || next[field.name] === '')) {\n next[field.name] = field.prefill\n }\n }\n return next\n })\n }\n })\n\n // Auto-submit countdown (v4.2.0)\n const [countdown, setCountdown] = createSignal<number | null>(null)\n let countdownTimer: ReturnType<typeof setInterval> | null = null\n const [userInteracted, setUserInteracted] = createSignal(false)\n\n const cancelCountdown = () => {\n if (countdownTimer) { clearInterval(countdownTimer); countdownTimer = null }\n setCountdown(null)\n }\n\n onCleanup(() => cancelCountdown())\n\n createEffect(() => {\n const delay = config().autoSubmitDelay\n if (!delay || userInteracted()) return\n const allRequiredPrefilled = config().fields\n .filter((f: any) => f.required)\n .every((f: any) => f.prefill != null)\n if (!allRequiredPrefilled) return\n\n let remaining = Math.ceil(delay / 1000)\n setCountdown(remaining)\n countdownTimer = setInterval(() => {\n remaining--\n if (remaining <= 0) {\n cancelCountdown()\n const form = document.querySelector(`#scratchpad-form-${props.sectionId}`) as HTMLFormElement | null\n if (form) form.requestSubmit()\n } else {\n setCountdown(remaining)\n }\n }, 1000)\n })\n\n const updateField = (name: string, value: any) => {\n if (!userInteracted()) { setUserInteracted(true); cancelCountdown() }\n setFormData(prev => ({ ...prev, [name]: value }))\n }\n\n // depends_on reactive (#9)\n createEffect(() => {\n const data = formData()\n for (const field of config().fields) {\n const dep = field.depends_on || field.dependsOn\n if (!dep) continue\n const parentValue = data[dep.field]\n if (!parentValue) continue\n const url = (dep.options_endpoint || dep.apiUrl || '').replace('{value}', encodeURIComponent(parentValue))\n if (!url) continue\n const params = new URLSearchParams(dep.extraParams || dep.extra_params || {})\n fetch(`${url}${url.includes('?') ? '&' : '?'}${params}`)\n .then(r => r.json())\n .then(items => {\n const arr = Array.isArray(items) ? items : items.results || items.features || []\n const lf = dep.label_field || dep.labelField || 'label'\n const vf = dep.value_field || dep.valueField || 'value'\n setDynamicOptions(prev => ({ ...prev, [field.name]: arr.map((i: any) => ({ label: i[lf] || String(i), value: String(i[vf] || i[lf] || i) })) }))\n })\n .catch(() => {})\n }\n })\n\n const getField = (field: any): FormFieldParams => {\n const dynOpts = dynamicOptions()[field.name]\n return dynOpts ? { ...field, options: dynOpts } as FormFieldParams : field as FormFieldParams\n }\n\n // Debug trace: track submitted values\n const [submittedValues, setSubmittedValues] = createSignal<Record<string, any> | null>(null)\n\n const handleSubmit = (e: Event) => {\n e.preventDefault()\n\n // Filter out unsupported fields, keep only values with content\n const values = Object.fromEntries(\n Object.entries(formData())\n .filter(([key]) => {\n const field = config().fields.find((f: any) => f.name === key)\n return field?.fieldStatus !== 'unsupported'\n })\n .filter(([, v]) => v !== undefined && v !== '' && !(Array.isArray(v) && v.length === 0))\n )\n\n setSubmittedValues(values)\n\n // DX1 Etape 7: form submit log\n console.info(`%c[MCP-UI] Form submitted%c section=${props.sectionId} fields=${Object.keys(values).join(',')}`, 'color: #8b5cf6; font-weight: bold', 'color: inherit')\n\n if (props.onSubmit) {\n props.onSubmit(props.sectionId, values)\n } else {\n props.onAction?.('submit_form', { sectionId: props.sectionId, values })\n }\n }\n\n // Proposal 3: prefill confidence summary\n const prefillSummary = () => {\n const fields = config().fields\n const total = fields.length\n const prefilled = fields.filter((f: any) => f.prefill != null).length\n return { total, prefilled }\n }\n\n // Proposal 4: auto-submit toast mode — compact view when ALL fields prefilled\n const [expanded, setExpanded] = createSignal(false)\n const allFieldsPrefilled = () => {\n const fields = config().fields\n return fields.length > 0 && fields.every((f: any) => f.prefill != null)\n }\n const showToast = () => allFieldsPrefilled() && !userInteracted() && !expanded() && countdown() != null\n\n return (\n <>\n <Show when={!showToast()} fallback={\n <div class=\"flex items-center gap-3 p-3 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg text-sm\">\n <span class=\"flex-1 text-blue-800 dark:text-blue-200 font-medium\">\n {config().fields.map((f: any) => f.displayHint || f.prefill).join(', ')}\n </span>\n <span class=\"text-blue-600 dark:text-blue-300\">{countdown()}s...</span>\n <button type=\"button\" onClick={() => { setExpanded(true); cancelCountdown(); setUserInteracted(true) }}\n class=\"text-blue-600 dark:text-blue-400 underline text-xs\">Modifier</button>\n <button type=\"button\" onClick={() => { cancelCountdown(); setUserInteracted(true) }}\n class=\"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300\">&times;</button>\n </div>\n }>\n <form id={`scratchpad-form-${props.sectionId}`} onSubmit={handleSubmit} class=\"flex flex-col gap-3\">\n {/* Proposal 3: prefill summary */}\n <Show when={prefillSummary().prefilled > 0}>\n <p class=\"text-xs text-gray-500 dark:text-gray-400\">\n {prefillSummary().prefilled} champ{prefillSummary().prefilled > 1 ? 's' : ''} pré-rempli{prefillSummary().prefilled > 1 ? 's' : ''} sur {prefillSummary().total}\n </p>\n </Show>\n <For each={config().fields}>\n {(field) => (\n <FormFieldRenderer\n field={getField(field)}\n value={formData()[field.name]}\n onChange={(val) => updateField(field.name, val)}\n formData={formData}\n />\n )}\n </For>\n <Show when={countdown() != null}>\n <div class=\"flex items-center gap-3 p-2 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-md text-sm\">\n <span class=\"text-blue-700 dark:text-blue-300\">\n {config().submitLabel} in {countdown()}s...\n </span>\n <button\n type=\"button\"\n onClick={() => { cancelCountdown(); setUserInteracted(true) }}\n class=\"text-blue-600 dark:text-blue-400 underline hover:text-blue-800 dark:hover:text-blue-200\"\n >\n Cancel\n </button>\n </div>\n </Show>\n <div class=\"flex justify-end\">\n <button type=\"submit\" class=\"px-4 py-2 text-sm font-medium rounded-lg text-white bg-blue-600 hover:bg-blue-700 transition-colors\">\n {config().submitLabel}\n </button>\n </div>\n </form>\n </Show>\n\n {/* Debug trace panel */}\n <Show when={props.debugTrace}>\n <FormDebugTrace\n fields={config().fields}\n formData={formData()}\n submittedValues={submittedValues()}\n autoSubmitDelay={config().autoSubmitDelay}\n userInteracted={userInteracted()}\n rawContent={props.content}\n />\n </Show>\n </>\n )\n}\n\n// ─── Form Debug Trace Panel ─────────────────────────────────\n\nconst FormDebugTrace: Component<{\n fields: any[]\n formData: Record<string, any>\n submittedValues: Record<string, any> | null\n autoSubmitDelay?: number\n userInteracted: boolean\n rawContent: unknown\n}> = (props) => {\n const [open, setOpen] = createSignal(false)\n const [showRaw, setShowRaw] = createSignal(false)\n\n const prefilledCount = () => props.fields.filter((f: any) => f.prefill != null).length\n const requiredFields = () => props.fields.filter((f: any) => f.required)\n const missingRequired = () => requiredFields().filter((f: any) => f.prefill == null)\n\n const autoSubmitReason = () => {\n if (!props.autoSubmitDelay) return 'no autoSubmitDelay configured'\n if (missingRequired().length > 0) return `${missingRequired().length} required field(s) without prefill`\n if (props.userInteracted) return 'user interacted — cancelled'\n return 'all conditions met'\n }\n\n // Server-side _debug data\n const serverDebug = () => (props.rawContent as any)?._debug\n\n return (\n <div class=\"mt-2 border border-gray-200 dark:border-gray-700 rounded-md text-xs font-mono\">\n <button\n type=\"button\"\n onClick={() => setOpen(!open())}\n class=\"w-full px-3 py-1.5 text-left text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 flex items-center gap-1\"\n >\n <span>{open() ? '\\u25BE' : '\\u25B8'}</span>\n Debug trace ({prefilledCount()}/{props.fields.length} prefilled)\n </button>\n <Show when={open()}>\n <div class=\"px-3 pb-3 space-y-2 text-gray-600 dark:text-gray-400 border-t border-gray-200 dark:border-gray-700 pt-2\">\n <div>Fields: {props.fields.length} total, {prefilledCount()} prefilled</div>\n\n <For each={props.fields}>\n {(field: any) => (\n <div class=\"pl-2 border-l-2 border-gray-200 dark:border-gray-600 space-y-0.5\">\n <div class=\"text-gray-800 dark:text-gray-200 font-medium\">{field.name}:</div>\n <Show when={field.prefill != null}>\n <div> prefill: {JSON.stringify(field.prefill)}</div>\n </Show>\n <Show when={!field.prefill}>\n <div class=\"text-amber-500\"> prefill: (none)</div>\n </Show>\n <Show when={field.source}><div> source: {field.source}</div></Show>\n <Show when={field.displayHint}><div> displayHint: \"{field.displayHint}\"</div></Show>\n <Show when={field.muted}><div> muted: true</div></Show>\n <Show when={field.prefillMode}><div> prefillMode: {field.prefillMode}</div></Show>\n <Show when={field.valueFormat}><div> valueFormat: /{field.valueFormat}/</div></Show>\n <Show when={props.submittedValues}>\n {(() => {\n const v = props.submittedValues![field.name]\n const hasValue = v !== undefined && v !== '' && !(Array.isArray(v) && v.length === 0)\n return (\n <div class={hasValue ? 'text-green-600 dark:text-green-400' : 'text-gray-400'}>\n {'\\u2192'} submitted: {hasValue ? `${JSON.stringify(v)} \\u2713` : '(empty)'}\n </div>\n )\n })()}\n </Show>\n </div>\n )}\n </For>\n\n <div class=\"pt-1 border-t border-gray-200 dark:border-gray-600\">\n autoSubmit: {props.autoSubmitDelay ? 'true' : 'false'}\n {props.autoSubmitDelay ? ` (${props.autoSubmitDelay}ms)` : ''}\n <div> reason: {autoSubmitReason()}</div>\n </div>\n\n <Show when={serverDebug()}>\n <div class=\"pt-1 border-t border-gray-200 dark:border-gray-600\">\n <div class=\"font-medium text-gray-800 dark:text-gray-200\">Server _debug:</div>\n <Show when={serverDebug()?.resolvers}>\n <For each={serverDebug().resolvers}>\n {(r: any) => (\n <div class=\"pl-2\">\n {r.field}: {r.resolver} \"{r.input}\" {'\\u2192'} \"{r.output}\" ({r.ms}ms)\n </div>\n )}\n </For>\n </Show>\n <Show when={serverDebug()?.routing}>\n <div class=\"pl-2\">routing: {serverDebug().routing.topic} via {serverDebug().routing.method} ({serverDebug().routing.ms}ms)</div>\n </Show>\n <Show when={serverDebug()?.missingFields}>\n <div class=\"pl-2 text-amber-500\">missing: {serverDebug().missingFields.join(', ')}</div>\n </Show>\n </div>\n </Show>\n\n <div class=\"pt-1 border-t border-gray-200 dark:border-gray-600\">\n <button type=\"button\" onClick={() => setShowRaw(!showRaw())} class=\"text-blue-500 hover:text-blue-700 underline\">\n {showRaw() ? 'Hide' : 'Show'} raw SSE payload\n </button>\n <Show when={showRaw()}>\n <pre class=\"mt-1 p-2 bg-gray-50 dark:bg-gray-900 rounded max-h-48 overflow-auto text-[10px]\">\n {JSON.stringify(props.rawContent, null, 2)}\n </pre>\n </Show>\n </div>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Enriched Steps Section (#6) ─────────────────────────────\n\nconst EnrichedStepsSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n onFilterChange?: (filters: Record<string, string | string[]>) => void\n}> = (props) => {\n const stepsData = () => {\n const c = props.content as any\n return { steps: c?.steps || [], currentStep: c?.currentStep ?? 0 }\n }\n\n return (\n <div class=\"space-y-3\">\n <For each={stepsData().steps}>\n {(step: any) => (\n <div class={`rounded-lg ${step.status === 'active' ? 'bg-blue-50/50 dark:bg-blue-900/10 border border-blue-200 dark:border-blue-800 p-3 animate-pulse' : 'px-1'}`}>\n <div class={`flex items-center gap-2 text-sm font-medium ${\n step.status === 'done' ? 'text-green-600 dark:text-green-400'\n : step.status === 'active' ? 'text-blue-600 dark:text-blue-400'\n : 'text-gray-400'\n }`}>\n <span>{step.status === 'done' ? '✅' : step.status === 'active' ? '●' : '○'}</span>\n {step.label}\n <Show when={step.description && step.status === 'active'}>\n <span class=\"text-xs font-normal text-gray-500 dark:text-gray-400\">— {step.description}</span>\n </Show>\n </div>\n\n {/* Embedded content for active step */}\n <Show when={step.status === 'active' && step.content}>\n <div class=\"mt-2 ml-6\">\n <SectionRenderer\n section={step.content}\n filters={{}}\n onFilterChange={props.onFilterChange}\n onAction={props.onAction}\n />\n </div>\n </Show>\n </div>\n )}\n </For>\n\n {/* Next button */}\n <Show when={stepsData().steps.some((s: any) => s.status === 'active')}>\n <div class=\"flex justify-end\">\n <button type=\"button\" onClick={() => props.onAction?.('next_step', { step: stepsData().currentStep })}\n class=\"px-3 py-1.5 text-sm font-medium text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg transition-colors flex items-center gap-1\">\n Next <svg class=\"w-3.5 h-3.5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" /></svg>\n </button>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Action Section ──────────────────────────────────────────\n\nconst ActionSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const data = () => {\n const c = props.content as any\n if (Array.isArray(c)) return { actions: c, title: undefined, preview: undefined, validation: undefined }\n if (c && Array.isArray(c.actions)) return { actions: c.actions, title: c.title, preview: c.preview, validation: c.validation }\n return { actions: [], title: undefined, preview: undefined, validation: undefined }\n }\n\n return (\n <div>\n {/* Confirm checkpoint: title + preview (v4.1.0) */}\n <Show when={data().title}>\n <p class=\"text-sm font-medium text-gray-800 dark:text-gray-200 mb-2\">{data().title}</p>\n </Show>\n <Show when={data().preview}>\n {(preview) => (\n <div class=\"mb-2 p-2 rounded bg-gray-50 dark:bg-gray-800 border border-gray-200 dark:border-gray-700 text-xs text-gray-600 dark:text-gray-400\">\n <Show when={preview().count != null}>\n <span class=\"font-medium text-gray-800 dark:text-gray-200\">{preview().count}</span> items\n </Show>\n <Show when={preview().summary}>\n <span class=\"ml-1\">&mdash; {preview().summary}</span>\n </Show>\n </div>\n )}\n </Show>\n <Show when={data().validation && data().validation.confidence != null}>\n <div class=\"mb-2 flex items-center gap-2 text-xs\">\n <span classList={{\n 'text-green-600 dark:text-green-400': data().validation.confidence >= 0.8,\n 'text-amber-600 dark:text-amber-400': data().validation.confidence >= 0.5 && data().validation.confidence < 0.8,\n 'text-red-600 dark:text-red-400': data().validation.confidence < 0.5,\n }}>\n {Math.round(data().validation.confidence * 100)}% verified\n </span>\n <Show when={data().validation.hallucinated?.length > 0}>\n <span class=\"text-amber-600\">({data().validation.hallucinated.length} unverified)</span>\n </Show>\n </div>\n </Show>\n\n {/* Action buttons */}\n <div class=\"flex flex-wrap gap-2\">\n <For each={data().actions as Array<{ label: string; value?: string; action?: string; variant?: string; icon?: string }>}>\n {(item) => (\n <button type=\"button\" on:click={() => props.onAction?.(item.value || item.action || item.label, item)}\n class={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors ${\n item.variant === 'primary' ? 'bg-blue-600 text-white hover:bg-blue-700'\n : item.variant === 'danger' ? 'bg-red-600 text-white hover:bg-red-700'\n : item.variant === 'secondary' ? 'border border-blue-300 dark:border-blue-600 text-blue-700 dark:text-blue-300 hover:bg-blue-50 dark:hover:bg-blue-900/20'\n : 'border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700'\n }`}>\n <Show when={item.icon}><span class=\"mr-1\">{item.icon}</span></Show>\n {item.label}\n </button>\n )}\n </For>\n </div>\n </div>\n )\n}\n\n// ─── Understanding Section — agent comprehension ─────────────\n\nconst UnderstandingSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return { detections: c?.detections || [], warnings: c?.warnings || [] }\n }\n\n const confidenceClass = (conf?: string) => {\n switch (conf) {\n case 'high': return 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400'\n case 'medium': return 'bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-400'\n case 'low': return 'bg-red-100 dark:bg-red-900/30 text-red-700 dark:text-red-400'\n default: return 'bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400'\n }\n }\n\n return (\n <div class=\"space-y-2\">\n <div class=\"space-y-1.5\">\n <For each={data().detections}>\n {(det: any) => (\n <div class=\"flex items-center gap-2 text-sm\">\n <span class={`px-1.5 py-0.5 text-xs font-medium rounded ${confidenceClass(det.confidence)}`}>\n {det.label}\n </span>\n <span class=\"text-gray-900 dark:text-white\">{det.value}</span>\n </div>\n )}\n </For>\n </div>\n <Show when={data().warnings.length > 0}>\n <div class=\"space-y-1\">\n <For each={data().warnings}>\n {(w: string) => (\n <div class=\"flex items-start gap-1.5 text-xs text-amber-600 dark:text-amber-400\">\n <span class=\"flex-shrink-0\">⚠️</span>\n <span>{w}</span>\n </div>\n )}\n </For>\n </div>\n </Show>\n </div>\n )\n}\n\n// ─── Feedback Section — thumbs up/down ───────────────────────\n\nconst FeedbackSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const [comment, setComment] = createSignal('')\n const [showComment, setShowComment] = createSignal(false)\n const [submitted, setSubmitted] = createSignal<string | null>(null)\n const data = () => {\n const c = props.content as any\n const options = c?.options || [\n { value: c?.approve?.value || 'approve', label: c?.approve?.label || 'Yes', icon: '\\uD83D\\uDC4D', variant: 'primary' },\n { value: c?.reject?.value || 'reject', label: c?.reject?.label || 'No', icon: '\\uD83D\\uDC4E' },\n ]\n return {\n question: c?.question || '',\n options: options as Array<{ value: string; label: string; icon?: string; variant?: string; needsComment?: boolean }>,\n allowFreeText: c?.allowFreeText ?? c?.allowComment ?? false,\n placeholder: c?.placeholder || c?.commentPlaceholder || 'Add a comment...',\n // v4.1.0: per-step feedback\n agentId: c?.agentId as string | undefined,\n stepId: c?.stepId as string | undefined,\n }\n }\n\n const handleOption = (option: any) => {\n if (option.needsComment) {\n setShowComment(true)\n return\n }\n setSubmitted(option.value)\n const payload = {\n option: option.value,\n comment: comment(),\n ...(data().agentId ? { agentId: data().agentId } : {}),\n ...(data().stepId ? { stepId: data().stepId } : {}),\n }\n console.info('[MCP-UI:HITL] user responded', {\n agentId: data().agentId, stepId: data().stepId, action: option.value,\n })\n props.onAction?.('feedback', payload)\n }\n\n return (\n <div class=\"space-y-3\">\n <p class=\"text-sm text-gray-700 dark:text-gray-300\">{data().question}</p>\n\n {/* Already submitted — show micro-badge */}\n <Show when={submitted()}>\n <div class=\"flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400\">\n <span classList={{\n 'text-green-600': submitted() === 'approve',\n 'text-red-600': submitted() === 'reject',\n 'text-blue-600': submitted() !== 'approve' && submitted() !== 'reject',\n }}>\n {submitted() === 'approve' ? '\\u2705' : submitted() === 'reject' ? '\\u274C' : '\\uD83D\\uDCAC'} {submitted()}\n </span>\n <Show when={comment()}>\n <span class=\"italic\">&mdash; {comment()}</span>\n </Show>\n </div>\n </Show>\n\n {/* Buttons — hidden after submit */}\n <Show when={!submitted()}>\n <div class=\"flex flex-wrap gap-2\">\n <For each={data().options}>\n {(option) => (\n <button type=\"button\" on:click={() => handleOption(option)}\n class={`px-3 py-1.5 text-sm font-medium rounded-lg transition-colors flex items-center gap-1 ${\n option.variant === 'primary' ? 'bg-blue-600 text-white hover:bg-blue-700'\n : option.variant === 'danger' ? 'bg-red-600 text-white hover:bg-red-700'\n : 'border border-gray-200 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700'\n }`}>\n <Show when={option.icon}><span>{option.icon}</span></Show>\n {option.label}\n </button>\n )}\n </For>\n </div>\n <Show when={data().allowFreeText || showComment()}>\n <div class=\"flex gap-1\">\n <input type=\"text\" value={comment()} onInput={(e) => setComment(e.currentTarget.value)}\n placeholder={data().placeholder} autofocus={showComment()}\n class=\"flex-1 px-3 py-2 text-sm border border-gray-200 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:border-blue-400 outline-none\" />\n <button type=\"button\" on:click={() => { setSubmitted('comment'); props.onAction?.('feedback', { option: 'comment', comment: comment(), agentId: data().agentId, stepId: data().stepId }) }}\n class=\"px-3 py-2 text-sm bg-blue-600 text-white rounded-lg hover:bg-blue-700\">Send</button>\n </div>\n </Show>\n </Show>\n </div>\n )\n}\n\n// ─── Prompt Section — agent interpretation ───────────────────\n\nconst PromptSection: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const data = () => {\n const c = props.content as any\n return {\n originalQuery: c?.originalQuery || '',\n interpretation: c?.interpretation || '',\n extracted: c?.extracted || {},\n plan: c?.plan || '',\n editable: c?.editable ?? false,\n }\n }\n\n return (\n <div class=\"space-y-2\">\n <Show when={data().originalQuery}>\n <p class=\"text-xs text-gray-500 dark:text-gray-400 italic\">\"{data().originalQuery}\"</p>\n </Show>\n <div class=\"space-y-1\">\n <For each={Object.entries(data().extracted)}>\n {([key, value]) => (\n <div class=\"flex gap-2 text-sm\">\n <span class=\"text-gray-500 dark:text-gray-400 font-medium min-w-[80px]\">{key}:</span>\n <span class=\"text-gray-900 dark:text-white\">{String(value)}</span>\n </div>\n )}\n </For>\n </div>\n <Show when={data().plan}>\n <div class=\"mt-2 px-3 py-2 bg-blue-50 dark:bg-blue-900/10 rounded-lg text-sm text-blue-700 dark:text-blue-300\">\n <span class=\"font-medium\">Plan:</span> {data().plan}\n </div>\n </Show>\n <Show when={data().editable}>\n <button type=\"button\" onClick={() => props.onAction?.('edit_prompt', data())}\n class=\"text-xs text-blue-600 dark:text-blue-400 hover:underline flex items-center gap-1\">\n &#9998; Modify\n </button>\n </Show>\n </div>\n )\n}\n\n// ─── Stepper Progress Section (multi-source) ─────────────────\n\nconst StepperProgressSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return {\n steps: (c?.steps || []) as Array<{ id: string; label: string; status: string; summary?: string; duration_ms?: number }>,\n orientation: c?.orientation || 'horizontal',\n }\n }\n\n const statusIcon = (status: string) => {\n switch (status) {\n case 'done': return '✅'\n case 'active': return '🔄'\n case 'error': return '❌'\n default: return '⏳'\n }\n }\n\n const isHorizontal = () => data().orientation === 'horizontal'\n\n return (\n <Show when={isHorizontal()} fallback={\n <div class=\"space-y-2\">\n <For each={data().steps}>\n {(step) => (\n <div class={`flex items-start gap-2 text-sm ${step.status === 'active' ? 'font-medium' : ''} ${step.status === 'pending' ? 'text-gray-400' : 'text-gray-700 dark:text-gray-300'}`}>\n <span class=\"flex-shrink-0\">{statusIcon(step.status)}</span>\n <div>\n <span>{step.label}</span>\n <Show when={step.summary}>\n <span class=\"ml-1 text-xs text-gray-500 dark:text-gray-400\">— {step.summary}</span>\n </Show>\n <Show when={step.duration_ms}>\n <span class=\"ml-1 text-xs text-gray-400\">({step.duration_ms}ms)</span>\n </Show>\n </div>\n </div>\n )}\n </For>\n </div>\n }>\n <div class=\"flex items-center gap-1 flex-wrap\">\n <For each={data().steps}>\n {(step, i) => (\n <>\n <Show when={i() > 0}>\n <svg class=\"w-3 h-3 text-gray-300 dark:text-gray-600 flex-shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" /></svg>\n </Show>\n <div class={`flex items-center gap-1 px-2 py-1 rounded text-xs ${\n step.status === 'done' ? 'bg-green-50 dark:bg-green-900/20 text-green-700 dark:text-green-400'\n : step.status === 'active' ? 'bg-blue-50 dark:bg-blue-900/20 text-blue-700 dark:text-blue-400 font-medium animate-pulse'\n : step.status === 'error' ? 'bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-400'\n : 'text-gray-400'\n }`}>\n <span>{statusIcon(step.status)}</span>\n <span>{step.label}</span>\n <Show when={step.summary}>\n <span class=\"text-[10px] opacity-75\">{step.summary}</span>\n </Show>\n </div>\n </>\n )}\n </For>\n </div>\n </Show>\n )\n}\n\n// ─── Error Section (F6) ──────────────────────────────────────\n\nconst ErrorSectionRenderer: Component<{\n content: unknown\n onAction?: (action: string, data?: unknown) => void\n}> = (props) => {\n const [showDetails, setShowDetails] = createSignal(false)\n const data = () => {\n const c = props.content as any\n const d = { message: c?.message || 'Error', severity: c?.severity || 'error', retryAction: c?.retryAction, retryLabel: c?.retryLabel || 'Retry', details: c?.details, timestamp: c?.timestamp }\n // DX1 Etape 8\n console.info(`%c[MCP-UI] Error section rendered%c severity=${d.severity} retry=${!!d.retryAction}`, 'color: #ef4444; font-weight: bold', 'color: inherit')\n return d\n }\n const isWarning = () => data().severity === 'warning'\n\n return (\n <div class={`rounded-lg px-3 py-2 text-sm ${isWarning() ? 'bg-amber-50 dark:bg-amber-900/10 text-amber-700 dark:text-amber-400 border border-amber-200 dark:border-amber-800' : 'bg-red-50 dark:bg-red-900/10 text-red-700 dark:text-red-400 border border-red-200 dark:border-red-800'}`}>\n <div class=\"flex items-start gap-2\">\n <span class=\"flex-shrink-0\">{isWarning() ? '⚠️' : '❌'}</span>\n <div class=\"flex-1\">\n <p>{data().message}</p>\n <div class=\"flex gap-2 mt-2\">\n <Show when={data().retryAction}>\n <button type=\"button\" onClick={() => props.onAction?.(data().retryAction!)} class={`px-2 py-1 text-xs font-medium rounded ${isWarning() ? 'bg-amber-600 text-white hover:bg-amber-700' : 'bg-red-600 text-white hover:bg-red-700'} transition-colors`}>&#128260; {data().retryLabel}</button>\n </Show>\n <Show when={data().details}>\n <button type=\"button\" onClick={() => setShowDetails(!showDetails())} class=\"px-2 py-1 text-xs opacity-70 hover:opacity-100\">&#9654; Details</button>\n </Show>\n </div>\n <Show when={showDetails() && data().details}>\n <pre class=\"mt-2 text-xs opacity-70 overflow-x-auto\">{data().details}</pre>\n </Show>\n </div>\n </div>\n </div>\n )\n}\n\n// ─── Source Card Section (F9) ────────────────────────────────\n\nconst SourceCardSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return { name: c?.name || 'Source', status: c?.status || 'available', capabilities: c?.capabilities || [], latency_ms: c?.latency_ms, freshness: c?.freshness, row_count: c?.row_count }\n }\n const statusIcon = () => ({ queried: '✅', available: '📦', error: '❌' } as Record<string, string>)[data().status] || '📦'\n\n return (\n <div class=\"rounded-lg border border-gray-200 dark:border-gray-700 px-3 py-2\">\n <div class=\"flex items-center justify-between mb-1.5\">\n <span class=\"text-sm font-medium text-gray-900 dark:text-white\">{statusIcon()} {data().name}</span>\n <Show when={data().row_count !== undefined}>\n <span class=\"text-xs font-bold text-blue-600 dark:text-blue-400\">{data().row_count?.toLocaleString()} results</span>\n </Show>\n </div>\n <div class=\"flex flex-wrap gap-1.5 mb-1\">\n <For each={data().capabilities}>\n {(cap: any) => (\n <span class={`text-[10px] px-1.5 py-0.5 rounded ${cap.supported ? 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400' : 'bg-red-100 dark:bg-red-900/30 text-red-600 dark:text-red-400'}`}>\n {cap.supported ? '✅' : '❌'} {cap.label}\n </span>\n )}\n </For>\n </div>\n <Show when={data().freshness || data().latency_ms}>\n <p class=\"text-[10px] text-gray-400\">{[data().freshness, data().latency_ms ? `${data().latency_ms}ms` : ''].filter(Boolean).join(' · ')}</p>\n </Show>\n </div>\n )\n}\n\n// ─── Diff Section (F10) ──────────────────────────────────────\n\nconst DiffSection: Component<{ content: unknown }> = (props) => {\n const data = () => {\n const c = props.content as any\n return { left: c?.left || { label: 'A', rows: [] }, right: c?.right || { label: 'B', rows: [] }, highlight: c?.highlight_columns || [] }\n }\n const allKeys = () => {\n const l = data().left.rows[0] || {}\n const r = data().right.rows[0] || {}\n return [...new Set([...Object.keys(l), ...Object.keys(r)])]\n }\n\n return (\n <div class=\"overflow-x-auto\">\n <table class=\"min-w-full text-xs\">\n <thead>\n <tr>\n <th class=\"px-2 py-1 text-left text-gray-500 dark:text-gray-400\"></th>\n <th class=\"px-2 py-1 text-left font-medium text-blue-600 dark:text-blue-400\">{data().left.label}</th>\n <th class=\"px-2 py-1 text-left font-medium text-purple-600 dark:text-purple-400\">{data().right.label}</th>\n </tr>\n </thead>\n <tbody>\n <For each={allKeys()}>\n {(key) => {\n const lVal = () => data().left.rows[0]?.[key]\n const rVal = () => data().right.rows[0]?.[key]\n const isDiff = () => String(lVal()) !== String(rVal()) && data().highlight.includes(key)\n return (\n <tr class={`border-t border-gray-100 dark:border-gray-700 ${isDiff() ? 'bg-yellow-50 dark:bg-yellow-900/10' : ''}`}>\n <td class=\"px-2 py-1 font-mono text-gray-500 dark:text-gray-400\">{key}</td>\n <td class=\"px-2 py-1 text-gray-900 dark:text-white\">{lVal() !== undefined ? String(lVal()) : '—'}</td>\n <td class=\"px-2 py-1 text-gray-900 dark:text-white\">{rVal() !== undefined ? String(rVal()) : '—'}</td>\n </tr>\n )\n }}\n </For>\n </tbody>\n </table>\n </div>\n )\n}\n"],"names":["STATUS_BADGES","loading","label","class","ready","waiting_human","processing","complete","error","ScratchpadPanel","props","collapsed","setCollapsed","createSignal","localPreview","setLocalPreview","undefined","loadingAction","setLoadingAction","previewTimer","badge","state","status","isClosable","closable","isCollapsible","collapsible","preview","hasFilters","Object","keys","filters","length","eventCount","setEventCount","lastEvent","setLastEvent","debugLog","event","data","debug","c","console","log","id","VALID_TRANSITIONS","prevStatus","info","sections","pinned","createEffect","newStatus","includes","warn","join","autoCloseDelay","CLOSE_ALIASES","Set","handleAction","action","asyncAction","test","has","onAction","onClose","turn","timer","setTimeout","onCleanup","clearTimeout","endpoint","previewEndpoint","res","fetch","method","previewMethod","headers","previewHeaders","credentials","body","JSON","stringify","ok","json","previewDebounce","_el$","_$getNextElement","_tmpl$12","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$7","_el$8","_co$","_$getNextMarker","_el$9","_el$0","_co$2","_el$1","_el$10","_el$12","_el$13","_co$3","_el$69","_el$70","_co$16","_el$53","_el$71","_el$72","_co$17","$$click","_$insert","title","agentSection","find","s","type","ac","parseContent","content","name","_$createComponent","AgentStatusBadge","agentName","Show","when","children","_el$6","_tmpl$","_$effect","_$setAttribute","_$memo","_el$11","_tmpl$2","e","stopPropagation","_$runHydrationEvents","_el$14","_tmpl$10","_el$43","_el$44","_co$8","_el$16","_el$45","_el$46","_co$9","_el$47","_el$48","_co$0","_el$49","_el$50","_co$1","_el$51","_el$52","_co$10","turnHistory","_el$15","_tmpl$3","For","each","i","_tmpl$13","_el$74","_tmpl$15","_el$80","_el$81","_co$19","_el$75","_el$82","_el$83","_co$20","_el$84","_el$85","_co$21","_c$","summary","_el$76","_tmpl$14","_el$77","_el$78","_el$79","_co$18","_$className","section","SectionRenderer","onFilterChange","onSectionEdit","onSubmit","debugTrace","agentMessages","_el$17","_tmpl$4","msg","_el$86","_tmpl$16","_el$87","_el$88","_c$2","text","_el$18","_tmpl$6","count","fallback","_el$89","_tmpl$17","_el$90","_el$91","toLocaleString","_el$92","_tmpl$18","rows","_el$93","_tmpl$19","_el$94","_el$95","_el$96","_el$97","k","_el$98","_tmpl$20","slice","row","_el$99","_tmpl$21","values","v","_el$100","_tmpl$22","String","_el$19","_tmpl$5","_el$20","_el$21","_el$22","_el$23","_tmpl$0","_el$24","_el$25","_el$26","_el$27","_el$32","_el$33","_co$5","_el$34","_el$37","_el$38","_co$6","_el$39","_el$40","_co$7","message","code","_el$28","_tmpl$7","_el$29","_el$30","_el$31","_co$4","retryable","_el$35","_tmpl$8","onRetry","_el$36","_tmpl$9","_el$41","_tmpl$1","_el$42","_$p","_$setStyleProperty","maxHeight","debugOverlay","_el$54","_tmpl$11","_el$59","_el$60","_co$11","_el$55","_el$61","_el$62","_co$12","_el$56","_el$63","_el$64","_co$13","_el$57","_el$65","_el$66","_co$14","_el$58","_el$67","_el$68","_co$15","_p$","_v$","_v$2","_v$3","t","a","parse","_el$101","_tmpl$24","_el$102","_el$105","_el$106","_co$22","Switch","Match","DataSection","InteractiveFilterSection","_el$103","ActionSection","EnrichedStepsSection","EmbeddedFormSection","sectionId","UnderstandingSection","FeedbackSection","PromptSection","StepperProgressSection","ErrorSectionRenderer","SourceCardSection","DiffSection","VerifiedText","_$mergeProps","onHallucinationClick","h","DataPreviewSection","MapRenderer","params","geojson","center","zoom","geojsonStyle","style","popup","layers","height","fitBounds","ChartJSRenderer","component","position","colStart","colSpan","renderer","AgentCard","SplitStepper","AgentHandoff","BriefingDiff","_el$104","_tmpl$23","entries","_el$107","_tmpl$25","_el$108","_tmpl$26","_el$109","_el$111","_el$112","_co$23","_el$113","_c$3","Array","isArray","editingKey","setEditingKey","editValue","setEditValue","filterDefs","allKeys","fromContent","fromFilters","removeFilter","key","next","setFilter","value","getDef","_el$114","_tmpl$28","_el$116","_el$117","_co$24","_el$118","_el$119","_co$25","def","hasValue","_el$120","_tmpl$34","_el$136","_el$137","_co$29","_el$138","_el$139","_co$30","_el$140","_tmpl$35","_el$141","_el$142","_el$143","_co$31","_el$121","_tmpl$30","_el$122","_el$123","_el$125","_el$126","_co$26","_el$127","_el$128","_el$129","_co$27","_el$131","_el$132","_co$28","_c$4","_el$130","_tmpl$29","_el$133","_tmpl$33","options","_el$144","_tmpl$36","_el$145","_el$146","_el$147","addEventListener","preventDefault","$$input","currentTarget","placeholder","_$setProperty","_el$134","_tmpl$31","opt","_el$148","_tmpl$38","_el$150","_el$151","_co$32","_el$152","_el$153","_co$33","_tmpl$37","_el$135","_tmpl$32","_tmpl$27","dynamicOptions","setDynamicOptions","config","fields","submitLabel","autoSubmitDelay","buildInitial","initial","field","prefill","defaultValue","formData","setFormData","prev","countdown","setCountdown","countdownTimer","userInteracted","setUserInteracted","cancelCountdown","clearInterval","delay","allRequiredPrefilled","filter","f","required","every","remaining","Math","ceil","setInterval","form","document","querySelector","requestSubmit","updateField","dep","depends_on","dependsOn","parentValue","url","options_endpoint","apiUrl","replace","encodeURIComponent","URLSearchParams","extraParams","extra_params","then","r","items","arr","results","features","lf","label_field","labelField","vf","value_field","valueField","map","catch","getField","dynOpts","submittedValues","setSubmittedValues","handleSubmit","fromEntries","fieldStatus","prefillSummary","total","prefilled","expanded","setExpanded","allFieldsPrefilled","showToast","_el$184","_tmpl$42","_el$185","_el$186","_el$188","_el$189","_co$43","_el$190","_el$191","displayHint","_el$154","_tmpl$41","_el$178","_el$179","_co$40","_el$180","_el$181","_co$41","_el$182","_el$183","_co$42","_el$176","_el$177","_el$155","_tmpl$39","_el$159","_el$160","_co$34","_el$156","_el$161","_el$162","_co$35","_el$157","_el$163","_el$164","_co$36","_el$158","_el$165","_el$166","_co$37","FormFieldRenderer","onChange","val","_el$167","_tmpl$40","_el$168","_el$171","_el$172","_co$38","_el$169","_el$173","_el$174","_co$39","_el$175","FormDebugTrace","rawContent","open","setOpen","showRaw","setShowRaw","prefilledCount","requiredFields","missingRequired","autoSubmitReason","serverDebug","_debug","_el$192","_tmpl$48","_el$193","_el$194","_el$195","_el$198","_el$199","_co$44","_el$196","_el$200","_el$201","_co$45","_el$256","_el$257","_co$62","_el$202","_tmpl$47","_el$203","_el$204","_el$207","_el$208","_co$46","_el$205","_el$209","_el$210","_co$47","_el$252","_el$253","_co$60","_el$211","_el$212","_el$217","_el$218","_co$49","_el$219","_el$220","_co$50","_el$213","_el$214","_el$215","_el$216","_co$48","_el$254","_el$255","_co$61","_el$244","_el$245","_el$247","_el$248","_co$58","_el$250","_el$251","_co$59","_el$258","_tmpl$56","_el$259","_el$261","_el$262","_co$63","_el$287","_el$288","_co$69","_el$289","_el$290","_co$70","_el$291","_el$292","_co$71","_el$293","_el$294","_co$72","_el$295","_el$296","_co$73","_el$297","_el$298","_co$74","_el$299","_el$300","_co$75","_el$301","_el$302","_co$76","_el$263","_tmpl$49","_el$264","_el$265","_el$266","_co$64","_tmpl$50","source","_el$268","_tmpl$51","_el$269","_el$270","_el$271","_co$65","_el$272","_tmpl$52","_el$273","_el$275","_el$276","_co$66","muted","_tmpl$53","prefillMode","_el$278","_tmpl$54","_el$279","_el$280","_el$281","_co$67","valueFormat","_el$282","_tmpl$55","_el$283","_el$285","_el$286","_co$68","_el$303","_tmpl$57","_el$304","_el$306","_el$307","_co$77","_c$5","_el$221","_tmpl$45","_el$222","_el$238","_el$239","_co$55","_el$240","_el$241","_co$56","_el$242","_el$243","_co$57","resolvers","_el$308","_tmpl$58","_el$316","_el$317","_co$78","_el$309","_el$318","_el$319","_co$79","_el$310","_el$320","_el$321","_co$80","_el$311","_el$322","_el$323","_co$81","_el$314","_el$324","_el$325","_co$82","resolver","input","output","ms","routing","_el$223","_tmpl$43","_el$224","_el$228","_el$229","_co$51","_el$225","_el$230","_el$231","_co$52","_el$226","_el$232","_el$233","_co$53","topic","missingFields","_el$234","_tmpl$44","_el$235","_el$236","_el$237","_co$54","_el$249","_tmpl$46","stepsData","steps","currentStep","_el$326","_tmpl$60","_el$329","_el$330","_co$83","_el$331","_el$332","_co$84","step","_el$333","_tmpl$63","_el$334","_el$335","_el$340","_el$341","_co$86","_el$342","_el$343","_co$87","_el$345","_el$346","_co$88","_c$6","description","_el$336","_tmpl$61","_el$337","_el$338","_el$339","_co$85","_el$344","_tmpl$62","_v$4","_v$5","some","_el$327","_tmpl$59","_el$328","actions","validation","_el$347","_tmpl$67","_el$362","_el$363","_co$92","_el$364","_el$365","_co$93","_el$366","_el$367","_co$94","_el$361","_el$348","_tmpl$64","_el$368","_tmpl$70","_el$374","_el$375","_co$96","_el$376","_el$377","_co$97","_el$369","_tmpl$68","_el$370","_tmpl$69","_el$371","_el$372","_el$373","_co$95","confidence","_el$349","_tmpl$66","_el$350","_el$352","_el$353","_co$89","_el$359","_el$360","_co$91","round","hallucinated","_el$354","_tmpl$65","_el$355","_el$357","_el$358","_co$90","_$classList","item","_el$378","_el$380","_el$381","_co$98","_el$382","_el$383","_co$99","_$addEventListener","icon","_el$379","_tmpl$71","variant","detections","warnings","confidenceClass","conf","_el$384","_tmpl$72","_el$385","_el$387","_el$388","_co$100","det","_el$389","_tmpl$73","_el$390","_el$391","_el$386","w","_el$392","_tmpl$74","_el$393","_el$394","comment","setComment","showComment","setShowComment","submitted","setSubmitted","approve","reject","question","allowFreeText","allowComment","commentPlaceholder","agentId","stepId","handleOption","option","needsComment","payload","_el$395","_tmpl$79","_el$396","_el$414","_el$415","_co$105","_el$416","_el$417","_co$106","_el$397","_tmpl$76","_el$398","_el$400","_el$401","_co$101","_el$399","_el$402","_el$403","_co$102","_el$408","_el$409","_co$104","_c$7","_el$404","_tmpl$75","_el$405","_el$406","_el$407","_co$103","_v$6","_v$7","_v$8","classList","toggle","_el$410","_tmpl$77","_el$418","_el$420","_el$421","_co$107","_el$422","_el$423","_co$108","_el$419","_tmpl$80","_el$411","_tmpl$78","_el$412","_el$413","_v$9","_v$0","originalQuery","interpretation","extracted","plan","editable","_el$424","_tmpl$84","_el$437","_el$438","_co$111","_el$430","_el$439","_el$440","_co$112","_el$441","_el$442","_co$113","_el$425","_tmpl$81","_el$426","_el$428","_el$429","_co$109","_el$443","_tmpl$85","_el$444","_el$446","_el$447","_co$114","_el$448","_el$431","_tmpl$82","_el$432","_el$433","_el$434","_el$435","_co$110","_el$436","_tmpl$83","orientation","statusIcon","isHorizontal","_el$450","_tmpl$87","_el$451","_tmpl$90","_el$452","_el$453","_el$454","_el$464","_el$465","_co$117","_el$466","_el$467","_co$118","_el$455","_tmpl$88","_el$456","_el$457","_el$458","_co$115","duration_ms","_el$459","_tmpl$89","_el$460","_el$462","_el$463","_co$116","_el$449","_tmpl$86","_el$469","_tmpl$92","_el$470","_el$471","_el$473","_el$474","_co$119","_el$472","_tmpl$91","showDetails","setShowDetails","d","severity","retryAction","retryLabel","details","timestamp","isWarning","_el$475","_tmpl$96","_el$476","_el$477","_el$478","_el$479","_el$480","_el$486","_el$487","_co$121","_el$488","_el$489","_co$122","_el$491","_el$492","_co$123","_el$481","_tmpl$93","_el$482","_el$483","_el$484","_co$120","_el$485","_tmpl$94","_el$490","_tmpl$95","capabilities","latency_ms","freshness","row_count","queried","available","_el$493","_tmpl$99","_el$494","_el$495","_el$497","_el$498","_co$124","_el$496","_el$499","_el$500","_co$125","_el$505","_el$506","_co$127","_el$507","_el$509","_el$510","_co$128","_el$501","_tmpl$97","_el$503","_el$504","_co$126","cap","_el$511","_tmpl$100","_el$513","_el$514","_co$129","_el$512","_el$515","_el$516","_co$130","supported","_el$508","_tmpl$98","Boolean","left","right","highlight","highlight_columns","l","_el$517","_tmpl$101","_el$518","_el$519","_el$520","_el$521","_el$522","_el$523","_el$524","lVal","rVal","isDiff","_el$525","_tmpl$102","_el$526","_el$527","_el$528","_c$8","_c$9","_$delegateEvents"],"mappings":"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"}