@seed-ship/mcp-ui-solid 3.0.0 → 3.0.1
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.
- package/dist/components/ScratchpadPanel.cjs +5 -5
- package/dist/components/ScratchpadPanel.cjs.map +1 -1
- package/dist/components/ScratchpadPanel.js +5 -5
- package/dist/components/ScratchpadPanel.js.map +1 -1
- package/package.json +1 -1
- package/src/components/ScratchpadPanel.tsx +4 -4
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -10,8 +10,8 @@ const STATUS_BADGES = {
|
|
|
10
10
|
class: "bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400"
|
|
11
11
|
},
|
|
12
12
|
ready: {
|
|
13
|
-
label: "
|
|
14
|
-
class: "bg-
|
|
13
|
+
label: "Action available",
|
|
14
|
+
class: "bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400"
|
|
15
15
|
},
|
|
16
16
|
waiting_human: {
|
|
17
17
|
label: "Your turn",
|
|
@@ -388,7 +388,7 @@ const ScratchpadPanel = (props) => {
|
|
|
388
388
|
}
|
|
389
389
|
}), _el$70, _co$16);
|
|
390
390
|
effect((_p$) => {
|
|
391
|
-
var _v$ = `w-full bg-white dark:bg-gray-800 rounded-xl border shadow-lg overflow-visible ${props.state.status === "waiting_human" ? "border-blue-300 dark:border-blue-600" : "border-gray-200 dark:border-gray-700"}`, _v$2 = `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" : ""}`, _v$3 = `px-2 py-0.5 text-xs font-medium rounded-full ${badge().class}`;
|
|
391
|
+
var _v$ = `w-full bg-white dark:bg-gray-800 rounded-xl border shadow-lg overflow-visible ${props.state.status === "waiting_human" ? "border-blue-300 dark:border-blue-600" : "border-gray-200 dark:border-gray-700"} ${props.pinned ? "sticky top-0 z-40" : ""}`, _v$2 = `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" : ""}`, _v$3 = `px-2 py-0.5 text-xs font-medium rounded-full ${badge().class}`;
|
|
392
392
|
_v$ !== _p$.e && className(_el$, _p$.e = _v$);
|
|
393
393
|
_v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
|
|
394
394
|
_v$3 !== _p$.a && className(_el$0, _p$.a = _v$3);
|
|
@@ -928,7 +928,7 @@ const EnrichedStepsSection = (props) => {
|
|
|
928
928
|
}
|
|
929
929
|
}), _el$177, _co$39);
|
|
930
930
|
effect((_p$) => {
|
|
931
|
-
var _v$4 = `rounded-lg ${step.status === "active" ? "bg-blue-50/50 dark:bg-blue-900/10 border border-blue-200 dark:border-blue-800 p-3" : "px-1"}`, _v$5 = `flex items-center gap-2 text-sm font-medium ${step.status === "done" ? "text-green-600 dark:text-green-400" : step.status === "active" ? "text-blue-600 dark:text-blue-400" : "text-gray-400"}`;
|
|
931
|
+
var _v$4 = `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"}`, _v$5 = `flex items-center gap-2 text-sm font-medium ${step.status === "done" ? "text-green-600 dark:text-green-400" : step.status === "active" ? "text-blue-600 dark:text-blue-400" : "text-gray-400"}`;
|
|
932
932
|
_v$4 !== _p$.e && className(_el$164, _p$.e = _v$4);
|
|
933
933
|
_v$5 !== _p$.t && className(_el$165, _p$.t = _v$5);
|
|
934
934
|
return _p$;
|
|
@@ -1293,7 +1293,7 @@ const StepperProgressSection = (props) => {
|
|
|
1293
1293
|
return _el$258;
|
|
1294
1294
|
}
|
|
1295
1295
|
}), _el$260, _co$56);
|
|
1296
|
-
effect(() => className(_el$255, `flex items-center gap-1 px-2 py-1 rounded text-xs ${step.status === "done" ? "bg-green-50 dark:bg-green-900/20 text-green-700 dark:text-green-400" : step.status === "active" ? "bg-blue-50 dark:bg-blue-900/20 text-blue-700 dark:text-blue-400 font-medium" : step.status === "error" ? "bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-400" : "text-gray-400"}`));
|
|
1296
|
+
effect(() => className(_el$255, `flex items-center gap-1 px-2 py-1 rounded text-xs ${step.status === "done" ? "bg-green-50 dark:bg-green-900/20 text-green-700 dark:text-green-400" : step.status === "active" ? "bg-blue-50 dark:bg-blue-900/20 text-blue-700 dark:text-blue-400 font-medium animate-pulse" : step.status === "error" ? "bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-400" : "text-gray-400"}`));
|
|
1297
1297
|
return _el$255;
|
|
1298
1298
|
})()]
|
|
1299
1299
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScratchpadPanel.js","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 } from '../types/chat-bus'\nimport type { FormFieldParams } from '../types'\nimport { FormFieldRenderer } from './FormFieldRenderer'\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: 'Ready', class: 'bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-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 // 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 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 }`}\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\">📝</span>\n <h3 class=\"text-sm font-semibold text-gray-900 dark:text-white\">{props.state.title}</h3>\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\">🔍</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 🔄 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// ─── 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\">\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={props.section.content} /></Match>\n <Match when={props.section.type === 'filter'}><InteractiveFilterSection content={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={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'steps'}><EnrichedStepsSection content={props.section.content} onAction={props.onAction} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'form'}><EmbeddedFormSection content={props.section.content} sectionId={props.section.id} onAction={props.onAction} onSubmit={props.onSubmit} /></Match>\n <Match when={props.section.type === 'understanding'}><UnderstandingSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'feedback'}><FeedbackSection content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'prompt'}><PromptSection content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'stepper'}><StepperProgressSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'error'}><ErrorSectionRenderer content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'source_card'}><SourceCardSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'diff'}><DiffSection content={props.section.content} /></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}`}>×</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 [formData, setFormData] = createSignal<Record<string, any>>({})\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 { fields: c?.fields || [], submitLabel: c?.submitLabel || 'Submit' }\n }\n\n const updateField = (name: string, value: any) => setFormData(prev => ({ ...prev, [name]: value }))\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 if (props.onSubmit) {\n props.onSubmit(props.sectionId, values)\n } else {\n props.onAction?.('submit_form', { sectionId: props.sectionId, values })\n }\n }\n\n return (\n <form onSubmit={handleSubmit} class=\"flex flex-col gap-3\">\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 <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 )\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' : '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 actions = () => Array.isArray(props.content) ? props.content as Array<{ label: string; value?: string; action?: string; variant?: string; icon?: string }> : []\n return (\n <div class=\"flex flex-wrap gap-2\">\n <For each={actions()}>\n {(item) => (\n <button type=\"button\" onClick={() => 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 : '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 )\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 data = () => {\n const c = props.content as any\n // Support both formats: options array (universal) and approve/reject (simple)\n const options = c?.options || [\n { value: c?.approve?.value || 'approve', label: c?.approve?.label || 'Yes', icon: '👍', variant: 'primary' },\n { value: c?.reject?.value || 'reject', label: c?.reject?.label || 'No', icon: '👎' },\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 }\n }\n\n const handleOption = (option: any) => {\n if (option.needsComment) {\n setShowComment(true)\n return\n }\n props.onAction?.('feedback', { option: option.value, comment: comment() })\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 <div class=\"flex flex-wrap gap-2\">\n <For each={data().options}>\n {(option) => (\n <button type=\"button\" onClick={() => 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\" onClick={() => props.onAction?.('feedback', { option: 'comment', comment: comment() })}\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 </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 ✎ 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'\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 return { message: c?.message || 'Error', severity: c?.severity || 'error', retryAction: c?.retryAction, retryLabel: c?.retryLabel || 'Retry', details: c?.details, timestamp: c?.timestamp }\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`}>🔄 {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\">▶ 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","CLOSE_ALIASES","Set","handleAction","action","asyncAction","has","onAction","onClose","createEffect","sections","turn","autoCloseDelay","pinned","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","_el$10","_el$11","_co$2","_el$67","_el$68","_co$15","_el$51","_el$69","_el$70","_co$16","$$click","_$insert","title","_$createComponent","Show","when","children","_el$6","_tmpl$","_$effect","_$setAttribute","_$memo","_el$1","_tmpl$2","e","stopPropagation","_$runHydrationEvents","_el$12","_tmpl$10","_el$41","_el$42","_co$7","_el$14","_el$43","_el$44","_co$8","_el$45","_el$46","_co$9","_el$47","_el$48","_co$0","_el$49","_el$50","_co$1","turnHistory","_el$13","_tmpl$3","For","each","i","_tmpl$13","_el$72","_tmpl$15","_el$78","_el$79","_co$18","_el$73","_el$80","_el$81","_co$19","_el$82","_el$83","_co$20","_c$","summary","_el$74","_tmpl$14","_el$75","_el$76","_el$77","_co$17","_$className","section","SectionRenderer","onFilterChange","onSectionEdit","onSubmit","agentMessages","_el$15","_tmpl$4","msg","_el$84","_tmpl$16","_el$85","_el$86","_c$2","type","text","_el$16","_tmpl$6","count","fallback","_el$87","_tmpl$17","_el$88","_el$89","toLocaleString","_el$90","_tmpl$18","rows","_el$91","_tmpl$19","_el$92","_el$93","_el$94","_el$95","k","_el$96","_tmpl$20","slice","row","_el$97","_tmpl$21","values","v","_el$98","_tmpl$22","String","_el$17","_tmpl$5","_el$18","_el$19","_el$20","_el$21","_tmpl$0","_el$22","_el$23","_el$24","_el$25","_el$30","_el$31","_co$4","_el$32","_el$35","_el$36","_co$5","_el$37","_el$38","_co$6","message","code","_el$26","_tmpl$7","_el$27","_el$28","_el$29","_co$3","retryable","_el$33","_tmpl$8","onRetry","_el$34","_tmpl$9","_el$39","_tmpl$1","_el$40","_$p","_$setStyleProperty","maxHeight","debugOverlay","_el$52","_tmpl$11","_el$57","_el$58","_co$10","_el$53","_el$59","_el$60","_co$11","_el$54","_el$61","_el$62","_co$12","_el$55","_el$63","_el$64","_co$13","_el$56","_el$65","_el$66","_co$14","_p$","_v$","_v$2","_v$3","t","a","_el$99","_tmpl$24","_el$100","_el$103","_el$104","_co$21","Switch","Match","DataSection","content","InteractiveFilterSection","_el$101","ActionSection","EnrichedStepsSection","EmbeddedFormSection","sectionId","UnderstandingSection","FeedbackSection","PromptSection","StepperProgressSection","ErrorSectionRenderer","SourceCardSection","DiffSection","_el$102","_tmpl$23","entries","_el$105","_tmpl$25","_el$106","_tmpl$26","_el$107","_el$109","_el$110","_co$22","_el$111","_c$3","Array","isArray","join","editingKey","setEditingKey","editValue","setEditValue","filterDefs","allKeys","fromContent","fromFilters","removeFilter","key","next","setFilter","value","getDef","_el$112","_tmpl$28","_el$114","_el$115","_co$23","_el$116","_el$117","_co$24","def","hasValue","_el$118","_tmpl$34","_el$134","_el$135","_co$28","_el$136","_el$137","_co$29","_el$138","_tmpl$35","_el$139","_el$140","_el$141","_co$30","_el$119","_tmpl$30","_el$120","_el$121","_el$123","_el$124","_co$25","_el$125","_el$126","_el$127","_co$26","_el$129","_el$130","_co$27","_c$4","_el$128","_tmpl$29","_el$131","_tmpl$33","options","_el$142","_tmpl$36","_el$143","_el$144","_el$145","addEventListener","preventDefault","$$input","currentTarget","placeholder","_$setProperty","_el$132","_tmpl$31","opt","_el$146","_tmpl$38","_el$148","_el$149","_co$31","_el$150","_el$151","_co$32","_tmpl$37","_el$133","_tmpl$32","_tmpl$27","formData","setFormData","dynamicOptions","setDynamicOptions","config","fields","submitLabel","updateField","name","prev","field","dep","depends_on","dependsOn","parentValue","url","options_endpoint","apiUrl","replace","encodeURIComponent","params","URLSearchParams","extraParams","extra_params","includes","then","r","items","arr","results","features","lf","label_field","labelField","vf","value_field","valueField","map","catch","getField","dynOpts","handleSubmit","fromEntries","filter","find","f","fieldStatus","_el$152","_tmpl$39","_el$155","_el$156","_co$33","_el$153","_el$154","FormFieldRenderer","onChange","val","stepsData","steps","currentStep","_el$157","_tmpl$41","_el$160","_el$161","_co$34","_el$162","_el$163","_co$35","step","_el$164","_tmpl$44","_el$165","_el$166","_el$171","_el$172","_co$37","_el$173","_el$174","_co$38","_el$176","_el$177","_co$39","_c$5","description","_el$167","_tmpl$42","_el$168","_el$169","_el$170","_co$36","_el$175","_tmpl$43","_v$4","_v$5","some","s","_el$158","_tmpl$40","_el$159","actions","_el$178","_tmpl$45","item","_el$179","_el$181","_el$182","_co$40","_el$183","_el$184","_co$41","icon","_el$180","_tmpl$46","variant","detections","warnings","confidenceClass","conf","_el$185","_tmpl$47","_el$186","_el$188","_el$189","_co$42","det","_el$190","_tmpl$48","_el$191","_el$192","confidence","_el$187","w","_el$193","_tmpl$49","_el$194","_el$195","comment","setComment","showComment","setShowComment","approve","reject","question","allowFreeText","allowComment","commentPlaceholder","handleOption","option","needsComment","_el$196","_tmpl$51","_el$197","_el$198","_el$202","_el$203","_co$43","_el$204","_el$206","_el$207","_co$44","_el$208","_el$209","_co$45","_el$205","_tmpl$52","_el$199","_tmpl$50","_el$200","_el$201","_v$6","_v$7","originalQuery","interpretation","extracted","plan","editable","_el$210","_tmpl$56","_el$223","_el$224","_co$48","_el$216","_el$225","_el$226","_co$49","_el$227","_el$228","_co$50","_el$211","_tmpl$53","_el$212","_el$214","_el$215","_co$46","_el$229","_tmpl$57","_el$230","_el$232","_el$233","_co$51","_el$234","_el$217","_tmpl$54","_el$218","_el$219","_el$220","_el$221","_co$47","_el$222","_tmpl$55","orientation","statusIcon","isHorizontal","_el$236","_tmpl$59","_el$237","_tmpl$62","_el$238","_el$239","_el$240","_el$250","_el$251","_co$54","_el$252","_el$253","_co$55","_el$241","_tmpl$60","_el$242","_el$243","_el$244","_co$52","duration_ms","_el$245","_tmpl$61","_el$246","_el$248","_el$249","_co$53","_el$235","_tmpl$58","_el$255","_tmpl$64","_el$256","_el$257","_el$259","_el$260","_co$56","_el$258","_tmpl$63","showDetails","setShowDetails","severity","retryAction","retryLabel","details","timestamp","isWarning","_el$261","_tmpl$68","_el$262","_el$263","_el$264","_el$265","_el$266","_el$272","_el$273","_co$58","_el$274","_el$275","_co$59","_el$277","_el$278","_co$60","_el$267","_tmpl$65","_el$268","_el$269","_el$270","_co$57","_el$271","_tmpl$66","_el$276","_tmpl$67","capabilities","latency_ms","freshness","row_count","queried","available","_el$279","_tmpl$71","_el$280","_el$281","_el$283","_el$284","_co$61","_el$282","_el$285","_el$286","_co$62","_el$291","_el$292","_co$64","_el$293","_el$295","_el$296","_co$65","_el$287","_tmpl$69","_el$289","_el$290","_co$63","cap","_el$297","_tmpl$72","_el$299","_el$300","_co$66","_el$298","_el$301","_el$302","_co$67","supported","_el$294","_tmpl$70","Boolean","left","right","highlight","highlight_columns","l","_el$303","_tmpl$73","_el$304","_el$305","_el$306","_el$307","_el$308","_el$309","_el$310","lVal","rVal","isDiff","_el$311","_tmpl$74","_el$312","_el$313","_el$314","_c$6","_c$7","_$delegateEvents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScratchpadPanel.js","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 } from '../types/chat-bus'\nimport type { FormFieldParams } from '../types'\nimport { FormFieldRenderer } from './FormFieldRenderer'\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 // 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 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\">📝</span>\n <h3 class=\"text-sm font-semibold text-gray-900 dark:text-white\">{props.state.title}</h3>\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\">🔍</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 🔄 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// ─── 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\">\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={props.section.content} /></Match>\n <Match when={props.section.type === 'filter'}><InteractiveFilterSection content={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={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'steps'}><EnrichedStepsSection content={props.section.content} onAction={props.onAction} onFilterChange={props.onFilterChange} /></Match>\n <Match when={props.section.type === 'form'}><EmbeddedFormSection content={props.section.content} sectionId={props.section.id} onAction={props.onAction} onSubmit={props.onSubmit} /></Match>\n <Match when={props.section.type === 'understanding'}><UnderstandingSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'feedback'}><FeedbackSection content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'prompt'}><PromptSection content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'stepper'}><StepperProgressSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'error'}><ErrorSectionRenderer content={props.section.content} onAction={props.onAction} /></Match>\n <Match when={props.section.type === 'source_card'}><SourceCardSection content={props.section.content} /></Match>\n <Match when={props.section.type === 'diff'}><DiffSection content={props.section.content} /></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}`}>×</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 [formData, setFormData] = createSignal<Record<string, any>>({})\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 { fields: c?.fields || [], submitLabel: c?.submitLabel || 'Submit' }\n }\n\n const updateField = (name: string, value: any) => setFormData(prev => ({ ...prev, [name]: value }))\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 if (props.onSubmit) {\n props.onSubmit(props.sectionId, values)\n } else {\n props.onAction?.('submit_form', { sectionId: props.sectionId, values })\n }\n }\n\n return (\n <form onSubmit={handleSubmit} class=\"flex flex-col gap-3\">\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 <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 )\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 actions = () => Array.isArray(props.content) ? props.content as Array<{ label: string; value?: string; action?: string; variant?: string; icon?: string }> : []\n return (\n <div class=\"flex flex-wrap gap-2\">\n <For each={actions()}>\n {(item) => (\n <button type=\"button\" onClick={() => 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 : '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 )\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 data = () => {\n const c = props.content as any\n // Support both formats: options array (universal) and approve/reject (simple)\n const options = c?.options || [\n { value: c?.approve?.value || 'approve', label: c?.approve?.label || 'Yes', icon: '👍', variant: 'primary' },\n { value: c?.reject?.value || 'reject', label: c?.reject?.label || 'No', icon: '👎' },\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 }\n }\n\n const handleOption = (option: any) => {\n if (option.needsComment) {\n setShowComment(true)\n return\n }\n props.onAction?.('feedback', { option: option.value, comment: comment() })\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 <div class=\"flex flex-wrap gap-2\">\n <For each={data().options}>\n {(option) => (\n <button type=\"button\" onClick={() => 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\" onClick={() => props.onAction?.('feedback', { option: 'comment', comment: comment() })}\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 </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 ✎ 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 return { message: c?.message || 'Error', severity: c?.severity || 'error', retryAction: c?.retryAction, retryLabel: c?.retryLabel || 'Retry', details: c?.details, timestamp: c?.timestamp }\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`}>🔄 {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\">▶ 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","CLOSE_ALIASES","Set","handleAction","action","asyncAction","has","onAction","onClose","createEffect","sections","turn","autoCloseDelay","pinned","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","_el$10","_el$11","_co$2","_el$67","_el$68","_co$15","_el$51","_el$69","_el$70","_co$16","$$click","_$insert","title","_$createComponent","Show","when","children","_el$6","_tmpl$","_$effect","_$setAttribute","_$memo","_el$1","_tmpl$2","e","stopPropagation","_$runHydrationEvents","_el$12","_tmpl$10","_el$41","_el$42","_co$7","_el$14","_el$43","_el$44","_co$8","_el$45","_el$46","_co$9","_el$47","_el$48","_co$0","_el$49","_el$50","_co$1","turnHistory","_el$13","_tmpl$3","For","each","i","_tmpl$13","_el$72","_tmpl$15","_el$78","_el$79","_co$18","_el$73","_el$80","_el$81","_co$19","_el$82","_el$83","_co$20","_c$","summary","_el$74","_tmpl$14","_el$75","_el$76","_el$77","_co$17","_$className","section","SectionRenderer","onFilterChange","onSectionEdit","onSubmit","agentMessages","_el$15","_tmpl$4","msg","_el$84","_tmpl$16","_el$85","_el$86","_c$2","type","text","_el$16","_tmpl$6","count","fallback","_el$87","_tmpl$17","_el$88","_el$89","toLocaleString","_el$90","_tmpl$18","rows","_el$91","_tmpl$19","_el$92","_el$93","_el$94","_el$95","k","_el$96","_tmpl$20","slice","row","_el$97","_tmpl$21","values","v","_el$98","_tmpl$22","String","_el$17","_tmpl$5","_el$18","_el$19","_el$20","_el$21","_tmpl$0","_el$22","_el$23","_el$24","_el$25","_el$30","_el$31","_co$4","_el$32","_el$35","_el$36","_co$5","_el$37","_el$38","_co$6","message","code","_el$26","_tmpl$7","_el$27","_el$28","_el$29","_co$3","retryable","_el$33","_tmpl$8","onRetry","_el$34","_tmpl$9","_el$39","_tmpl$1","_el$40","_$p","_$setStyleProperty","maxHeight","debugOverlay","_el$52","_tmpl$11","_el$57","_el$58","_co$10","_el$53","_el$59","_el$60","_co$11","_el$54","_el$61","_el$62","_co$12","_el$55","_el$63","_el$64","_co$13","_el$56","_el$65","_el$66","_co$14","_p$","_v$","_v$2","_v$3","t","a","_el$99","_tmpl$24","_el$100","_el$103","_el$104","_co$21","Switch","Match","DataSection","content","InteractiveFilterSection","_el$101","ActionSection","EnrichedStepsSection","EmbeddedFormSection","sectionId","UnderstandingSection","FeedbackSection","PromptSection","StepperProgressSection","ErrorSectionRenderer","SourceCardSection","DiffSection","_el$102","_tmpl$23","entries","_el$105","_tmpl$25","_el$106","_tmpl$26","_el$107","_el$109","_el$110","_co$22","_el$111","_c$3","Array","isArray","join","editingKey","setEditingKey","editValue","setEditValue","filterDefs","allKeys","fromContent","fromFilters","removeFilter","key","next","setFilter","value","getDef","_el$112","_tmpl$28","_el$114","_el$115","_co$23","_el$116","_el$117","_co$24","def","hasValue","_el$118","_tmpl$34","_el$134","_el$135","_co$28","_el$136","_el$137","_co$29","_el$138","_tmpl$35","_el$139","_el$140","_el$141","_co$30","_el$119","_tmpl$30","_el$120","_el$121","_el$123","_el$124","_co$25","_el$125","_el$126","_el$127","_co$26","_el$129","_el$130","_co$27","_c$4","_el$128","_tmpl$29","_el$131","_tmpl$33","options","_el$142","_tmpl$36","_el$143","_el$144","_el$145","addEventListener","preventDefault","$$input","currentTarget","placeholder","_$setProperty","_el$132","_tmpl$31","opt","_el$146","_tmpl$38","_el$148","_el$149","_co$31","_el$150","_el$151","_co$32","_tmpl$37","_el$133","_tmpl$32","_tmpl$27","formData","setFormData","dynamicOptions","setDynamicOptions","config","fields","submitLabel","updateField","name","prev","field","dep","depends_on","dependsOn","parentValue","url","options_endpoint","apiUrl","replace","encodeURIComponent","params","URLSearchParams","extraParams","extra_params","includes","then","r","items","arr","results","features","lf","label_field","labelField","vf","value_field","valueField","map","catch","getField","dynOpts","handleSubmit","fromEntries","filter","find","f","fieldStatus","_el$152","_tmpl$39","_el$155","_el$156","_co$33","_el$153","_el$154","FormFieldRenderer","onChange","val","stepsData","steps","currentStep","_el$157","_tmpl$41","_el$160","_el$161","_co$34","_el$162","_el$163","_co$35","step","_el$164","_tmpl$44","_el$165","_el$166","_el$171","_el$172","_co$37","_el$173","_el$174","_co$38","_el$176","_el$177","_co$39","_c$5","description","_el$167","_tmpl$42","_el$168","_el$169","_el$170","_co$36","_el$175","_tmpl$43","_v$4","_v$5","some","s","_el$158","_tmpl$40","_el$159","actions","_el$178","_tmpl$45","item","_el$179","_el$181","_el$182","_co$40","_el$183","_el$184","_co$41","icon","_el$180","_tmpl$46","variant","detections","warnings","confidenceClass","conf","_el$185","_tmpl$47","_el$186","_el$188","_el$189","_co$42","det","_el$190","_tmpl$48","_el$191","_el$192","confidence","_el$187","w","_el$193","_tmpl$49","_el$194","_el$195","comment","setComment","showComment","setShowComment","approve","reject","question","allowFreeText","allowComment","commentPlaceholder","handleOption","option","needsComment","_el$196","_tmpl$51","_el$197","_el$198","_el$202","_el$203","_co$43","_el$204","_el$206","_el$207","_co$44","_el$208","_el$209","_co$45","_el$205","_tmpl$52","_el$199","_tmpl$50","_el$200","_el$201","_v$6","_v$7","originalQuery","interpretation","extracted","plan","editable","_el$210","_tmpl$56","_el$223","_el$224","_co$48","_el$216","_el$225","_el$226","_co$49","_el$227","_el$228","_co$50","_el$211","_tmpl$53","_el$212","_el$214","_el$215","_co$46","_el$229","_tmpl$57","_el$230","_el$232","_el$233","_co$51","_el$234","_el$217","_tmpl$54","_el$218","_el$219","_el$220","_el$221","_co$47","_el$222","_tmpl$55","orientation","statusIcon","isHorizontal","_el$236","_tmpl$59","_el$237","_tmpl$62","_el$238","_el$239","_el$240","_el$250","_el$251","_co$54","_el$252","_el$253","_co$55","_el$241","_tmpl$60","_el$242","_el$243","_el$244","_co$52","duration_ms","_el$245","_tmpl$61","_el$246","_el$248","_el$249","_co$53","_el$235","_tmpl$58","_el$255","_tmpl$64","_el$256","_el$257","_el$259","_el$260","_co$56","_el$258","_tmpl$63","showDetails","setShowDetails","severity","retryAction","retryLabel","details","timestamp","isWarning","_el$261","_tmpl$68","_el$262","_el$263","_el$264","_el$265","_el$266","_el$272","_el$273","_co$58","_el$274","_el$275","_co$59","_el$277","_el$278","_co$60","_el$267","_tmpl$65","_el$268","_el$269","_el$270","_co$57","_el$271","_tmpl$66","_el$276","_tmpl$67","capabilities","latency_ms","freshness","row_count","queried","available","_el$279","_tmpl$71","_el$280","_el$281","_el$283","_el$284","_co$61","_el$282","_el$285","_el$286","_co$62","_el$291","_el$292","_co$64","_el$293","_el$295","_el$296","_co$65","_el$287","_tmpl$69","_el$289","_el$290","_co$63","cap","_el$297","_tmpl$72","_el$299","_el$300","_co$66","_el$298","_el$301","_el$302","_co$67","supported","_el$294","_tmpl$70","Boolean","left","right","highlight","highlight_columns","l","_el$303","_tmpl$73","_el$304","_el$305","_el$306","_el$307","_el$308","_el$309","_el$310","lVal","rVal","isDiff","_el$311","_tmpl$74","_el$312","_el$313","_el$314","_c$6","_c$7","_$delegateEvents"],"mappings":"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"}
|