feat(frontend): multiselect/artifact-gate/artifact widgets + linkage + no-limbo

This commit is contained in:
2026-06-28 12:36:13 +02:00
parent 2b55e96608
commit be9e761e0a
8 changed files with 389 additions and 1 deletions
+19
View File
@@ -0,0 +1,19 @@
import type { WidgetProps } from "./types";
/**
* ArtifactWidget: view-only renderer. Never calls onRespond.
* Invariant no-limbo: this widget intentionally produces no response;
* it is used only as a passive display, never as a decision point.
*/
export function ArtifactWidget({ descriptor }: WidgetProps) {
return (
<div className="space-y-2">
{descriptor.title && <p className="font-medium">{descriptor.title}</p>}
{descriptor.artifact?.content && (
<pre className="overflow-auto max-h-64 bg-muted p-3 text-sm rounded border">
{descriptor.artifact.content}
</pre>
)}
</div>
);
}